Skip to main content

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

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í cookie a JSON data; Auth.getCredentials() z nich vytáhne sid a s5url.

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 Upravený payload. Nenačítá nové cookies. Může trvat dlouho (2 - 3 s)
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
resetChanges() Resetuje neuložené změny v komunikaci. Dobré pro zrušení změn pří objednávkách

Objednávky – správný postup

Změny objednávek se ukládají ve dvou krocích:

  1. Provedení změn (postJidlo nebo postDen)
  2. 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

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

strava_cz_api-2.3.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

strava_cz_api-2.3-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file strava_cz_api-2.3.tar.gz.

File metadata

  • Download URL: strava_cz_api-2.3.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for strava_cz_api-2.3.tar.gz
Algorithm Hash digest
SHA256 2b9c86e127e2c88f8e02098b720320fca3d1b07b0ed41271e6dddee771c52673
MD5 80ae5ddf7ff114978ce90d7ad812df73
BLAKE2b-256 2568d40da9f1676e2d8901ad327d9d12a43e8194bd553c1b5685ab5f24e0aefa

See more details on using hashes here.

Provenance

The following attestation bundles were made for strava_cz_api-2.3.tar.gz:

Publisher: python-publish.yml on kralicekgamer/strava.cz_api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strava_cz_api-2.3-py3-none-any.whl.

File metadata

  • Download URL: strava_cz_api-2.3-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for strava_cz_api-2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3a6f33c6c1eb1cb2a3c1a792bbd54074c1af0aaa64bac00ea64557b4a5f9822d
MD5 fea887408859f30fb9aa6e203be464d3
BLAKE2b-256 9e6f228c547c872c848b8736883e3846e827de147a1d10177bdea767fe491d35

See more details on using hashes here.

Provenance

The following attestation bundles were made for strava_cz_api-2.3-py3-none-any.whl:

Publisher: python-publish.yml on kralicekgamer/strava.cz_api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page