A Discord Bot written in Python. Not intended for re-use, but you can fork it if you like.
This bot was written as a way to make my personal discord server more interactive, or smarter, in some way.
- Notification support - currently rudimentary (lots of logic duplicated) but it does the job
- Supports notifying users when a voice channel they subscribe to is joined
- Support for loading and playing back audio files from Firebase storage
- Some support for audio effects like layering and reversing audio buffer to stack sounds and create audio mayhem
- Chain text through multiple modifier commands
- Automatically joins and leaves voice channels when summoned or when everyone has left
- Link helpers/listeners
- Automatically download and post linked TikTok videos
- Automatically wrap types of links or messages
Generally follows the advised Cog-based Discord.py system.
Document and file storage is handled by Firebase, which is synced locally on startup.
- Requires
.token
API key from Discord developer portal - Requires
credentials.json
(service account credentials) andfirebase.json
(API key, auth domain, URL, etc.) from Firebase API credentials - Requires Python3.9+
- Run
pip install -r requirements.txt
- Run
python main.py
To keep the bot alive, run with screen
, tmux
, or whatever you prefer.
Requires Discord Members intent.
To create voice channel notifications requires permission to create invites from whatever Discord server it is a part of.
This repo supports formatting and linting with the following tools:
- isort
- black
- mypy
- flake8
To run the formatter, start from the repo root and run python lib/format.py