Skip to main content

Slack bot that understands the Emojirades game!

Project description

Emojirades

A Slack bot that understands the Emojirades game and handles scorekeeping.

CI Status

Local Development Setup

This project uses uv for dependency management. Follow these steps to set up your local environment:

1. Install dependencies

Install the project and all development tools into a local virtual environment:

uv sync --extra dev

2. Configure Git Hooks

We use pre-commit to ensure code quality. Initialize the hooks so they run automatically on git commit:

uv run pre-commit install

3. Run Tests

Ensure everything is working correctly:

uv run --extra dev ./scripts/run_tests.sh

Running the Bot Locally

Initialization

# Initialize the database (SQLite)
uv run emojirades init --db-uri "sqlite:///emojirades.db"

Run (Single Workspace)

uv run emojirades single --db-uri "sqlite:///emojirades.db" --auth-uri "auth.json"

Run (Docker)

docker build -t emojirades .
docker run -e DATABASE_URI=sqlite:////data/emojirades.db -v $(pwd)/data:/data emojirades

Dependency Management

This project uses uv for lightning-fast dependency management and deterministic builds.

Adding/Updating Dependencies

# Add a new package
uv add requests

# Add a dev dependency
uv add --dev pytest

# Update a specific package
uv add requests@latest

# Update all packages to latest allowed by constraints
uv lock --upgrade

Syncing Environment

If the uv.lock or pyproject.toml file changes, sync your local environment:

uv sync

Database Migrations

We use Alembic for database migrations.

# Apply migrations
uv run emojirades init

# Generate a new migration (after modifying models)
# This can now be run directly from the root
uv run alembic revision --autogenerate -m "description of changes"

Deployment

The bot is automatically published to GHCR on tagged releases. See src/emojirades/__init__.py for the current version.

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

emojirades-1.15.0.tar.gz (53.7 kB view details)

Uploaded Source

Built Distribution

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

emojirades-1.15.0-py3-none-any.whl (71.8 kB view details)

Uploaded Python 3

File details

Details for the file emojirades-1.15.0.tar.gz.

File metadata

  • Download URL: emojirades-1.15.0.tar.gz
  • Upload date:
  • Size: 53.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for emojirades-1.15.0.tar.gz
Algorithm Hash digest
SHA256 bf5f25c76cb087481889394f020538892cb63b660de4fa9372bdf9e73fe7a444
MD5 21ae89fd9054e5069c3f8cd4dee891eb
BLAKE2b-256 f7a5eb49168e82480969171e74c38b8cee88e317ae1dcbbe2a5a9ed388a76a13

See more details on using hashes here.

File details

Details for the file emojirades-1.15.0-py3-none-any.whl.

File metadata

  • Download URL: emojirades-1.15.0-py3-none-any.whl
  • Upload date:
  • Size: 71.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for emojirades-1.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0ec466e93ce62a10738f7e3455e677e3f0a9414aed2aef3ccdfa53388c130973
MD5 0480c820a2bbab93e31d04a79352c47c
BLAKE2b-256 7c79d6ce3003ea30d32e0db19c6e1ea078a6c434759b016d88fb357bd15090d2

See more details on using hashes here.

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