Rest API for strava.cz.
Project description
Strava.cz rest API
⚠️ UPOZORNĚNÍ: Strava.cz má vysoce proměnlivé prostředí (každá jídelna má jiný počet obědů, jiné názvy chodů apod.) z toho důvodu toto API není plně univerzální. I když jsem se snažil ho napsat univerzálně, nějaké metody nemusí plně fungovat a bude to vyžadovat vaší opravu.
Toto je neoficiální REST api pro stravu.cz. V tomto dokumentu je popsáno vše co potřebuješ vědet o tomto API. Je zde také vysvětleno dopodrobna jak to celé funguje.
Instalace
pip install strava_cz_api.cz_api
Autentizace
K API endpointům potřebuješ SID a s5url. Můžeš si je získat sám z dev tools v prohlížeči, ale nejlepší cesta je pomocí metod: Auth.login() a Auth.getCredentials():
from strava_cz_api import Auth
cookie, data = Auth.login("demo", "demo", "0000")
sid, s5url = Auth.getCredentials(data)
Poznámky:
- Podporované jazyky:
CZ,EN,SK. Auth.login()vracícookiea JSON data;Auth.getCredentials()z nich vytáhnesidas5url.
Inicializace API
from strava_cz_api import Api
api = Api(
sid="00000000000000000000000000000000",
s5url="",
cislo_jidelny="0000"
)
Poznámky:
s5url=""může být hash, url či prázdné. Někdy se stane, že musí být spravný input, někdy může být prázné.
Veřejné endpointy (bez přihlášení)
| Metoda | Popis | Poznámka |
|---|---|---|
getJidelny() |
Seznam jídelen | |
getJidelna() |
Informace o jídělne | |
getS5url() |
URL jídelny | |
getJidelnicek() |
Get veřejného jídelníčku |
Autentizované endpointy (Api)
| Metoda | Popis | Poznámka |
|---|---|---|
getJidelnicekToday() |
Dnešní jídelníček | Vrací list (table0) |
getJidelnicekAll() |
Kompletní jídelníček | |
getInfo() |
Informace o uživateli | |
getUsername() |
Uživatelské jméno | Vytahuje z getInfo() |
getJidelna() |
Informace o jídelně | |
getHistorieKlienta(date) |
Historie objednávek za měsíc | date = první den měsíce (např. 2025-01-01) |
getPlaby() |
Pohyby na účtu | |
getMessages() |
Zprávy pro uživatele | |
getProtokol() |
Vrátí protokol | |
getVydej() |
Vrátí list vydaných jídel. | |
postJidlo(veta, stav) |
Přihlásit/odhlásit jídlo | stav: 1 přihlásit, 0 odhlásit |
postDen(datum, stav) |
Přihlásit/odhlásit celý den | datum ve formátu YYYY-MM-DD |
postOrders() |
Uložit změny objednávek | Nutné po postJidlo/postDen |
Objednávky – správný postup
Změny objednávek se ukládají ve dvou krocích:
- Provedení změn (
postJidlonebopostDen) - Uložení (
postOrders)
cookie_data = api.postJidlo(5, 1)
cookie_data = api.postOrders()
Návratové hodnoty
Většina metod vrací JSON string. Metody postJidlo, postDen a postOrders vrací dvojici (cookie, data) z POST odpovědi.
Chyby a omezení
- Error handling je dostupný přes výjimky, které lze importovat:
from strava_cz_api import StravaError. - Při neúspěšném požadavku se vyhazuje
ConnectionError. - Některé jídelny mohou vyžadovat úpravy payloadů nebo cookie.
Příklady
Ukázkové skripty najdeš ve složce ./examples.
Demo
- Demo uživatele si lze vytvořit na https://www.strava.cz/strava/Stravnik/Demo
- Poté se lze přihlásit na https://app.strava.cz/ na jídelně
0000
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file strava_cz_api-2.1.2.tar.gz.
File metadata
- Download URL: strava_cz_api-2.1.2.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbb3afc4b87abc3990d923bf09a3c373cf317ece514add1a769886a752556c59
|
|
| MD5 |
2bb255c81c6afa5f60fad4158eae0628
|
|
| BLAKE2b-256 |
6b748bf3eb88804d72bd7dcf38fdee0b50bc6efc1edd35e1b4f3df36b090a1d2
|
Provenance
The following attestation bundles were made for strava_cz_api-2.1.2.tar.gz:
Publisher:
python-publish.yml on kralicekgamer/strava.cz_api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
strava_cz_api-2.1.2.tar.gz -
Subject digest:
cbb3afc4b87abc3990d923bf09a3c373cf317ece514add1a769886a752556c59 - Sigstore transparency entry: 1629412711
- Sigstore integration time:
-
Permalink:
kralicekgamer/strava.cz_api@edd4a6941b4996cfbb292ff32f0094cae09a39b2 -
Branch / Tag:
refs/tags/v2.1.2 - Owner: https://github.com/kralicekgamer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@edd4a6941b4996cfbb292ff32f0094cae09a39b2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file strava_cz_api-2.1.2-py3-none-any.whl.
File metadata
- Download URL: strava_cz_api-2.1.2-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f37a1b9451ee91040f0ddbb808d24abea9bb8177234de4e916f93b37294766d2
|
|
| MD5 |
e373f39b9855ddb497cd5706a49d2c78
|
|
| BLAKE2b-256 |
046d35246f592f66221d9c14d54dc720706596934d26409895ed11dd55b3ad71
|
Provenance
The following attestation bundles were made for strava_cz_api-2.1.2-py3-none-any.whl:
Publisher:
python-publish.yml on kralicekgamer/strava.cz_api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
strava_cz_api-2.1.2-py3-none-any.whl -
Subject digest:
f37a1b9451ee91040f0ddbb808d24abea9bb8177234de4e916f93b37294766d2 - Sigstore transparency entry: 1629412738
- Sigstore integration time:
-
Permalink:
kralicekgamer/strava.cz_api@edd4a6941b4996cfbb292ff32f0094cae09a39b2 -
Branch / Tag:
refs/tags/v2.1.2 - Owner: https://github.com/kralicekgamer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@edd4a6941b4996cfbb292ff32f0094cae09a39b2 -
Trigger Event:
release
-
Statement type: