2024-08-07 22:15:39 +01:00
# Matchy
2024-08-09 23:33:39 +01:00
Matchy matches matchees.
2024-08-10 22:49:50 +01:00

2024-08-12 23:17:43 +01:00
Matchy is a Discord bot that groups up users for fun and vibes. Matchy can be installed on your server by clicking [here ](https://discord.com/oauth2/authorize?client_id=1270849346987884696 ).
2024-08-08 17:16:59 +01:00
## Commands
2024-08-12 23:17:43 +01:00
Unless otherwise specified all commands are only usable in channels.
2024-08-11 17:58:21 +01:00
2024-08-12 23:17:43 +01:00
### Usable by anyone
#### /join and /leave
2024-08-11 17:58:21 +01:00
Allows users to sign up and leave the group matching in the channel the command is used
2024-08-09 23:33:39 +01:00
2024-08-12 23:17:43 +01:00
#### /pause [days: int(7)]
2024-08-11 22:31:34 +01:00
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.
2024-08-11 19:03:44 +01:00
2024-08-12 23:17:43 +01:00
#### /list
List the current matchees in the channel as well as any current scheduled runes.
### Usable by "matchers"
#### /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.
#### /schedule [group_min: int(3)] [weekday: int(0)] [hour: int(9)] [cancel: bool(False)]
Allows a matcher to set a weekly schedule for matches in the channel, cancel can be used to remove a scheduled run
### Usable by "owners"
#### $sync and $close
Reloads the config and syncs commands, or closes down the bot. Unlike all other commands these are usable in DMs with the bot user.
2024-08-07 22:15:39 +01:00
## Dependencies
2024-08-12 23:17:43 +01:00
* `python3` - Obviously, ideally 3.11
2024-08-11 10:36:44 +01:00
* `venv` - Used for the python virtual env, specs in `requirements.txt`
2024-08-08 00:09:30 +01:00
2024-08-09 23:33:39 +01:00
## Config
2024-08-10 22:04:21 +01:00
Matchy is configured by a `config.json` file that takes this format:
2024-08-11 22:07:43 +01:00
```json
2024-08-10 22:04:21 +01:00
{
2024-08-11 22:07:43 +01:00
"version" : 1,
"token" : "< < github bot token > >",
"match" : {
"score_factors": {
"repeat_role" : 4,
"repeat_match" : 8,
"extra_member" : 32,
"upper_threshold" : 64
}
}
2024-08-10 22:04:21 +01:00
}
2024-08-09 23:33:39 +01:00
```
2024-08-11 22:10:45 +01:00
Only token and version are required. See [`py/config.py` ](py/config.py ) for explanations for any of these.
2024-08-09 23:33:39 +01:00
## TODO
2024-08-11 22:31:34 +01:00
* Write integration tests (maybe with [dpytest ](https://dpytest.readthedocs.io/en/latest/tutorials/getting_started.html )?)
2024-08-12 13:35:17 +01:00
* Implement a .json file upgrade test
* Track if meets were sucessful
2024-08-12 23:17:43 +01:00
* Improve the weirdo