easterobot
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 (and for each update)
chmod -R 700 . && mkdir data -p && 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
# Update
git reset --hard HEAD && git pull
# One-line update
docker compose down --rmi all && git reset --hard HEAD && git pull && chmod -R 700 . && mkdir data -p && chmod 777 data && docker compose up -d
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
│ ├── placements Directory for emoji used in grid
│ │ └── s1.png Single blue emoji with one on it
│ └── skyjo Skyjo cards
│ └── skyjo_m1.png Card with minus -1 with deep blue
├── 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.
Metadata
Release files for easterobot 1.5.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| easterobot-1.5.2.tar.gz | 2.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| easterobot-1.5.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.9 MB
Release files / easterobot-1.5.2.tar.gz
| Download URL | easterobot-1.5.2.tar.gz |
|---|---|
| Size | 2.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5724cd675f788f5a806bb41abfc5e6834def9f18d3cbddce2a224b9c3eea62d0
|
|
BLAKE2b-256 checksum How to use checksums |
f2287b3a0688f6a4cd9833d92d4a2ade4cd28f556276ff2f824b680d2358bd13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 11, 2025.
Transparency logRelease files / easterobot-1.5.2-py3-none-any.whl
| Download URL | easterobot-1.5.2-py3-none-any.whl |
|---|---|
| Size | 2.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
868243ecc115189f743d6fcf9603cf91498d41531ae48df7cfbc8984056a6bcf
|
|
BLAKE2b-256 checksum How to use checksums |
0126639b4d57638e3c81ee5548004b00b2e313bbb26a86c6e7620b4fadec3711
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 11, 2025.
Transparency log