A Python Telegram bot that scrapes Arsenal FC fixtures from their official website and sends updates via Telegram.
- 🔍 Scrapes Arsenal FC fixtures from the official website
- 📱 Sends formatted updates via Telegram
- ⚽ Filters fixtures by venue (Emirates Stadium)
- 📅 Highlights today's matches
- 🔔 Interactive bot commands
- Python 3.11+
- uv for fast dependency management
Note: This project uses only
pyproject.tomlwithuv- no separate requirements.txt files needed!
- Install
uvif you haven't already:
curl -LsSf https://astral.sh/uv/install.sh | sh- Clone the repository and navigate to it:
cd games.scraper.bot.ts- Create a virtual environment and install dependencies:
uv sync --all-extrasThis will automatically create a virtual environment and install all dependencies from pyproject.toml.
Set up the following environment variables (you can use a .envrc file or export them):
export ARSENAL_GAMES_TELEGRAM_BOT_TOKEN="your_bot_token_here"
export ARSENAL_GAMES_TELEGRAM_BOT_CHAT_ID="your_chat_id_here"To get a bot token:
- Message @BotFather on Telegram
- Create a new bot with
/newbot - Copy the token provided
python src/main.pypython -m src.botThe bot supports the following commands:
/start- Triggers a fixtures scrape and sends results
pytest tests/ -vpytest tests/ --cov=src --cov-report=term-missing# Check for issues
ruff check src tests
# Auto-fix issues
ruff check --fix src tests# Check formatting
ruff format --check src tests
# Format code
ruff format src testsThe project uses GitHub Actions for continuous integration:
- Runs tests on Python 3.11 and 3.12
- Checks code formatting with
ruff - Runs linting checks
- Generates coverage reports