Skip to main content

Discord bot for Easter.

Project description

CI : Docs CI : Lint CI : Tests PyPI : easterobot Python : versions License : MIT

Description

Discord bot for Easter.

Documentation

Documentation is available on https://dashstrom.github.io/easterobot

Prerequisite

For using easterobot you will need a token, you can follow the discord.py Guide for get one.

Usage as CLI

You can install easterobot using uv from PyPI.

pip install uv
uv tool install easterobot
# or uv tool install git+https://github.com/Dashstrom/easterobot

Once installed, you can use it directly.

easterobot run -t YOU_MUST_PUT_YOUR_TOKEN_HERE

Or you can generate a custom configuration for your own needs !

easterobot generate -i data
easterobot run -c data/config.yml

Usage with Docker

You can install easterobot using uv from PyPI

git clone https://github.com/Dashstrom/easterobot
cd easterobot
echo "DISCORD_TOKEN=YOU_MUST_PUT_YOUR_TOKEN_HERE" > .env

# Can be unsafe
chmod -R 700 .
mkdir data
chmod 777 data

# Run the docker container
docker compose up -d

# Stop it
docker compose stop

# Remove the container (not the data)
docker compose down --rmi all

Configuration directory

data                        Root directory
├── .gitignore              Avoid pushing sensitive data
├── config.yml              Configuration file
├── easterobot.db           Database
├── logs                    Logging directory
│   ├── easterobot.log      Latest log file
│   └── easterobot.log.1    Rotating log file
└── resources               Resource directory
    ├── config.example.yml  An example of config
    ├── credits.txt         Credits of emotes
    ├── emotes              Directory loaded as application emotes
    │   ├── eggs            Directory for eggs
    │   |   └── egg_01.png  Emoji to use for egg
    │   └── icons           Misc emotes to load
    │       └── arrow.png   Emoji used in messages
    ├── logging.conf        Logging configuration
    ├── alembic.ini         Configure for alembic
    └── logo.png            Logo used by the bot

Development

Contributing

Contributions are very welcome. Tests can be run with poe check, please ensure the coverage at least stays the same before you submit a pull request.

Setup

You need to install uv and Git for work with this project.

git clone https://github.com/Dashstrom/easterobot
cd easterobot
uv sync
uv run poe setup

Poe

Poe is available for help you to run tasks.

test           Run test suite.
lint           Run linters: ruff checker and ruff formatter and mypy.
format         Run linters in fix mode.
check          Run all checks: lint, test and docs.
check-tag      Check if the current tag match the version.
cov            Run coverage for generate report and html.
open-cov       Open html coverage report in webbrowser.
docs           Build documentation.
open-docs      Open documentation in webbrowser.
setup          Setup pre-commit.
pre-commit     Run pre-commit.
commit         Test, commit and push.
clean          Clean cache files.

Skip commit verification

If the linting is not successful, you can’t commit. For forcing the commit you can use the next command :

git commit --no-verify -m 'MESSAGE'

Commit with commitizen

To respect commit conventions, this repository uses Commitizen.

cz c

How to add dependency

uv add 'PACKAGE'

Ignore illegitimate warnings

To ignore illegitimate warnings you can add :

  • # noqa: ERROR_CODE on the same line for ruff.

  • # type: ignore[ERROR_CODE] on the same line for mypy.

  • # pragma: no cover on the same line to ignore line for coverage.

  • # doctest: +SKIP on the same line for doctest.

Uninstall

pipx uninstall easterobot

License

This work is licensed under MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easterobot-1.1.2.tar.gz (2.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easterobot-1.1.2-py3-none-any.whl (2.3 MB view details)

Uploaded Python 3

File details

Details for the file easterobot-1.1.2.tar.gz.

File metadata

  • Download URL: easterobot-1.1.2.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for easterobot-1.1.2.tar.gz
Algorithm Hash digest
SHA256 ee049f705c1684eabe5bb25b3b6174ad3d713ba82338f27be2a02da5f6cd421e
MD5 579dcd6929e79db3f5122a14b4e3355f
BLAKE2b-256 27b097074a1059eb2021476ffb5510aaa65545fa271a97e564301a79fdec648c

See more details on using hashes here.

Provenance

The following attestation bundles were made for easterobot-1.1.2.tar.gz:

Publisher: publish.yml on Dashstrom/easterobot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easterobot-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: easterobot-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for easterobot-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 54e40bf7d467f158f9ced6b5376ffa815dd2de93bb73720d036786a17d7c9a15
MD5 dfbf80cd0f9dc3e37b0f256690a504d3
BLAKE2b-256 cba27022a445fae0b1820fc4e7e94a80d743c49c405e71e4660fbcd3f4178511

See more details on using hashes here.

Provenance

The following attestation bundles were made for easterobot-1.1.2-py3-none-any.whl:

Publisher: publish.yml on Dashstrom/easterobot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page