EpiModo is a discord bot for server moderation, and includes several points:
- Management of member Warns
- Management of member Mute
- Management of member Kicks
- Management of member Bans
- Management of clearing message
- All based on a configuration file and website API
- ...
EpiModo is a project by gastbob40 with contributions from Baptman21.
You will need all these elements for the proper working of the project.
- First, you will have to clone the project.
git clone https://github.com/gastbob40/epimodo_bot
- Create a
virtual environment
, in order to install dependencies locally. For more information about virtual environments, click here.
python -m venv .venv
- Activate the virtual environment
Linux/macOS:
# Using bash/zsh
source .venv/bin/activate
# Using fish
. .venv/bin/activate.fish
# Using csh/tcsh
source .venv/bin/activate.csh
Windows:
# cmd.exe
.venv\Scripts\activate.bat
# PowerShell
.venv\Scripts\Activate.ps1
- Finally, install the dependencies
pip install -r requirements.txt
-
Configure EpiModo. This is necessary to use the bot. Check the next section for instructions.
-
Run
python index.py
to launch EpiModo. Also make sure that the venv is activated when you launch EpiModo (you should seevenv
to the left of your command prompt).
The run/config
folder contains all the data of the program configuration.
This file contain all data about prefix and channels. This file looks like this:
prefix: '!'
channels:
channel_name: channel_id
You must fill in the file and rename it to config.yml
.
This file contain all data about tokens. This file looks like this:
discord_token: ~
epimodo_website_token: ~
You must fill in the file and rename it to tokens.yml
This file contain all data about permissions. This file looks like this:
dev: ~
epilogin: ~
You must fill in the file and rename it to permissions.yml
.
Warning, these two items are lists of Discord user IDs.
This file contains all the data concerning the the repost of EPITA news.
You can add new newsgroups and new channels.
For example:
address: news.epita.fr # Address for news
encoding: utf-8 # The encoding to use. Always UTF-8 according to the nntp RFC.
delta_time: 60 # Time between news updates (in seconds)
groups: # List of groups
assistants: # group name (not actually used)
name: assistants.news # Name of the newsgroup
last_update: "15/02/2020 00:00:00" # Time of the last update (to get just new news)
channels:
- 678944434242715648 # list of channel ids where to repost the news