lacuscore 1.13.9__tar.gz → 1.14.1__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.
- {lacuscore-1.13.9 → lacuscore-1.14.1}/PKG-INFO +4 -4
- {lacuscore-1.13.9 → lacuscore-1.14.1}/lacuscore/helpers.py +1 -0
- {lacuscore-1.13.9 → lacuscore-1.14.1}/lacuscore/lacuscore.py +6 -1
- {lacuscore-1.13.9 → lacuscore-1.14.1}/pyproject.toml +4 -4
- {lacuscore-1.13.9 → lacuscore-1.14.1}/LICENSE +0 -0
- {lacuscore-1.13.9 → lacuscore-1.14.1}/README.md +0 -0
- {lacuscore-1.13.9 → lacuscore-1.14.1}/lacuscore/__init__.py +0 -0
- {lacuscore-1.13.9 → lacuscore-1.14.1}/lacuscore/lacus_monitoring.py +0 -0
- {lacuscore-1.13.9 → lacuscore-1.14.1}/lacuscore/py.typed +0 -0
- {lacuscore-1.13.9 → lacuscore-1.14.1}/lacuscore/task_logger.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: lacuscore
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.14.1
|
4
4
|
Summary: Core of Lacus, usable as a module
|
5
5
|
License: BSD-3-Clause
|
6
6
|
Author: Raphaël Vinot
|
@@ -26,9 +26,9 @@ 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.
|
30
|
-
Requires-Dist: pydantic (>=2.11.
|
31
|
-
Requires-Dist: redis[hiredis] (>=5.
|
29
|
+
Requires-Dist: playwrightcapture[recaptcha] (>=1.29.2)
|
30
|
+
Requires-Dist: pydantic (>=2.11.4)
|
31
|
+
Requires-Dist: redis[hiredis] (>=5.3.0,<6.0.0)
|
32
32
|
Requires-Dist: requests (>=2.32.3)
|
33
33
|
Requires-Dist: typing-extensions (>=4.12.2,<5.0.0) ; python_version < "3.12"
|
34
34
|
Requires-Dist: ua-parser[regex] (>=1.0.1)
|
@@ -114,6 +114,7 @@ class CaptureSettings(BaseModel):
|
|
114
114
|
device_name: str | None = None
|
115
115
|
user_agent: str | None = None
|
116
116
|
proxy: str | dict[str, str] | None = None
|
117
|
+
socks5_dns_resolver: str | list[str] | None = None
|
117
118
|
general_timeout_in_sec: int | None = None
|
118
119
|
cookies: list[Cookie] | None = None
|
119
120
|
# NOTE: should be that, but StorageState doesn't define the indexeddb
|
@@ -131,6 +131,7 @@ class LacusCore():
|
|
131
131
|
browser: BROWSER | None=None, device_name: str | None=None,
|
132
132
|
user_agent: str | None=None,
|
133
133
|
proxy: str | dict[str, str] | None=None,
|
134
|
+
socks5_dns_resolver: str | list[str] | None=None,
|
134
135
|
general_timeout_in_sec: int | None=None,
|
135
136
|
cookies: list[dict[str, Any]] | list[Cookie] | None=None,
|
136
137
|
storage: dict[str, Any] | None=None,
|
@@ -164,6 +165,7 @@ class LacusCore():
|
|
164
165
|
browser: BROWSER | None=None, device_name: str | None=None,
|
165
166
|
user_agent: str | None=None,
|
166
167
|
proxy: str | dict[str, str] | None=None,
|
168
|
+
socks5_dns_resolver: str | list[str] | None=None,
|
167
169
|
general_timeout_in_sec: int | None=None,
|
168
170
|
cookies: list[dict[str, Any]] | list[Cookie] | None=None,
|
169
171
|
storage: dict[str, Any] | None=None,
|
@@ -199,6 +201,7 @@ class LacusCore():
|
|
199
201
|
:param device_name: The name of the device, must be something Playwright knows
|
200
202
|
:param user_agent: The user agent the browser will use for the capture
|
201
203
|
:param proxy: SOCKS5 proxy to use for capturing
|
204
|
+
:param socks5_dns_resolver: DNS resolver for to populate IPs in HAR when a capture is done via a socks5 proxy.
|
202
205
|
:param general_timeout_in_sec: The capture will raise a timeout it it takes more than that time
|
203
206
|
:param cookies: A list of cookies
|
204
207
|
:param storage: A storage state from another capture
|
@@ -229,7 +232,7 @@ class LacusCore():
|
|
229
232
|
settings = {'depth': depth, 'rendered_hostname_only': rendered_hostname_only,
|
230
233
|
'url': url, 'document_name': document_name, 'document': document,
|
231
234
|
'browser': browser, 'device_name': device_name,
|
232
|
-
'user_agent': user_agent, 'proxy': proxy,
|
235
|
+
'user_agent': user_agent, 'proxy': proxy, 'socks5_dns_resolver': socks5_dns_resolver,
|
233
236
|
'general_timeout_in_sec': general_timeout_in_sec,
|
234
237
|
'cookies': cookies, 'storage': storage, 'headers': headers,
|
235
238
|
'http_credentials': http_credentials, 'geolocation': geolocation,
|
@@ -266,6 +269,7 @@ class LacusCore():
|
|
266
269
|
p = self.redis.pipeline()
|
267
270
|
p.set(f'lacus:query_hash:{hash_query}', perma_uuid, nx=True, ex=recapture_interval)
|
268
271
|
p.hset(f'lacus:capture_settings:{perma_uuid}', mapping=to_enqueue.redis_dump())
|
272
|
+
p.expire(f'lacus:capture_settings:{perma_uuid}', self.max_capture_time * 2)
|
269
273
|
p.zadd('lacus:to_capture', {perma_uuid: priority if priority is not None else 0})
|
270
274
|
try:
|
271
275
|
p.execute()
|
@@ -501,6 +505,7 @@ class LacusCore():
|
|
501
505
|
browser=browser_engine,
|
502
506
|
device_name=to_capture.device_name,
|
503
507
|
proxy=proxy,
|
508
|
+
socks5_dns_resolver=to_capture.socks5_dns_resolver,
|
504
509
|
general_timeout_in_sec=to_capture.general_timeout_in_sec,
|
505
510
|
loglevel=self.master_logger.getEffectiveLevel(),
|
506
511
|
headless=to_capture.headless,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "lacuscore"
|
3
|
-
version = "1.
|
3
|
+
version = "1.14.1"
|
4
4
|
description = "Core of Lacus, usable as a module"
|
5
5
|
authors = [
|
6
6
|
{name="Raphaël Vinot", email="raphael.vinot@circl.lu"}
|
@@ -15,13 +15,13 @@ dynamic = [ "classifiers" ]
|
|
15
15
|
|
16
16
|
dependencies = [
|
17
17
|
"requests (>=2.32.3)",
|
18
|
-
"playwrightcapture[recaptcha] (>=1.
|
18
|
+
"playwrightcapture[recaptcha] (>=1.29.2)",
|
19
19
|
"defang (>=0.5.3)",
|
20
20
|
"ua-parser[regex] (>=1.0.1)",
|
21
|
-
"redis
|
21
|
+
"redis[hiredis] (>=5.3.0,<6.0.0)",
|
22
22
|
"dnspython (>=2.7.0)",
|
23
23
|
"async-timeout (>=5.0.1) ; python_version < \"3.11\"",
|
24
|
-
"pydantic (>=2.11.
|
24
|
+
"pydantic (>=2.11.4)",
|
25
25
|
"eval-type-backport (>=0.2.2) ; python_version < \"3.10\"",
|
26
26
|
"typing-extensions (>=4.12.2,<5.0.0) ; python_version < \"3.12\""
|
27
27
|
]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|