lacuscore 1.16.4__py3-none-any.whl → 1.16.5__py3-none-any.whl
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.
- lacuscore/helpers.py +29 -4
- lacuscore/lacuscore.py +5 -3
- {lacuscore-1.16.4.dist-info → lacuscore-1.16.5.dist-info}/METADATA +2 -2
- lacuscore-1.16.5.dist-info/RECORD +10 -0
- lacuscore-1.16.4.dist-info/RECORD +0 -10
- {lacuscore-1.16.4.dist-info → lacuscore-1.16.5.dist-info}/LICENSE +0 -0
- {lacuscore-1.16.4.dist-info → lacuscore-1.16.5.dist-info}/WHEEL +0 -0
lacuscore/helpers.py
CHANGED
@@ -19,11 +19,36 @@ from playwrightcapture.capture import CaptureResponse as PlaywrightCaptureRespon
|
|
19
19
|
|
20
20
|
|
21
21
|
if sys.version_info < (3, 12):
|
22
|
+
# This bit is required as long as we need to support python < 3.12, stop removing it, you idiot
|
23
|
+
# That's the runtime failure: https://github.com/ail-project/lacus/actions/runs/16447900822/job/46484807036
|
24
|
+
# And the MyPy failure: https://github.com/ail-project/LacusCore/actions/runs/16447753492/job/46484287947
|
22
25
|
from typing_extensions import TypedDict
|
26
|
+
|
27
|
+
class SetCookieParam(TypedDict, total=False):
|
28
|
+
name: str
|
29
|
+
value: str
|
30
|
+
url: str
|
31
|
+
domain: str
|
32
|
+
path: str
|
33
|
+
expires: float
|
34
|
+
httpOnly: bool
|
35
|
+
secure: bool
|
36
|
+
sameSite: Literal["Lax", "None", "Strict"]
|
37
|
+
partitionKey: str
|
38
|
+
|
39
|
+
class Cookie(TypedDict, total=False):
|
40
|
+
name: str
|
41
|
+
value: str
|
42
|
+
domain: str
|
43
|
+
path: str
|
44
|
+
expires: float
|
45
|
+
httpOnly: bool
|
46
|
+
secure: bool
|
47
|
+
sameSite: Literal["Lax", "None", "Strict"]
|
48
|
+
partitionKey: str
|
23
49
|
else:
|
24
50
|
from typing import TypedDict
|
25
|
-
|
26
|
-
from playwright._impl._api_structures import Cookie # , StorageState
|
51
|
+
from playwright._impl._api_structures import SetCookieParam, Cookie # , StorageState
|
27
52
|
|
28
53
|
|
29
54
|
class LacusCoreException(Exception):
|
@@ -107,7 +132,7 @@ class CaptureSettings(BaseModel):
|
|
107
132
|
proxy: str | dict[str, str] | None = None
|
108
133
|
socks5_dns_resolver: str | list[str] | None = None
|
109
134
|
general_timeout_in_sec: int | None = None
|
110
|
-
cookies: list[
|
135
|
+
cookies: list[SetCookieParam] | None = None
|
111
136
|
# NOTE: should be that, but StorageState doesn't define the indexeddb
|
112
137
|
# storage: StorageState | None = None
|
113
138
|
storage: dict[str, Any] | None = None
|
@@ -242,8 +267,8 @@ class CaptureSettings(BaseModel):
|
|
242
267
|
try:
|
243
268
|
cookies = json.loads(cookies)
|
244
269
|
except json.JSONDecodeError as e:
|
245
|
-
print(e)
|
246
270
|
# Cookies are invalid, ignoring.
|
271
|
+
print(f'Broken cookie: {e}')
|
247
272
|
return None
|
248
273
|
if isinstance(cookies, dict):
|
249
274
|
# might be a single cookie in the format name: value, make it a list
|
lacuscore/lacuscore.py
CHANGED
@@ -55,8 +55,10 @@ else:
|
|
55
55
|
if timeout_cm.expired():
|
56
56
|
logger.warning(f'Timeout expired: {error_message}')
|
57
57
|
|
58
|
-
if
|
59
|
-
from
|
58
|
+
if sys.version_info < (3, 12):
|
59
|
+
from .helpers import SetCookieParam, Cookie
|
60
|
+
else:
|
61
|
+
from playwright._impl._api_structures import SetCookieParam, Cookie
|
60
62
|
|
61
63
|
|
62
64
|
BROWSER = Literal['chromium', 'firefox', 'webkit']
|
@@ -503,7 +505,7 @@ class LacusCore():
|
|
503
505
|
else:
|
504
506
|
browser_engine = 'webkit'
|
505
507
|
|
506
|
-
cookies: list[
|
508
|
+
cookies: list[SetCookieParam] = []
|
507
509
|
if to_capture.cookies:
|
508
510
|
# In order to properly pass the cookies to playwright,
|
509
511
|
# each of then must have a name, a value and either a domain + path or a URL
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: lacuscore
|
3
|
-
Version: 1.16.
|
3
|
+
Version: 1.16.5
|
4
4
|
Summary: Core of Lacus, usable as a module
|
5
5
|
License: BSD-3-Clause
|
6
6
|
Author: Raphaël Vinot
|
@@ -26,7 +26,7 @@ Requires-Dist: async-timeout (>=5.0.1) ; python_version < "3.11"
|
|
26
26
|
Requires-Dist: defang (>=0.5.3)
|
27
27
|
Requires-Dist: dnspython (>=2.7.0)
|
28
28
|
Requires-Dist: eval-type-backport (>=0.2.2) ; python_version < "3.10"
|
29
|
-
Requires-Dist: playwrightcapture[recaptcha] (>=1.31.
|
29
|
+
Requires-Dist: playwrightcapture[recaptcha] (>=1.31.6)
|
30
30
|
Requires-Dist: pydantic (>=2.11.7)
|
31
31
|
Requires-Dist: redis[hiredis] (>=5.3.0,<6.0.0)
|
32
32
|
Requires-Dist: requests (>=2.32.4)
|
@@ -0,0 +1,10 @@
|
|
1
|
+
lacuscore/__init__.py,sha256=aLBshQPT9IBDKn5qWrX9A_exqtLFPyLsQiPWdfpAFjA,537
|
2
|
+
lacuscore/helpers.py,sha256=xKrvwFsemad1aBVCboZ_jbvGK0Knxs04cQGhmhRQ2lA,15042
|
3
|
+
lacuscore/lacus_monitoring.py,sha256=r6IaYuh6sMq43eOWdZx0fU8p4PWVZlqSD6nr6yOaTUU,2713
|
4
|
+
lacuscore/lacuscore.py,sha256=fCZDyfuPCUygwDEYHlvh2345g1EnUjrV91sIWGDF4k8,45160
|
5
|
+
lacuscore/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
+
lacuscore/task_logger.py,sha256=2wDotU6r6vn-aKO8nZNdxSuisSj11LlcxuvW60qPL0Y,1909
|
7
|
+
lacuscore-1.16.5.dist-info/LICENSE,sha256=4C4hLYrIkUD96Ggk-y_Go1Qf7PBZrEm9PSeTGe2nd4s,1516
|
8
|
+
lacuscore-1.16.5.dist-info/METADATA,sha256=DtwNjje1j1MMhZJkLq6PomF-2v2DT7w1DYzkBnLtY44,2654
|
9
|
+
lacuscore-1.16.5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
10
|
+
lacuscore-1.16.5.dist-info/RECORD,,
|
@@ -1,10 +0,0 @@
|
|
1
|
-
lacuscore/__init__.py,sha256=aLBshQPT9IBDKn5qWrX9A_exqtLFPyLsQiPWdfpAFjA,537
|
2
|
-
lacuscore/helpers.py,sha256=cWH-Y2_XKMVlByczH8I8u4-pDCPgbFfdUw9SBQVpQxo,14124
|
3
|
-
lacuscore/lacus_monitoring.py,sha256=r6IaYuh6sMq43eOWdZx0fU8p4PWVZlqSD6nr6yOaTUU,2713
|
4
|
-
lacuscore/lacuscore.py,sha256=8Z3ES5865I-6mqgrhAcu52PIRxUPWmDChxSZhHLuawQ,45069
|
5
|
-
lacuscore/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
lacuscore/task_logger.py,sha256=2wDotU6r6vn-aKO8nZNdxSuisSj11LlcxuvW60qPL0Y,1909
|
7
|
-
lacuscore-1.16.4.dist-info/LICENSE,sha256=4C4hLYrIkUD96Ggk-y_Go1Qf7PBZrEm9PSeTGe2nd4s,1516
|
8
|
-
lacuscore-1.16.4.dist-info/METADATA,sha256=kA3k7wrywae6WnN8gCX6OsAnKqtNw87RXKa_r1ej3wU,2654
|
9
|
-
lacuscore-1.16.4.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
10
|
-
lacuscore-1.16.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|