-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the Comrade wiki!
This is a bot being used by me in my personal server to improve user experience.
Functionality:
- Dynamic Message Filtering Capabilities including edit detection and fuzzy logic, allowing far more messages to be caught than many existing solutions
- Controllable threats list to determine which members must be treated with special caution
- Voting system brings power to server members as means of distributing power and allowing self moderation
- Stores variables externally, and is able to recover from sudden termination
- Hosted remotely to work almost 24/7
Reference for Modules
[J] - Jericho Module Fun features for bot
[S1] - Sentinel v1 Module Moderation and crowd control features
[N] - Noble Module Remote functionality and maintenance features
[K] - Kronos Module (IN DEVELOPMENT) Time dependence features
Commands
- [S1] $comrade voteKick @mention
Votes to kick mentioned member. Each person gets one vote per person to kick. Once a sufficient number of votes are reached (default: 6), the person is kicked.
VOTING SYSTEM MECHANICS: Each user is stored as a key in a dictionary, kickList. When they are voted for, their value in the dictionary increases. A second dictionary, kickVotes, also stores users as keys, and appends the user who voted for them to the list. voteKick checks whether the person who voted to kick the target already exists within the target's kickVotes. The vote is only added if the person has not voted for them yet.
- [S1] $comrade unKick @mention
Repeals the vote for a person. Only works if you have already voted for that person.
- [J] hello comrade
says Henlo
- [J] henlo comrade
says Hello
- [N] $comrade status
Reports critical information from bot's operational parameters {Threats, OPS, Kicklist, Kick Requirement, Lethality}
OP Commands
- [S1] $comrade lethal (number)
Sets lethality level. 0 = passive; no aggressive actions are possible. (Kicks, message filtering) 1 = Human-actuated; actions require human intervention (Vote Kick) 2 = Full-auto; some actions will go automatically (Message filtering
- [S1] $comrade (op/deop) @mention
ops or deops a person (Add/Remove from OPS)
OPS: Have access to these commands.
- [S1] $comrade (addThreat/removeThreat) @mention
adds a user to/removes user from the active threats list, where they will be filtered. SENTINEL FILTERING METHOD:
-
Processes every single message sent from all users in THREATS to see if their message contains words in the banned list, or sufficiently similar strings.
-
Uses fuzzy logic to add an extra layer of protection against many different varieties of attack
-
In most cases the attacker must obfuscate their string to a point where it is not longer recognizable, and thus not offensive.
-
[S1] $comrade (addBanWord/removeBanWord)
adds or removes Sentinel v1 filtering words
- [S1] $comrade (addBanSafe/removeBanSafe) @mention
adds or removes mentioned user from list of users immume to voteKicks.
- [S1] $comrade kickReq
Changes the number of votes required to kick. Be careful setting this as I have not coded a failsafe for this yet.
DANGEROUS/MAINTENANCE COMMANDS:
- [S1] $comrade resetKick
Completely regenerates the kickList and kickVotes dictionaries. Often used if members join or leave.
- [N] $comrade reloadVars
Loads variables from the list
Wiki maintained by itchono on a semi-regular basis. If you have feedback please direct it to me via a message or any other channel of communication you can find. Thanks!