strava.cz-api 2.2.1__tar.gz → 2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {strava_cz_api-2.2.1/strava_cz_api.egg-info → strava_cz_api-2.3}/PKG-INFO +3 -2
- {strava_cz_api-2.2.1 → strava_cz_api-2.3}/README.md +2 -1
- {strava_cz_api-2.2.1 → strava_cz_api-2.3}/pyproject.toml +1 -1
- {strava_cz_api-2.2.1 → strava_cz_api-2.3}/strava_cz_api/action.py +17 -0
- {strava_cz_api-2.2.1 → strava_cz_api-2.3}/strava_cz_api/strava.py +32 -20
- {strava_cz_api-2.2.1 → strava_cz_api-2.3/strava_cz_api.egg-info}/PKG-INFO +3 -2
- {strava_cz_api-2.2.1 → strava_cz_api-2.3}/LICENSE +0 -0
- {strava_cz_api-2.2.1 → strava_cz_api-2.3}/examples/login.py +0 -0
- {strava_cz_api-2.2.1 → strava_cz_api-2.3}/examples/public_jidelnicek.py +0 -0
- {strava_cz_api-2.2.1 → strava_cz_api-2.3}/examples/user_info.py +0 -0
- {strava_cz_api-2.2.1 → strava_cz_api-2.3}/setup.cfg +0 -0
- {strava_cz_api-2.2.1 → strava_cz_api-2.3}/strava_cz_api/__init__.py +0 -0
- {strava_cz_api-2.2.1 → strava_cz_api-2.3}/strava_cz_api.egg-info/SOURCES.txt +0 -0
- {strava_cz_api-2.2.1 → strava_cz_api-2.3}/strava_cz_api.egg-info/dependency_links.txt +0 -0
- {strava_cz_api-2.2.1 → strava_cz_api-2.3}/strava_cz_api.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: strava-cz-api
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3
|
|
4
4
|
Summary: Rest API for strava.cz.
|
|
5
5
|
Author-email: Matěj Adamec <kralyk@kralyk.dev>
|
|
6
6
|
Requires-Python: >=3.8
|
|
@@ -60,7 +60,7 @@ api = Api(
|
|
|
60
60
|
| --- | --- | --- |
|
|
61
61
|
| `getJidelnicekToday()` | Dnešní jídelníček | Vrací list (`table0`) |
|
|
62
62
|
| `getJidelnicekAll()` | Kompletní jídelníček
|
|
63
|
-
| `getInfo()` | Informace o uživateli
|
|
63
|
+
| `getInfo()` | Informace o uživateli | Upravený payload. Nenačítá nové cookies. Může trvat dlouho (2 - 3 s)
|
|
64
64
|
| `getUsername()` | Uživatelské jméno | Vytahuje z `getInfo()` |
|
|
65
65
|
| `getJidelna()` | Informace o jídelně
|
|
66
66
|
| `getHistorieKlienta(date)` | Historie objednávek za měsíc | `date` = první den měsíce (např. `2025-01-01`) |
|
|
@@ -71,6 +71,7 @@ api = Api(
|
|
|
71
71
|
| `postJidlo(veta, stav)` | Přihlásit/odhlásit jídlo | `stav`: 1 přihlásit, 0 odhlásit |
|
|
72
72
|
| `postDen(datum, stav)` | Přihlásit/odhlásit celý den | `datum` ve formátu `YYYY-MM-DD` |
|
|
73
73
|
| `postOrders()` | Uložit změny objednávek | Nutné po `postJidlo`/`postDen` |
|
|
74
|
+
| `resetChanges()` | Resetuje neuložené změny v komunikaci. | Dobré pro zrušení změn pří objednávkách
|
|
74
75
|
|
|
75
76
|
## Objednávky – správný postup
|
|
76
77
|
Změny objednávek se ukládají ve dvou krocích:
|
|
@@ -50,7 +50,7 @@ api = Api(
|
|
|
50
50
|
| --- | --- | --- |
|
|
51
51
|
| `getJidelnicekToday()` | Dnešní jídelníček | Vrací list (`table0`) |
|
|
52
52
|
| `getJidelnicekAll()` | Kompletní jídelníček
|
|
53
|
-
| `getInfo()` | Informace o uživateli
|
|
53
|
+
| `getInfo()` | Informace o uživateli | Upravený payload. Nenačítá nové cookies. Může trvat dlouho (2 - 3 s)
|
|
54
54
|
| `getUsername()` | Uživatelské jméno | Vytahuje z `getInfo()` |
|
|
55
55
|
| `getJidelna()` | Informace o jídelně
|
|
56
56
|
| `getHistorieKlienta(date)` | Historie objednávek za měsíc | `date` = první den měsíce (např. `2025-01-01`) |
|
|
@@ -61,6 +61,7 @@ api = Api(
|
|
|
61
61
|
| `postJidlo(veta, stav)` | Přihlásit/odhlásit jídlo | `stav`: 1 přihlásit, 0 odhlásit |
|
|
62
62
|
| `postDen(datum, stav)` | Přihlásit/odhlásit celý den | `datum` ve formátu `YYYY-MM-DD` |
|
|
63
63
|
| `postOrders()` | Uložit změny objednávek | Nutné po `postJidlo`/`postDen` |
|
|
64
|
+
| `resetChanges()` | Resetuje neuložené změny v komunikaci. | Dobré pro zrušení změn pří objednávkách
|
|
64
65
|
|
|
65
66
|
## Objednávky – správný postup
|
|
66
67
|
Změny objednávek se ukládají ve dvou krocích:
|
|
@@ -75,4 +75,21 @@ class Post:
|
|
|
75
75
|
return new_cookie, data
|
|
76
76
|
|
|
77
77
|
|
|
78
|
+
class ResetChanges:
|
|
79
|
+
@staticmethod
|
|
80
|
+
def call(url, payload, cookie, headers=None):
|
|
81
|
+
if headers is None:
|
|
82
|
+
headers = {
|
|
83
|
+
"Content-Type": "text/plain;charset=UTF-8",
|
|
84
|
+
"Cookie": cookie,
|
|
85
|
+
"Referer": "https://app.strava.cz/"
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
response = requests.post(url, headers=headers, json=payload)
|
|
89
|
+
data = response.json()
|
|
90
|
+
|
|
91
|
+
raise_api_error(data)
|
|
92
|
+
|
|
93
|
+
new_cookie = response.cookies.get_dict()
|
|
78
94
|
|
|
95
|
+
return new_cookie
|
|
@@ -1,24 +1,6 @@
|
|
|
1
1
|
import requests
|
|
2
2
|
import json
|
|
3
|
-
from action import Get, Post
|
|
4
|
-
|
|
5
|
-
from action import (
|
|
6
|
-
StravaError,
|
|
7
|
-
JidelnaNenalezenaError,
|
|
8
|
-
ChybneHesloError,
|
|
9
|
-
BackendError,
|
|
10
|
-
ChybneSID
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
__all__ = [
|
|
14
|
-
"Api",
|
|
15
|
-
"Auth",
|
|
16
|
-
"StravaError",
|
|
17
|
-
"JidelnaNenalezenaError",
|
|
18
|
-
"ChybneHesloError",
|
|
19
|
-
"BackendError",
|
|
20
|
-
"ChybneSID"
|
|
21
|
-
]
|
|
3
|
+
from .action import Get, Post, ResetCookie
|
|
22
4
|
|
|
23
5
|
|
|
24
6
|
class Api:
|
|
@@ -75,7 +57,7 @@ class Api:
|
|
|
75
57
|
"lang": self.lang,
|
|
76
58
|
"getText": True,
|
|
77
59
|
"checkVersion": True,
|
|
78
|
-
"resetTables" :
|
|
60
|
+
"resetTables" : False,
|
|
79
61
|
"frontendFunction": "refreshInformations"
|
|
80
62
|
}
|
|
81
63
|
|
|
@@ -190,6 +172,7 @@ class Api:
|
|
|
190
172
|
|
|
191
173
|
return Get.call(url, payload)
|
|
192
174
|
|
|
175
|
+
|
|
193
176
|
def getVydej(self):
|
|
194
177
|
"""
|
|
195
178
|
Vrátí list vydaných jídel.
|
|
@@ -279,7 +262,29 @@ class Api:
|
|
|
279
262
|
return self.cookie
|
|
280
263
|
|
|
281
264
|
|
|
265
|
+
def resetChanges(self):
|
|
266
|
+
"""
|
|
267
|
+
Resetuje neuložené změny v komunikaci. Může trvat dlouho!
|
|
268
|
+
"""
|
|
269
|
+
url = f"{self.base}/nactiVlastnostiPA"
|
|
270
|
+
|
|
271
|
+
payload = {
|
|
272
|
+
"sid": self.sid,
|
|
273
|
+
"url": self.s5url,
|
|
274
|
+
"cislo": self.cislo_jidelny,
|
|
275
|
+
"ignoreCert": "false",
|
|
276
|
+
"lang": self.lang,
|
|
277
|
+
"getText": True,
|
|
278
|
+
"checkVersion": True,
|
|
279
|
+
"resetTables" : True,
|
|
280
|
+
"frontendFunction": "refreshInformations"
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
return ResetChanges.call(url, payload, self.cookie)
|
|
284
|
+
|
|
285
|
+
|
|
282
286
|
class Public:
|
|
287
|
+
@staticmethod
|
|
283
288
|
def getJidelnicek(cislo_jidelny, lang):
|
|
284
289
|
"""
|
|
285
290
|
Získání public jídelníčků.
|
|
@@ -298,6 +303,7 @@ class Public:
|
|
|
298
303
|
|
|
299
304
|
return Get.call(url, payload)
|
|
300
305
|
|
|
306
|
+
@staticmethod
|
|
301
307
|
def getJidelna(cislo_jidelny):
|
|
302
308
|
"""
|
|
303
309
|
Vrátí informaci o jídelně.
|
|
@@ -311,6 +317,8 @@ class Public:
|
|
|
311
317
|
|
|
312
318
|
return Get.call(url, payload)
|
|
313
319
|
|
|
320
|
+
|
|
321
|
+
@staticmethod
|
|
314
322
|
def getS5url(cislo_jidelny):
|
|
315
323
|
"""
|
|
316
324
|
Pomocná metoda co vratí url jídelny.
|
|
@@ -318,6 +326,7 @@ class Public:
|
|
|
318
326
|
return json.loads(Public.getJidelna(cislo_jidelny)).get("urlwsdl_s")[0]
|
|
319
327
|
|
|
320
328
|
|
|
329
|
+
@staticmethod
|
|
321
330
|
def getJidelny():
|
|
322
331
|
"""
|
|
323
332
|
Vrátí seznam všech jídelen a jejich čísel.
|
|
@@ -332,6 +341,7 @@ class Public:
|
|
|
332
341
|
|
|
333
342
|
|
|
334
343
|
class Auth:
|
|
344
|
+
@staticmethod
|
|
335
345
|
def login(username, password, cislo_jidelny, lang="CZ", zustat_prihlasen=True, cookie="NEXT_LOCALE=cs"):
|
|
336
346
|
"""
|
|
337
347
|
Vrátí data nutná pro další komunikaci.
|
|
@@ -352,6 +362,8 @@ class Auth:
|
|
|
352
362
|
|
|
353
363
|
return Post.call(url, payload, cookie)
|
|
354
364
|
|
|
365
|
+
|
|
366
|
+
@staticmethod
|
|
355
367
|
def getCredentials(data):
|
|
356
368
|
"""
|
|
357
369
|
Vyfiltruje SID a s5url z funkce login
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: strava-cz-api
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3
|
|
4
4
|
Summary: Rest API for strava.cz.
|
|
5
5
|
Author-email: Matěj Adamec <kralyk@kralyk.dev>
|
|
6
6
|
Requires-Python: >=3.8
|
|
@@ -60,7 +60,7 @@ api = Api(
|
|
|
60
60
|
| --- | --- | --- |
|
|
61
61
|
| `getJidelnicekToday()` | Dnešní jídelníček | Vrací list (`table0`) |
|
|
62
62
|
| `getJidelnicekAll()` | Kompletní jídelníček
|
|
63
|
-
| `getInfo()` | Informace o uživateli
|
|
63
|
+
| `getInfo()` | Informace o uživateli | Upravený payload. Nenačítá nové cookies. Může trvat dlouho (2 - 3 s)
|
|
64
64
|
| `getUsername()` | Uživatelské jméno | Vytahuje z `getInfo()` |
|
|
65
65
|
| `getJidelna()` | Informace o jídelně
|
|
66
66
|
| `getHistorieKlienta(date)` | Historie objednávek za měsíc | `date` = první den měsíce (např. `2025-01-01`) |
|
|
@@ -71,6 +71,7 @@ api = Api(
|
|
|
71
71
|
| `postJidlo(veta, stav)` | Přihlásit/odhlásit jídlo | `stav`: 1 přihlásit, 0 odhlásit |
|
|
72
72
|
| `postDen(datum, stav)` | Přihlásit/odhlásit celý den | `datum` ve formátu `YYYY-MM-DD` |
|
|
73
73
|
| `postOrders()` | Uložit změny objednávek | Nutné po `postJidlo`/`postDen` |
|
|
74
|
+
| `resetChanges()` | Resetuje neuložené změny v komunikaci. | Dobré pro zrušení změn pří objednávkách
|
|
74
75
|
|
|
75
76
|
## Objednávky – správný postup
|
|
76
77
|
Změny objednávek se ukládají ve dvou krocích:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|