strava.cz-api 2.2.2__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: strava-cz-api
3
- Version: 2.2.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:
@@ -7,7 +7,7 @@ where = ["."]
7
7
 
8
8
  [project]
9
9
  name = "strava-cz-api"
10
- version = "2.2.2"
10
+ version = "2.3"
11
11
  description = "Rest API for strava.cz."
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.8"
@@ -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,6 +1,6 @@
1
1
  import requests
2
2
  import json
3
- from .action import Get, Post
3
+ from .action import Get, Post, ResetCookie
4
4
 
5
5
 
6
6
  class Api:
@@ -57,7 +57,7 @@ class Api:
57
57
  "lang": self.lang,
58
58
  "getText": True,
59
59
  "checkVersion": True,
60
- "resetTables" :True,
60
+ "resetTables" : False,
61
61
  "frontendFunction": "refreshInformations"
62
62
  }
63
63
 
@@ -172,6 +172,7 @@ class Api:
172
172
 
173
173
  return Get.call(url, payload)
174
174
 
175
+
175
176
  def getVydej(self):
176
177
  """
177
178
  Vrátí list vydaných jídel.
@@ -261,7 +262,29 @@ class Api:
261
262
  return self.cookie
262
263
 
263
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
+
264
286
  class Public:
287
+ @staticmethod
265
288
  def getJidelnicek(cislo_jidelny, lang):
266
289
  """
267
290
  Získání public jídelníčků.
@@ -280,6 +303,7 @@ class Public:
280
303
 
281
304
  return Get.call(url, payload)
282
305
 
306
+ @staticmethod
283
307
  def getJidelna(cislo_jidelny):
284
308
  """
285
309
  Vrátí informaci o jídelně.
@@ -293,6 +317,8 @@ class Public:
293
317
 
294
318
  return Get.call(url, payload)
295
319
 
320
+
321
+ @staticmethod
296
322
  def getS5url(cislo_jidelny):
297
323
  """
298
324
  Pomocná metoda co vratí url jídelny.
@@ -300,6 +326,7 @@ class Public:
300
326
  return json.loads(Public.getJidelna(cislo_jidelny)).get("urlwsdl_s")[0]
301
327
 
302
328
 
329
+ @staticmethod
303
330
  def getJidelny():
304
331
  """
305
332
  Vrátí seznam všech jídelen a jejich čísel.
@@ -314,6 +341,7 @@ class Public:
314
341
 
315
342
 
316
343
  class Auth:
344
+ @staticmethod
317
345
  def login(username, password, cislo_jidelny, lang="CZ", zustat_prihlasen=True, cookie="NEXT_LOCALE=cs"):
318
346
  """
319
347
  Vrátí data nutná pro další komunikaci.
@@ -334,6 +362,8 @@ class Auth:
334
362
 
335
363
  return Post.call(url, payload, cookie)
336
364
 
365
+
366
+ @staticmethod
337
367
  def getCredentials(data):
338
368
  """
339
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.2.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