1
Fork 0
mirror of https://github.com/allthingslinux/tux.git synced 2024-10-02 16:43:12 +00:00
Tux is an all in one bot for the All Things Linux discord server.
Find a file
kzndotsh 9e221709ac refactor: remove dollar sign from usage instructions in various commands for consistency
chore: remove error handling blocks from dev.py to simplify code and rely on global error handling

refactor: remove dollar sign from usage instructions in command decorators for clarity and consistency across all command usage instructions

feat(error.py): add prefix to command usage in error messages for better clarity
refactor(error.py): change error messages to be more descriptive and accurate
feat(error.py): use embeds for error messages for better readability
refactor(error.py): comment out specific error handlers to allow global handler to catch all errors for consistency

refactor(help.py): remove static prefix and add dynamic prefix fetching to improve flexibility
feat(help.py): add command aliases to help command categories for better command visibility
refactor(help.py): change several methods to async to support dynamic prefix fetching
feat(embeds.py): add create_error_embed method to standardize error embed creation
2024-08-15 06:33:00 +00:00
.archive refactor: remove dollar sign from usage instructions in various commands for consistency 2024-08-15 06:33:00 +00:00
.github docs: add CONTRIBUTING.md to guide contributors on how to contribute to the project 2024-08-06 16:02:39 +00:00
assets added improved vanillaOS logo 2024-08-06 21:03:13 +00:00
config perm system part 1 2024-07-29 11:45:22 -05:00
docs docs: add CONTRIBUTING.md to guide contributors on how to contribute to the project 2024-08-05 14:23:18 +00:00
prisma refactor(schema.prisma): simplify database URL environment variables for better maintainability 2024-08-11 02:36:21 +00:00
tux refactor: remove dollar sign from usage instructions in various commands for consistency 2024-08-15 06:33:00 +00:00
.editorconfig feat: add .editorconfig for consistent coding style across different editors 2024-04-11 20:22:47 +00:00
.env.example refactor(.env.example): reorder and clean up environment variables for better readability 2024-08-11 02:47:24 +00:00
.gitignore chore(.gitignore): update and reorganize .gitignore file for better readability and maintainability 2024-08-08 04:05:47 +00:00
.mise.toml feat: add .editorconfig for consistent coding style across different editors 2024-04-11 20:22:47 +00:00
.pre-commit-config.yaml chore(.pre-commit-config.yaml): update ruff-pre-commit version from v0.5.6 to v0.5.7 to get the latest features and bug fixes 2024-08-10 02:31:29 +00:00
docker-compose.yml fix(Dockerfile): remove entrypoint and use CMD for better debugging 2024-08-06 15:45:49 +00:00
Dockerfile Alphabetise RUN instructions 2024-08-11 19:14:20 +01:00
justfile feat(docs): add MkDocs documentation with initial pages 2024-07-31 01:38:07 +00:00
LICENSE.md Update LICENSE.md 2024-06-21 23:54:58 -04:00
mkdocs.yml feat(docs): add MkDocs documentation with initial pages 2024-07-31 01:38:07 +00:00
poetry.lock refactor(moderation): replace MemberConverter with ctx.author for moderator assignment to simplify code 2024-08-15 01:54:36 +00:00
poetry.toml feat(poetry.toml): add poetry.toml file to create virtual environments within the project directory 2024-07-02 19:19:07 +00:00
pyproject.toml chore: update pyproject.toml with new ruff rules 2024-08-06 05:38:55 -04:00
README.md docs(README.md): enhance readability of development notes using blockquote 2024-08-01 23:31:47 +00:00
renovate.json Add renovate.json 2024-04-11 20:02:04 +00:00

Tux

A Discord bot for the All Things Linux Discord server

NOTE: This bot (without plenty of tweaking) is not ready for multi-server use, we recommend against using it until it is more complete

About

Tux is a Discord bot for the All Things Linux Discord server. It is designed to provide a variety of features to the server, including moderation, support, utility, and various fun commands. The bot is written in Python using the discord.py library.

Tech Stack

  • Poetry for dependency management
  • Docker and Docker Compose for development and deployment
  • Strict typing with Pyright and type hints
  • Type safe ORM using Prisma
  • PostgreSQL database with Supabase
  • Linting and formatting via Ruff and Pre-commit
  • Justfile for easy CLI commands
  • Beautiful logging with Loguru
  • Exception handling with Sentry

Bot Features

  • Asynchronous codebase
  • Hybrid command system with both slash commands and traditional commands
  • Cog loading system with hot reloading
  • Branded embeds and messages
  • Robust error handling
  • Activity rotation
  • Custom help command
  • Configuration system
  • Dynamic role-based (access level) permission system

Installation

Prerequisites

  • Python 3.12
  • Poetry
  • Optional: Docker if you want to run the bot in a container.
  • Optional: Docker Compose if you want to define the container environment in a docker-compose.yml file.
  • Optional: Just if you want to use the Justfile for easy CLI commands.

Steps

  1. Clone the repository

    git clone https://github.com/allthingslinux/tux && cd tux
    
  2. Install the dependencies

    poetry install
    
  3. Activate the virtual environment

    poetry shell
    
  4. Install the pre-commit hooks

    pre-commit install
    
  5. Generate the prisma client

    prisma generate
    
  6. Copy the .env.example file to .env and fill in the required values

    cp .env.example .env
    
  7. Copy the config/settings.json.example file to config/settings.json and fill in the required values

    cp config/settings.json.example config/settings.json
    
  8. Run the bot

    poetry run python tux/main.py
    
  9. Run the sync command in the server to sync the slash command tree.

    {prefix}dev sync <server id>
    

Development Notes

Note

Make sure to add your discord ID to the sys admin list if you are testing locally.

Note

Make sure to set the prisma schema database ENV variable to the DEV database URL.

License

This project is licensed under the terms of the The GNU General Public License v3.0. See the LICENSE file for details.

Metrics

Alt