Skip to main content

Utilities for interacting with climbing board APIs

Project description

BoardLib 🧗‍♀️

Utilities for interacting with (undocumented) climbing board APIs.

Installation 🦺

python3 -m pip install boardlib

Usage ⌨️

Databases 💾

To download the climb database for a given board:

boardlib database <board_name> <database_path>

This command will first download a sqlite database file to the given path. After downloading, the database will then use the undocumented sync API to synchronize it with the latest available data. The database contains only the publicly available data. User data is not synchronized. If a database already exists as database_path, the command will skip the download step and only perform the synchronization.

NOTE: The Moonboard is not currently supported for the database command. Contributions are welcome.

Supported Boards 🛹

All Aurora Climbing based boards (Kilter, Tension, etc.).

Logbooks 📚

To download your logbook entries for a given board:

boardlib logbook <board_name> --username=<username> --output=<output_file_name>.csv --grade-type="hueco" --database=<local_database_file>

This outputs a CSV file with the following fields:

["board", "angle", "climb_name", "date", "logged_grade", "displayed_grade", "difficulty", "tries", "is_mirror", "sessions_count", "tries_total", "is_repeat", "is_ascent", "comment"]

For example, the command

boardlib tension --username="Luke EF" --output="tension.csv" --grade-type="hueco" --database="tension.db"

would output a file named tension.csv with the following contents:

board,angle,climb_name,date,logged_grade,displayed_grade,difficulty,tries,is_mirror,sessions_count,tries_total,is_repeat,is_ascent,comment
tension,40,trash bag better,2024-06-17 16:21:23,V3,V3,16.0,3,False,1,3,False,True,
tension,40,Bumble,2024-06-17 16:28:23,V3,V3,16.0,1,True,1,1,False,True,
tension,40,sender2,2024-06-17 16:38:06,V5,V5,20.0,2,False,1,2,False,True,
...

When no local database is provided, displayed_grade and difficulty remain empty. See boardlib --help for a full list of supported board names and feature flags.

Supported Boards 🛹

Currently all Aurora Climbing based boards (Kilter, Tension, etc.) and all variations of the Moonboard should be supported.

Bugs 🐞 and Feature Requests 🗒️

Please create an issue in the issue tracker to report bugs or request additional features. Contributions are welcome and appreciated.

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

boardlib-0.7.0.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

boardlib-0.7.0-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file boardlib-0.7.0.tar.gz.

File metadata

  • Download URL: boardlib-0.7.0.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for boardlib-0.7.0.tar.gz
Algorithm Hash digest
SHA256 a196b4db237f57b4f33b6c72e84b3e5a0b35493dbf239f9a8f68bb52d564d319
MD5 16518d479a3356dd51710fc779e88f47
BLAKE2b-256 d863d579d1a2ecf5cd7ad4b568f90d59f6f716191c5738d689fe5649a79b6004

See more details on using hashes here.

File details

Details for the file boardlib-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: boardlib-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for boardlib-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dffc1f4cfa5b73ee6c4eaadafef9a854570a93c9242ae3813bc600daae193d32
MD5 7cbc0e0e5e60260f4de4414c8a53bebe
BLAKE2b-256 5cecf1a7b399cc76383a245bdb864201bc3ecd25590868a1858dfed58423e604

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page