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
.tokenAPI 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