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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for boardlib-0.7.1.tar.gz
Algorithm Hash digest
SHA256 5ce21302a825928d10bef96b2c815022d9862d51bc05ae75cc64aead7dd138e9
MD5 540eb75a4f182dc5a5b148b3f748ca83
BLAKE2b-256 09e637c74915dade5eb6ecd6c8ec36bdf4b8ff3478f108d6deb951b410c2014a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for boardlib-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dd23591df58740377c23659bf8affb0fd1b204f5577884ef22ebb1890ba5cc2e
MD5 cd6ddb39349e25067f13be3f1f0cba6f
BLAKE2b-256 1ec96db84c77648504468ec657c85266248fa8c051236f0445984dc83256bfb5

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