Allows matchers to schedule repeated weekly runs on a given weekday and hour Can schedule multiple runs Scheduled runs can be cancelled with cancel:True in the command /list also shows any scheduled commands in that channel |
||
---|---|---|
.github/workflows | ||
.vscode | ||
bin | ||
py | ||
.gitignore | ||
README.md | ||
requirements.txt |
Matchy
Matchy matches matchees.
Matchy is a Discord bot that groups up users for fun and vibes. Matchy can be installed by clicking here.
Commands
/match [group_min: int(3)]
Matches groups of users in a channel and offers a button to pose those groups to the channel to users with matcher
auth scope. Tracks historical matches and attempts to match users to make new connections with people with divergent roles, in an attempt to maximise diversity.
/join and /leave
Allows users to sign up and leave the group matching in the channel the command is used
/pause [days: int(7)]
Allows users to pause their matching in a channel for a given number of days. Users can use /join
to re-join before the end of that time.
$sync and $close
Only usable by OWNER
users, reloads the config and syncs commands, or closes down the bot. Only usable in DMs with the bot user.
Dependencies
python3
- Obviouslyvenv
- Used for the python virtual env, specs inrequirements.txt
Config
Matchy is configured by a config.json
file that takes this format:
{
"version" : 1,
"token" : "<<github bot token>>",
"match" : {
"score_factors": {
"repeat_role" : 4,
"repeat_match" : 8,
"extra_member" : 32,
"upper_threshold" : 64
}
}
}
Only token and version are required. See py/config.py
for explanations for any of these.
TODO
- Add scheduling functionality
- Write integration tests (maybe with dpytest?)
- Implement a .json file upgrade test
- Track if meets were sucessful
- Send reminder messages
- Improve the weirdo