2018-12-23 12:49:09 +00:00
# Robocop-ng
2018-12-27 21:36:18 +00:00
Next-gen rewrite of Kurisu/Robocop bot used on ReSwitched bot with discord.py rewrite, designed to be relatively clean, consistent and un-bloated.
2018-12-23 12:49:09 +00:00
2019-11-26 06:52:23 +00:00
Code is based on https://gitlab.com/a/dpybotbase and https://github.com/916253/Kurisu-Reswitched.
2018-03-08 22:47:53 +00:00
2018-03-08 23:03:45 +00:00
2018-12-26 11:32:57 +00:00
---
## How to run
- Copy `config.py.template` to `config.py` , configure all necessary parts to your server.
2019-08-06 09:54:23 +00:00
- (obviously) Add the bot to your guild. Many resources about this online.
- If you haven't already done this already, **move the bot's role above the roles it'll need to manage, or else it won't function properly** , this is especially important for verification as it doesn't work otherwise.
2018-12-26 11:32:57 +00:00
- Install python3.6+.
- Install python dependencies (`pip3 install -Ur requirements.txt`, you might need to put `sudo -H` before that)
2018-12-27 12:00:22 +00:00
- If you're moving from Kurisu or Robocop: Follow `Tips for people moving from Kurisu/Robocop` below.
2018-12-26 11:32:57 +00:00
- Run `Robocop.py` (`python3 Robocop.py`)
To keep the bot running, you might want to use pm2 or a systemd service.
2018-12-27 12:00:22 +00:00
---
## Tips for people moving from Kurisu/Robocop
If you're moving from Kurisu/Robocop, and want to preserve your data, you'll want to do the following steps:
- Copy your `data` folder over.
- Rename your `data/warnsv2.json` file to `data/userlog.json` .
- Edit `data/restrictions.json` and replace role names (`"Muted"` etc) with role IDs (`526500080879140874` etc). Make sure to have it as int, not as str (don't wrap role id with `"` or `'` ).
2018-12-27 11:19:33 +00:00
2018-03-08 23:03:45 +00:00
---
2018-12-23 12:49:09 +00:00
## TODO
2018-12-27 21:36:18 +00:00
All Robocop features are now supported.
2018-12-23 23:53:14 +00:00
2018-12-26 11:32:57 +00:00
< details >
2018-12-27 12:14:13 +00:00
< summary > List of added Kurisu/Robocop features< / summary >
2018-12-26 11:32:57 +00:00
< p >
2018-12-26 11:36:55 +00:00
2018-12-23 13:13:39 +00:00
- [x] .py configs
2018-12-23 13:39:26 +00:00
- [x] membercount command
2018-12-23 20:50:05 +00:00
- [x] Meme commands and pegaswitch (honestly the easiest part)
- [x] source command
- [x] robocop command
2018-12-23 17:13:40 +00:00
- [x] Verification: Actual verification system
2018-12-23 16:31:12 +00:00
- [x] Verification: Reset command
2018-12-23 19:03:40 +00:00
- [x] Logging: joins
- [x] Logging: leaves
- [x] Logging: role changes
- [x] Logging: bans
- [x] Logging: kicks
2018-12-26 11:32:57 +00:00
- [x] Moderation: speak
2018-12-23 15:33:59 +00:00
- [x] Moderation: ban
2018-12-23 15:44:16 +00:00
- [x] Moderation: silentban
2018-12-23 15:33:59 +00:00
- [x] Moderation: kick
2018-12-23 15:07:59 +00:00
- [x] Moderation: userinfo
2018-12-23 19:32:48 +00:00
- [x] Moderation: approve-revoke (community)
2018-12-23 19:59:42 +00:00
- [x] Moderation: addhacker-removehacker (hacker)
- [x] Moderation: probate-unprobate (participant)
2018-12-23 20:33:03 +00:00
- [x] Moderation: lock-softlock-unlock (channel lockdown)
2018-12-23 20:50:05 +00:00
- [x] Moderation: mute-unmute
2018-12-23 17:36:40 +00:00
- [x] Moderation: playing
2018-12-23 17:56:27 +00:00
- [x] Moderation: botnickname
- [x] Moderation: nickname
2018-12-23 20:59:08 +00:00
- [x] Moderation: clear/purge
2018-12-23 23:53:14 +00:00
- [x] Moderation: restrictions (people who leave with muted role will get muted role on join)
2018-12-23 22:11:01 +00:00
- [x] Warns: warn
2018-12-23 22:36:36 +00:00
- [x] Warns: listwarns-listwarnsid
2018-12-23 23:25:30 +00:00
- [x] Warns: clearwarns-clearwarnsid
2018-12-23 23:41:25 +00:00
- [x] Warns: delwarnid-delwarn
2018-12-23 20:50:05 +00:00
- [x] .serr and .err (thanks tomger!)
2018-12-26 11:36:55 +00:00
2018-12-26 11:32:57 +00:00
< / p >
< / details >
2018-12-23 20:36:30 +00:00
---
2019-02-09 08:11:13 +00:00
The main goal of this project, to get Robocop functionality done, is complete.
Secondary goal is adding new features:
2018-12-23 20:36:30 +00:00
2019-01-07 08:49:19 +00:00
- [ ] Purge: On purge, send logs in form of txt file to server logs
2018-12-23 20:36:30 +00:00
- [ ] New feature: Modmail
2018-12-27 12:14:13 +00:00
- [ ] New feature: Submiterr (relies on modmail)
2018-12-27 21:36:18 +00:00
- [ ] Feature creep: Shortlink completion (gl/ao/etc)
2019-02-09 08:11:13 +00:00
- [ ] New moderation feature: timelock (channel lockdown with time, relies on robocronp)
< details >
< summary > Completed features< / summary >
< p >
- [x] Better security, better checks and better guild whitelisting
2018-12-30 20:36:11 +00:00
- [x] Feature creep: Reminds
2018-12-27 21:36:18 +00:00
- [x] A system for running jobs in background with an interval (will be called robocronp)
- [x] Commands to list said jobs and remove them
- [x] New moderation feature: timemute (mute with time, relies on robocronp)
- [x] New moderation feature: timeban (ban with expiry, relies on robocronp)
- [x] Improvements to lockdown to ensure that staff can talk
2018-12-27 10:56:24 +00:00
- [x] New moderation feature: Display of mutes, bans and kicks on listwarns (.userlog now)
- [x] New moderation feature: User notes
2018-12-26 11:32:57 +00:00
- [x] New moderation feature: Reaction removing features (thanks misson20000!)
- [x] New moderation feature: User nickname change
2019-03-02 18:00:55 +00:00
- [x] New moderation feature: watch-unwatch
- [x] New moderation feature: tracking suspicious keywords
- [x] New moderation feature: tracking invites posted
2018-12-26 11:32:57 +00:00
- [x] New self-moderation feature: .mywarns
2019-04-25 07:10:56 +00:00
- [x] New feature: Highlights (problematic words automatically get posted to modmail channel, relies on modmail)
2018-12-26 11:32:57 +00:00
2019-02-09 08:11:13 +00:00
< / p >
< / details >
2018-12-27 21:36:18 +00:00
< details >
< summary > TODO for robocronp< / summary >
< p >
2019-02-09 08:11:13 +00:00
- [ ] Reduce code repetition on mod_timed.py
- [x] Allow non-hour values on timed bans
2018-12-27 21:50:18 +00:00
2018-12-27 21:36:18 +00:00
the following require me to rethink some of the lockdown code, which I don't feel like
2019-02-09 08:11:13 +00:00
- [ ] lockdown in helper
- [ ] timelock command
- [ ] working cronjob for unlock
2018-12-27 21:36:18 +00:00
< / p >
< / details >
2018-12-26 11:32:57 +00:00
---
2019-04-25 07:10:56 +00:00
## Credits
Robocop-NG is currently developed and maintained by @aveao and @tumGER . The official bot is hosted by @yuukieve .
I (ave) would like to thank the following, in no particular order:
2018-12-26 11:32:57 +00:00
- ReSwitched community, for being amazing
2018-12-27 21:36:18 +00:00
- ihaveamac/ihaveahax and f916253 for the original kurisu/robocop
2018-12-26 11:32:57 +00:00
- misson20000 for adding in reaction removal feature and putting up with my many BS requests on PR reviews
2019-04-25 07:10:56 +00:00
- Everyone who contributed to robocop-ng in any way (reporting a bug, sending a PR, forking and hosting their own at their own guild, etc).
2018-12-27 12:00:22 +00:00