Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lemeryfertitta/BoardLib
Utilities for interacting with climbing board APIs
https://github.com/lemeryfertitta/BoardLib
climbing climbing-data climbing-gyms climbing-logbook kilterboard moonboard
Last synced: 3 months ago
JSON representation
Utilities for interacting with climbing board APIs
- Host: GitHub
- URL: https://github.com/lemeryfertitta/BoardLib
- Owner: lemeryfertitta
- License: mit
- Created: 2023-11-27T03:58:32.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-26T16:45:40.000Z (5 months ago)
- Last Synced: 2024-09-27T23:41:22.913Z (4 months ago)
- Topics: climbing, climbing-data, climbing-gyms, climbing-logbook, kilterboard, moonboard
- Language: Python
- Homepage:
- Size: 90.8 KB
- Stars: 54
- Watchers: 5
- Forks: 10
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-climbing-web - Boardlib - Python library for interacting with Moonboard and Aurora boards (kilter/tension/grasshopper/decoy/touchstone) (Board Climbing 🛹)
README
# 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 `
This command will first download a [sqlite](https://www.sqlite.org/index.html) 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](https://auroraclimbing.com/) based boards (Kilter, Tension, etc.).
### Logbooks 📚
To download your logbook entries for a given board:
`boardlib logbook --username= --output=.csv --grade-type="hueco" --database=`
This outputs a CSV file with the following fields:
```json
["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](https://auroraclimbing.com/) based boards (Kilter, Tension, etc.) and all variations of the [Moonboard](https://moonboard.com/) should be supported.
## Bugs 🐞 and Feature Requests 🗒️
Please create an issue in the [issue tracker](https://github.com/lemeryfertitta/BoardLib/issues) to report bugs or request additional features. Contributions are welcome and appreciated.