Skip to main content

A python-based bot for automatic resasports slot booking

Project description

No queues. Just gains.

Logo

Release Build status codecov Commit activity License Documentation Contributor Covenant

Welcome to pysportbot!

Download pysportbot

pip install pysportbot

Quick Start

from pysportbot import SportBot

# Create bot instance, will list available centres if requested
bot = SportBot(log_level='INFO', print_centres=False, time_zone = 'Europe/Madrid')

# Connect to service with email and password as well as the name of the centre
bot.login('email', 'password', 'centre')

# List available activites
bot.activities(limit = 10)

# List bookable slots for an activity on a specific day
bot.daily_slots(activity='YourFavouriteGymClass', day = '2025-01-03', limit = 10)

# Book an activity slot on a specific day and time
bot.book(activity='YourFavouriteGymClass', start_time = '2024-12-30 07:00:00')

# Cancel an activity slot on a specific day and time
bot.cancel(activity='YourFavouriteGymClass', start_time = '2024-12-30 07:00:00')

Advanced usage as service

You can easily run pysportbot as a service to manage your bookings automatically with

python -m pysportbot.service --config config.json

The service requires a json configuration file that specifies your user data and how you would like to book your classes. Currently, three types of configuration are supported:

1. Book an upcoming class now

Let's say you would like to book Yoga next Monday at 18:00:00, then your config.json would look like:

{
    "email": "your-email",
    "password": "your-password",
    "center": "your-gym-name",
    "classes": [
        {
            "activity": "Yoga",
            "class_day": "Monday",
            "class_time": "18:00:00",
            "booking_execution": "now",
            "weekly": false
        }
    ]
}
2. Book an upcoming class on a specific day and time

Let's say you would like to book Yoga next Monday at 18:00:00, but the execution of the booking should only happen on Friday at 07:30:00 then your config.json would look like:

{
    "email": "your-email",
    "password": "your-password",
    "center": "your-gym-name",
    "classes": [
        {
            "activity": "Yoga",
            "class_day": "Monday",
            "class_time": "18:00:00",
            "booking_execution": "Friday 07:30:00",
            "weekly": false
        }
    ]
}
3. Schedule weekly booking at specific execution day and time

Let's say you would like to book Yoga every Monday at 18:00:00 and the booking execution should be every Friday at 07:30:00 then your config.json would look like:

{
    "email": "your-email",
    "password": "your-password",
    "center": "your-gym-name",
    "classes": [
        {
            "activity": "Yoga",
            "class_day": "Monday",
            "class_time": "18:00:00",
            "booking_execution": "Friday 07:30:00",
            "weekly": true
        }
    ]
}

The service also provides various other options that can be inspected with

python -m pysportbot.service --help

Currently supported options include

  1. --retry-attempts sets the number of retries attempted in case a booking attempt fails
  2. --retry-delay-minutes sets the delay in minutes between retries for weekly bookings
  3. --time-zone sets the time zone for the service (e.g. Europe/Madrid)
  4. --log-level sets the log-level of the service (e.g. DEBUG, INFO, WARNING, ERROR)

LICENSE

pysportbot is free of use and open-source. All versions are published under the MIT License.

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

pysportbot-0.0.4.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

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

pysportbot-0.0.4-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file pysportbot-0.0.4.tar.gz.

File metadata

  • Download URL: pysportbot-0.0.4.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.12.8 Linux/6.8.0-1017-azure

File hashes

Hashes for pysportbot-0.0.4.tar.gz
Algorithm Hash digest
SHA256 55243b242e2fb4720f8c2b4d3b88de6a354262e51f12e8d331b05f5dabd8e2a8
MD5 a909ffd37cbac108c4c74afbaa1fa890
BLAKE2b-256 f7e10f8bb7a778f3e0ccddf7ae3f75ecdfaa930ffc41adc8ab360011f77623c2

See more details on using hashes here.

File details

Details for the file pysportbot-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: pysportbot-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 20.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.12.8 Linux/6.8.0-1017-azure

File hashes

Hashes for pysportbot-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 90fb0fb59f2327c5aa4e3243bddda168e4135590a44f6e101a41c9d8504f74da
MD5 30e9f178b0518ad2d2f8f253450daf54
BLAKE2b-256 625e9f9f9f7c96e5860815a7c1d7ce1793c65a3bba381a8091690ef0cfc88e9b

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