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.8.0.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

boardlib-0.8.0-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: boardlib-0.8.0.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for boardlib-0.8.0.tar.gz
Algorithm Hash digest
SHA256 596aa37c9562fa92c77454dc2f96e36fd374db9110a4f5437604a354f5f7345b
MD5 84fa27998155c3d8b0ab606879e5d606
BLAKE2b-256 c86037507f9bc0f1acf9cd96db4ad31bc3e8a78497ebb144ead0ca560c70dbad

See more details on using hashes here.

File details

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

File metadata

  • Download URL: boardlib-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for boardlib-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 909dfd2b25392522910b741dab92984a2d301cd54f5769b8ed5b8ddf3ba978ba
MD5 2f9ace15870cac7e879eec6c585cbb02
BLAKE2b-256 31780f4b6bcbf6dcb5c886a2b90ef8b8b7633ccef31895a9c87b010494702e1a

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