Skip to content
This repository was archived by the owner on Oct 2, 2023. It is now read-only.

PyDrocsid/template

Repository files navigation

CI Code style: black Maintainability Discord Matrix

PyDrocsid Bot Template

Template Instructions

Development

Prerequisites

Clone the repository

SSH (recommended)

git clone --recursive git@github.com:PyDrocsid/template.git

HTTPS

git clone --recursive https://github.com/PyDrocsid/template.git

Setup development environment

After cloning the repository, you can setup the development environment by running the following command:

poe setup

This will create a virtual environment, install the dependencies, create a .env file and install the pre-commit hook.

Environment variables

To set the required environment variables it is necessary to create a file named .env in the root directory (there is a template for this file in bot.env). If you need a token, generate one by following these instructions: Creating a Bot Account (Note you need to enable the options under Privileged Gateway Intents)

Project structure

Project ├── bot │ ├── cogs │ │ ├── custom │ │ │ ├── <cog> │ │ │ │ ├── translations │ │ │ │ │ └── en.yml │ │ │ │ ├── __init__.py │ │ │ │ ├── api.py │ │ │ │ ├── cog.py │ │ │ │ ├── colors.py │ │ │ │ ├── models.py │ │ │ │ ├── permissions.py │ │ │ │ └── settings.py │ │ │ ├── contributor.py │ │ │ ├── pubsub.py │ │ │ └── translations.py │ │ └── library (submodule) │ │ ├── <category> │ │ │ └── <cog> │ │ │ ├── translations │ │ │ │ └── en.yml │ │ │ ├── __init__.py │ │ │ ├── api.py │ │ │ ├── cog.py │ │ │ ├── colors.py │ │ │ ├── documentation.md │ │ │ ├── models.py │ │ │ ├── permissions.py │ │ │ └── settings.py │ │ ├── contributor.py │ │ ├── pubsub.md │ │ ├── pubsub.py │ │ └── translations.py │ ├── bot.py │ └── pydrocsid_bot.py └── config.yml 

PyCharm configuration

  • Open PyCharm and go to SettingsProjectPython Interpreter
  • Open the menu Python Interpreter and click on Show All...
  • Click on the plus symbol
  • Click on Poetry Environment
  • Select Existing environment (setup the environment first by running poe setup)
  • Confirm with OK
  • Change the working directory to root path ➔ Edit ConfigurationsWorking directory

Finally, please remember to mark the bot directory as Sources Root (right click on botMark Directory asSources Root).

Installation instructions

Using Docker

# clone git repository and cd into it git clone --recursive https://github.com/PyDrocsid/template.git cd template # build docker image sudo docker build -t pydrocsid/template . # adjust the docker-compose.yml and create a .env file cp bot.env .env vim .env vim docker-compose.yml # start redis, database and bot using docker-compose sudo docker-compose up -d

Local installation

# install poetry and poethepoet pip install poetry poethepoet # create virtual environment and install requirements poetry install --no-root --no-dev # start the bot poe bot

Environment variables

Variable Name Description Default Value
TOKEN Discord Bot Token
GITHUB_TOKEN GitHub Personal Access Token (PAT) with public access
LOG_LEVEL one of DEBUG, INFO, WARNING, ERROR, CRITICAL INFO
PYCORD_LOG_LEVEL one of DEBUG, INFO, WARNING, ERROR, CRITICAL ERROR
DB_DRIVER Name of the SQL connection driver mysql+aiomysql
DB_HOST Hostname of the database server localhost
DB_PORT Port on which the database server is running 3306
DB_DATABASE Name of the database you want to use bot
DB_USER Username for the database account bot
DB_PASSWORD Password for the database account bot
POOL_RECYCLE Number of seconds between db connection recycling 300
POOL_SIZE Size of the connection pool 20
MAX_OVERFLOW The maximum overflow size of the connection pool 20
SQL_SHOW_STATEMENTS whether SQL queries should be logged False
REDIS_HOST Hostname of the redis server redis
REDIS_PORT Port on which the redis server is running 6379
REDIS_DB Index of the redis database you want to use 0
CACHE_TTL Time to live of redis cache in seconds 28800
RESPONSE_LINK_TTL Time to live of links between command messages and the resulting bot responses 7200
REPLY wether to use the reply feature when responding to commands True
MENTION_AUTHOR wether to mention the author when the reply feature is being used True
SENTRY_DSN [Optional] Sentry DSN for logging
SENTRY_ENVIRONMENT [Optional] Sentry environment production
OWNER_ID [Optional] Discord User ID of the person who should recieve status information.
DISABLED_COGS [Optional] Cogs you'd like to disable.

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •