Files
crossfit/README.md

2.7 KiB

Crossfit Application

This is a Python application for managing Crossfit bookings and notifications. The application automates the process of booking Crossfit sessions and sends notifications via email and Telegram when a booking is successful.

Features

  • Automated booking of Crossfit sessions
  • Email and Telegram notifications for successful bookings
  • Configurable preferred sessions
  • Retry logic for booking failures
  • Detailed logging

Prerequisites

  • Docker
  • Docker Compose

Setup

  1. Create a .env file based on .env.example and fill in the required credentials.
  2. Build and run the application using Docker Compose:
docker-compose up --build
  1. The application will run in a Docker container, and the logs will be stored in the ./log directory.

Usage

The application will automatically check for available sessions and book them based on your preferences. It will send notifications via email and Telegram when a booking is successful.

Environment Variables

The following environment variables are required:

  • CROSSFIT_USERNAME: Your Crossfit username
  • CROSSFIT_PASSWORD: Your Crossfit password
  • EMAIL_FROM: Your email address
  • EMAIL_TO: Recipient email address
  • EMAIL_PASSWORD: Your email password
  • TELEGRAM_TOKEN: Your Telegram bot token
  • TELEGRAM_CHAT_ID: Your Telegram chat ID

Preferred Sessions

You can configure your preferred sessions in the crossfit_booker.py file. The preferred sessions are defined as a list of tuples, where each tuple contains the day of the week, start time, and session name.

PREFERRED_SESSIONS = [
    (4, "17:00", "WEIGHTLIFTING"),  # Friday 17:00 WEIGHTLIFTING
    (5, "12:30", "HYROX"),          # Saturday 12:30 HYROX
    (2, "18:30", "CONDITIONING"),   # Wednesday 18:30 CONDITIONING
]

Files

  • Dockerfile: Docker image definition
  • docker-compose.yml: Docker Compose service definition
  • .env.example: Example environment variables file
  • .dockerignore: Docker ignore file
  • .gitignore: Git ignore file
  • book_crossfit.py: Main application script
  • crossfit_booker.py: Crossfit booking script
  • session_notifier.py: Session notification script
  • requirements.txt: Python dependencies

Project Structure

.
├── Dockerfile
├── docker-compose.yml
├── .env.example
├── .dockerignore
├── .gitignore
├── book_crossfit.py
├── crossfit_booker.py
├── session_notifier.py
├── requirements.txt
└── log
    └── crossfit_booking.log

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.