Files
puregym-unofficial-dotnet/README.md
Smaug123 42eb1f7726
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/all-checks-complete Pipeline was successful
Initial commit
2023-10-11 21:16:40 +01:00

31 lines
1.6 KiB
Markdown

# Unofficial PureGym client
![Status](https://woodpecker.patrickstevens.co.uk/api/badges/44/status.svg)
*With thanks to [Tom Hollingsworth](https://github.com/2t6h/puregym-attendance/blob/64dcd830bd874dc0150c7767f5cc6c75ed0b9dad/puregym.py).*
## Usage
* With Nix: `nix run` (you can refer to this flake).
* Manually: `git clone` and then `dotnet run --project PureGym.App/PureGym.App.fsproj`.
(Something is up on Darwin: `nix run` currently produces an executable which dies instantly.
Workaround: `nix build` and then `nix develop --command dotnet exec ./result/lib/puregym/PureGym.App.dll`.)
The available subcommands can be viewed in the `subcommands` map defined in [Program.fs](./PureGym.App/Program.fs).
As of this writing, the following are implemented:
* `activity`: get the logged-in user's activity stats. I have no idea what the semantics of these numbers are!
* `fullness`: determine how full a given gym is right now.
* `lookup-gym`: give information about the gym's physical instantiation (e.g. its address).
### Authentication
You can authenticate with your PureGym email address and PIN combination, or (probably better) you can call `PureGym.App auth` to obtain a token.
Use this token in subsequent commands by setting the `PUREGYM_BEARER_TOKEN` environment variable or supplying it as `--bearer-token`.
## Structure
* The REST client is at [Api.fs](./PureGym/Api.fs).
* The standalone application is at [PureGym.App](./PureGym.App). It uses a ghastly mix of hand-rolled argument parsing and [Argu](https://fsprojects.github.io/Argu/), because Argu does not *quite* want to do what I want an argument parser to do.