Coder Social home page Coder Social logo

pydrocsid / template Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 525 KB

Template for PyDrocsid Discord Bots

License: GNU General Public License v3.0

Dockerfile 14.20% Shell 27.67% Python 58.13%
pydrocsid-bot pydrocsid docker python discord-bot hacktoberfest

template's Introduction

CI Code style: black Maintainability Discord Matrix

PyDrocsid Bot Template

Template Instructions

Development

Prerequisites

Clone the repository

SSH (recommended)

git clone --recursive [email protected]: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.

template's People

Contributors

defelo avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.