A sleek Discord bot to manage and explore slang meanings, built with Python. Offers public commands for all and admin tools for whitelisted users. Runs on Linux with systemd support!
- Public Commands:
?meaning,?list,?stats,?ping - Admin Commands:
?addmeaning,?deletemeaning,?yes,?no(whitelisted only) - DND Status: Watches servers with a "Do Not Disturb" flair
- Scalable: Handles multiple servers effortlessly
- Commands Check this for all commands
- Async file handling with
aiofiles - Fully Poetry-managed project with isolated dependencies
- Python 3.12+
- Poetry 2.x
- Discord bot token (
.envfile) - Curl 8.15.x
- Git
- Clone the repo:
git clone https://github.com/xFanexx/meanings.git
- From offical site:
- Linux, macOS, Windows (WSL)
curl -sSL https://install.python-poetry.org | python3 -- Windows (Powershell)
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -Note
If you have installed Python through the Microsoft Store, replace py with python in the command above.
Check their offical Documentation for more information. Python-Poerty
- With PIP:
pip install poetryImportant
When you are installing Poetry via pip, always check if Rust is installed in your system because one of its dependencies (maturin) needs Rust to build and top of that do not forget to update pip or its prebuilt wheels. So, you don't get any errors.
poetry installNote
This installs all dependencies listed in pyproject.toml inside a virtual environment.
Since this project is a Discord bot (not a distributed Python package), we set:
[tool.poetry]
package-mode = falseThis ensures that poetry install only installs dependencies and does not fail with a “No file/folder found for package” error.
If you don’t have Poetry installed, you can still run this project using only pip and requirements.txt.
pip install --no-deps -r requirements.txtWarning
When using requirements.txt exported from Poetry, the --no-deps flag is required.
This is because the exported file already includes all direct and transitive dependencies with exact versions or resolved hashes.
Running pip without --no-deps may cause it to try re-resolving dependencies, which can lead to conflicts or errors—especially for Git-based dependencies.
- Upgrade a single dependency:
pip install --upgrade <package-name>Example:
pip install --upgrade discord.pyThen regenerate requirements.txt:
-
Create a virtual environment:
- Linux / MacOS
python3 -m venv venv- Windows (Powershell and CMD)
python -m venv venvThis creates a folder called venv in your project.
-
Activate the virtual environment:
- Linux / MacOS
source venv/bin/activateReplace venv with the name of your virtual environment folder.
- Windows (Powershell and CMD)
# Powershell
.\venv\Scripts\Activate.ps1
# CMD
venv\Scripts\activate.batNote
If you encounter a "cannot be loaded because running scripts is disabled" error, you may need to run Set-ExecutionPolicy RemoteSigned -Scope Process in your PowerShell window to temporarily allow script execution.
Then regenerate the .txt:
pip freeze > requirements.txtAfter that deactivate it:
# Linux, MacOS and Windows
deactivate- Upgrade all dependencies:
pip install --upgrade -r requirements.txtWarning
This respects the pinned versions in requirements.txt. If you want latest versions, remove version numbers from the file before running.
After any upgrade activate the virtual environment and update it:
pip freeze > requirements.txtTip
Using pyproject.toml with Poetry is recommended for consistent, reproducible environments — but requirements.txt works for quick installs and deployment.
Create a .env file in the project root:
DISCORD_TOKEN=your_discord_token_hereImportant
Do not commit .env to version control.
- To update a single dependency:
poetry update discord-py- To update all dependencies:
poetry update- Regenerate requirements.txt after updates:
source $(poetry env info --path)/bin/activate && pip freeze > requirements.txt && deactivate-
Fork the Repo.
-
Make sure
.envand.venv/are ignored in Git (.gitignoreis included). -
Commit
pyproject.tomlandpoetry.lockto track dependencies. -
PR should be clean, concise and descriptive.
-
Use Poetry for adding new packages in your project:
poetry add <package-name> # normal dependency
poetry add --dev <package-name> # dev dependencyWarning
THIS MIGHT BE PRODUCTION READY, BUT YOU MIGHT CONSIDER RE-WRITING THE CODE AND SWITCHING TO A SQLITE OR POSTGRESQL DB.
Note
THIS IS A PURE HOBBY BOT INTENDED TO HAVE SOME FUN IN DISCORD CHANNELS.
Sacul0457 |
xFanexx |
Chandramauli |