Skip to content
This repository has been archived by the owner on May 6, 2024. It is now read-only.
Mingde Yin edited this page Nov 8, 2019 · 30 revisions

Welcome to the Comrade wiki!

This is a bot being used by me in my personal server to improve user experience.


Comrade Logo

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

Clone this wiki locally