unrealon 1.0.9__py3-none-any.whl → 1.1.0__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.
- unrealon/__init__.py +23 -21
- unrealon-1.1.0.dist-info/METADATA +164 -0
- unrealon-1.1.0.dist-info/RECORD +82 -0
- {unrealon-1.0.9.dist-info → unrealon-1.1.0.dist-info}/WHEEL +1 -1
- unrealon-1.1.0.dist-info/entry_points.txt +9 -0
- {unrealon-1.0.9.dist-info → unrealon-1.1.0.dist-info/licenses}/LICENSE +1 -1
- unrealon_bridge/__init__.py +114 -0
- unrealon_bridge/cli.py +316 -0
- unrealon_bridge/client/__init__.py +93 -0
- unrealon_bridge/client/base.py +78 -0
- unrealon_bridge/client/commands.py +89 -0
- unrealon_bridge/client/connection.py +90 -0
- unrealon_bridge/client/events.py +65 -0
- unrealon_bridge/client/health.py +38 -0
- unrealon_bridge/client/html_parser.py +146 -0
- unrealon_bridge/client/logging.py +139 -0
- unrealon_bridge/client/proxy.py +70 -0
- unrealon_bridge/client/scheduler.py +450 -0
- unrealon_bridge/client/session.py +70 -0
- unrealon_bridge/configs/__init__.py +14 -0
- unrealon_bridge/configs/bridge_config.py +212 -0
- unrealon_bridge/configs/bridge_config.yaml +39 -0
- unrealon_bridge/models/__init__.py +138 -0
- unrealon_bridge/models/base.py +28 -0
- unrealon_bridge/models/command.py +41 -0
- unrealon_bridge/models/events.py +40 -0
- unrealon_bridge/models/html_parser.py +79 -0
- unrealon_bridge/models/logging.py +55 -0
- unrealon_bridge/models/parser.py +63 -0
- unrealon_bridge/models/proxy.py +41 -0
- unrealon_bridge/models/requests.py +95 -0
- unrealon_bridge/models/responses.py +88 -0
- unrealon_bridge/models/scheduler.py +592 -0
- unrealon_bridge/models/session.py +28 -0
- unrealon_bridge/server/__init__.py +91 -0
- unrealon_bridge/server/base.py +171 -0
- unrealon_bridge/server/handlers/__init__.py +23 -0
- unrealon_bridge/server/handlers/command.py +110 -0
- unrealon_bridge/server/handlers/html_parser.py +139 -0
- unrealon_bridge/server/handlers/logging.py +95 -0
- unrealon_bridge/server/handlers/parser.py +95 -0
- unrealon_bridge/server/handlers/proxy.py +75 -0
- unrealon_bridge/server/handlers/scheduler.py +545 -0
- unrealon_bridge/server/handlers/session.py +66 -0
- unrealon_browser/__init__.py +61 -18
- unrealon_browser/{src/cli → cli}/browser_cli.py +6 -13
- unrealon_browser/{src/cli → cli}/cookies_cli.py +5 -1
- unrealon_browser/{src/core → core}/browser_manager.py +2 -2
- unrealon_browser/{src/managers → managers}/captcha.py +1 -1
- unrealon_browser/{src/managers → managers}/cookies.py +1 -1
- unrealon_browser/managers/logger_bridge.py +231 -0
- unrealon_browser/{src/managers → managers}/profile.py +1 -1
- unrealon_driver/__init__.py +73 -19
- unrealon_driver/browser/__init__.py +8 -0
- unrealon_driver/browser/config.py +74 -0
- unrealon_driver/browser/manager.py +416 -0
- unrealon_driver/exceptions.py +28 -0
- unrealon_driver/parser/__init__.py +55 -0
- unrealon_driver/parser/cli_manager.py +141 -0
- unrealon_driver/parser/daemon_manager.py +227 -0
- unrealon_driver/parser/managers/__init__.py +46 -0
- unrealon_driver/parser/managers/browser.py +51 -0
- unrealon_driver/parser/managers/config.py +281 -0
- unrealon_driver/parser/managers/error.py +412 -0
- unrealon_driver/parser/managers/html.py +732 -0
- unrealon_driver/parser/managers/logging.py +609 -0
- unrealon_driver/parser/managers/result.py +321 -0
- unrealon_driver/parser/parser_manager.py +628 -0
- unrealon/sdk_config.py +0 -88
- unrealon-1.0.9.dist-info/METADATA +0 -810
- unrealon-1.0.9.dist-info/RECORD +0 -246
- unrealon_browser/pyproject.toml +0 -182
- unrealon_browser/src/__init__.py +0 -62
- unrealon_browser/src/managers/logger_bridge.py +0 -395
- unrealon_driver/README.md +0 -204
- unrealon_driver/pyproject.toml +0 -187
- unrealon_driver/src/__init__.py +0 -90
- unrealon_driver/src/cli/__init__.py +0 -10
- unrealon_driver/src/cli/main.py +0 -66
- unrealon_driver/src/cli/simple.py +0 -510
- unrealon_driver/src/config/__init__.py +0 -11
- unrealon_driver/src/config/auto_config.py +0 -478
- unrealon_driver/src/core/__init__.py +0 -18
- unrealon_driver/src/core/exceptions.py +0 -289
- unrealon_driver/src/core/parser.py +0 -638
- unrealon_driver/src/dto/__init__.py +0 -66
- unrealon_driver/src/dto/cli.py +0 -119
- unrealon_driver/src/dto/config.py +0 -18
- unrealon_driver/src/dto/events.py +0 -237
- unrealon_driver/src/dto/execution.py +0 -313
- unrealon_driver/src/dto/services.py +0 -311
- unrealon_driver/src/execution/__init__.py +0 -23
- unrealon_driver/src/execution/daemon_mode.py +0 -317
- unrealon_driver/src/execution/interactive_mode.py +0 -88
- unrealon_driver/src/execution/modes.py +0 -45
- unrealon_driver/src/execution/scheduled_mode.py +0 -209
- unrealon_driver/src/execution/test_mode.py +0 -250
- unrealon_driver/src/logging/__init__.py +0 -24
- unrealon_driver/src/logging/driver_logger.py +0 -512
- unrealon_driver/src/services/__init__.py +0 -24
- unrealon_driver/src/services/browser_service.py +0 -726
- unrealon_driver/src/services/llm/__init__.py +0 -15
- unrealon_driver/src/services/llm/browser_llm_service.py +0 -363
- unrealon_driver/src/services/llm/llm.py +0 -195
- unrealon_driver/src/services/logger_service.py +0 -232
- unrealon_driver/src/services/metrics_service.py +0 -185
- unrealon_driver/src/services/scheduler_service.py +0 -489
- unrealon_driver/src/services/websocket_service.py +0 -362
- unrealon_driver/src/utils/__init__.py +0 -16
- unrealon_driver/src/utils/service_factory.py +0 -317
- unrealon_driver/src/utils/time_formatter.py +0 -338
- unrealon_llm/README.md +0 -44
- unrealon_llm/__init__.py +0 -26
- unrealon_llm/pyproject.toml +0 -154
- unrealon_llm/src/__init__.py +0 -228
- unrealon_llm/src/cli/__init__.py +0 -0
- unrealon_llm/src/core/__init__.py +0 -11
- unrealon_llm/src/core/smart_client.py +0 -438
- unrealon_llm/src/dto/__init__.py +0 -155
- unrealon_llm/src/dto/models/__init__.py +0 -0
- unrealon_llm/src/dto/models/config.py +0 -343
- unrealon_llm/src/dto/models/core.py +0 -328
- unrealon_llm/src/dto/models/enums.py +0 -123
- unrealon_llm/src/dto/models/html_analysis.py +0 -345
- unrealon_llm/src/dto/models/statistics.py +0 -473
- unrealon_llm/src/dto/models/translation.py +0 -383
- unrealon_llm/src/dto/models/type_conversion.py +0 -462
- unrealon_llm/src/dto/schemas/__init__.py +0 -0
- unrealon_llm/src/exceptions.py +0 -392
- unrealon_llm/src/llm_config/__init__.py +0 -20
- unrealon_llm/src/llm_config/logging_config.py +0 -178
- unrealon_llm/src/llm_logging/__init__.py +0 -42
- unrealon_llm/src/llm_logging/llm_events.py +0 -107
- unrealon_llm/src/llm_logging/llm_logger.py +0 -466
- unrealon_llm/src/managers/__init__.py +0 -15
- unrealon_llm/src/managers/cache_manager.py +0 -67
- unrealon_llm/src/managers/cost_manager.py +0 -107
- unrealon_llm/src/managers/request_manager.py +0 -298
- unrealon_llm/src/modules/__init__.py +0 -0
- unrealon_llm/src/modules/html_processor/__init__.py +0 -25
- unrealon_llm/src/modules/html_processor/base_processor.py +0 -415
- unrealon_llm/src/modules/html_processor/details_processor.py +0 -85
- unrealon_llm/src/modules/html_processor/listing_processor.py +0 -91
- unrealon_llm/src/modules/html_processor/models/__init__.py +0 -20
- unrealon_llm/src/modules/html_processor/models/processing_models.py +0 -40
- unrealon_llm/src/modules/html_processor/models/universal_model.py +0 -56
- unrealon_llm/src/modules/html_processor/processor.py +0 -102
- unrealon_llm/src/modules/llm/__init__.py +0 -0
- unrealon_llm/src/modules/translator/__init__.py +0 -0
- unrealon_llm/src/provider.py +0 -116
- unrealon_llm/src/utils/__init__.py +0 -95
- unrealon_llm/src/utils/common.py +0 -64
- unrealon_llm/src/utils/data_extractor.py +0 -188
- unrealon_llm/src/utils/html_cleaner.py +0 -767
- unrealon_llm/src/utils/language_detector.py +0 -308
- unrealon_llm/src/utils/models_cache.py +0 -592
- unrealon_llm/src/utils/smart_counter.py +0 -229
- unrealon_llm/src/utils/token_counter.py +0 -189
- unrealon_sdk/README.md +0 -25
- unrealon_sdk/__init__.py +0 -30
- unrealon_sdk/pyproject.toml +0 -231
- unrealon_sdk/src/__init__.py +0 -150
- unrealon_sdk/src/cli/__init__.py +0 -12
- unrealon_sdk/src/cli/commands/__init__.py +0 -22
- unrealon_sdk/src/cli/commands/benchmark.py +0 -42
- unrealon_sdk/src/cli/commands/diagnostics.py +0 -573
- unrealon_sdk/src/cli/commands/health.py +0 -46
- unrealon_sdk/src/cli/commands/integration.py +0 -498
- unrealon_sdk/src/cli/commands/reports.py +0 -43
- unrealon_sdk/src/cli/commands/security.py +0 -36
- unrealon_sdk/src/cli/commands/server.py +0 -483
- unrealon_sdk/src/cli/commands/servers.py +0 -56
- unrealon_sdk/src/cli/commands/tests.py +0 -55
- unrealon_sdk/src/cli/main.py +0 -126
- unrealon_sdk/src/cli/utils/reporter.py +0 -519
- unrealon_sdk/src/clients/openapi.yaml +0 -3347
- unrealon_sdk/src/clients/python_http/__init__.py +0 -3
- unrealon_sdk/src/clients/python_http/api_config.py +0 -228
- unrealon_sdk/src/clients/python_http/models/BaseModel.py +0 -12
- unrealon_sdk/src/clients/python_http/models/BroadcastDeliveryStats.py +0 -33
- unrealon_sdk/src/clients/python_http/models/BroadcastMessage.py +0 -17
- unrealon_sdk/src/clients/python_http/models/BroadcastMessageRequest.py +0 -35
- unrealon_sdk/src/clients/python_http/models/BroadcastPriority.py +0 -10
- unrealon_sdk/src/clients/python_http/models/BroadcastResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/BroadcastResultResponse.py +0 -33
- unrealon_sdk/src/clients/python_http/models/BroadcastTarget.py +0 -11
- unrealon_sdk/src/clients/python_http/models/ConnectionStats.py +0 -27
- unrealon_sdk/src/clients/python_http/models/ConnectionsResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/DeveloperMessageResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ErrorResponse.py +0 -25
- unrealon_sdk/src/clients/python_http/models/HTTPValidationError.py +0 -16
- unrealon_sdk/src/clients/python_http/models/HealthResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/HealthStatus.py +0 -33
- unrealon_sdk/src/clients/python_http/models/LogLevel.py +0 -10
- unrealon_sdk/src/clients/python_http/models/LoggingRequest.py +0 -27
- unrealon_sdk/src/clients/python_http/models/LoggingResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/MaintenanceMode.py +0 -9
- unrealon_sdk/src/clients/python_http/models/MaintenanceModeRequest.py +0 -33
- unrealon_sdk/src/clients/python_http/models/MaintenanceStatusResponse.py +0 -39
- unrealon_sdk/src/clients/python_http/models/ParserCommandRequest.py +0 -25
- unrealon_sdk/src/clients/python_http/models/ParserMessageResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/ParserRegistrationRequest.py +0 -28
- unrealon_sdk/src/clients/python_http/models/ParserRegistrationResponse.py +0 -25
- unrealon_sdk/src/clients/python_http/models/ParserType.py +0 -10
- unrealon_sdk/src/clients/python_http/models/ProxyBlockRequest.py +0 -19
- unrealon_sdk/src/clients/python_http/models/ProxyEndpointResponse.py +0 -20
- unrealon_sdk/src/clients/python_http/models/ProxyListResponse.py +0 -19
- unrealon_sdk/src/clients/python_http/models/ProxyProvider.py +0 -10
- unrealon_sdk/src/clients/python_http/models/ProxyPurchaseRequest.py +0 -25
- unrealon_sdk/src/clients/python_http/models/ProxyResponse.py +0 -47
- unrealon_sdk/src/clients/python_http/models/ProxyRotationRequest.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ProxyStatus.py +0 -10
- unrealon_sdk/src/clients/python_http/models/ProxyUsageRequest.py +0 -19
- unrealon_sdk/src/clients/python_http/models/ProxyUsageStatsResponse.py +0 -26
- unrealon_sdk/src/clients/python_http/models/ServiceRegistrationDto.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ServiceStatsResponse.py +0 -31
- unrealon_sdk/src/clients/python_http/models/SessionStartRequest.py +0 -23
- unrealon_sdk/src/clients/python_http/models/SuccessResponse.py +0 -25
- unrealon_sdk/src/clients/python_http/models/SystemNotificationResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ValidationError.py +0 -18
- unrealon_sdk/src/clients/python_http/models/ValidationErrorResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/WebSocketMetrics.py +0 -21
- unrealon_sdk/src/clients/python_http/models/__init__.py +0 -44
- unrealon_sdk/src/clients/python_http/services/None_service.py +0 -35
- unrealon_sdk/src/clients/python_http/services/ParserManagement_service.py +0 -190
- unrealon_sdk/src/clients/python_http/services/ProxyManagement_service.py +0 -289
- unrealon_sdk/src/clients/python_http/services/SocketLogging_service.py +0 -187
- unrealon_sdk/src/clients/python_http/services/SystemHealth_service.py +0 -119
- unrealon_sdk/src/clients/python_http/services/WebSocketAPI_service.py +0 -198
- unrealon_sdk/src/clients/python_http/services/__init__.py +0 -0
- unrealon_sdk/src/clients/python_http/services/admin_service.py +0 -125
- unrealon_sdk/src/clients/python_http/services/async_None_service.py +0 -35
- unrealon_sdk/src/clients/python_http/services/async_ParserManagement_service.py +0 -190
- unrealon_sdk/src/clients/python_http/services/async_ProxyManagement_service.py +0 -289
- unrealon_sdk/src/clients/python_http/services/async_SocketLogging_service.py +0 -189
- unrealon_sdk/src/clients/python_http/services/async_SystemHealth_service.py +0 -123
- unrealon_sdk/src/clients/python_http/services/async_WebSocketAPI_service.py +0 -200
- unrealon_sdk/src/clients/python_http/services/async_admin_service.py +0 -125
- unrealon_sdk/src/clients/python_websocket/__init__.py +0 -28
- unrealon_sdk/src/clients/python_websocket/client.py +0 -490
- unrealon_sdk/src/clients/python_websocket/events.py +0 -732
- unrealon_sdk/src/clients/python_websocket/example.py +0 -136
- unrealon_sdk/src/clients/python_websocket/types.py +0 -871
- unrealon_sdk/src/core/__init__.py +0 -64
- unrealon_sdk/src/core/client.py +0 -556
- unrealon_sdk/src/core/config.py +0 -465
- unrealon_sdk/src/core/exceptions.py +0 -239
- unrealon_sdk/src/core/metadata.py +0 -191
- unrealon_sdk/src/core/models.py +0 -142
- unrealon_sdk/src/core/types.py +0 -68
- unrealon_sdk/src/dto/__init__.py +0 -268
- unrealon_sdk/src/dto/authentication.py +0 -108
- unrealon_sdk/src/dto/cache.py +0 -208
- unrealon_sdk/src/dto/common.py +0 -19
- unrealon_sdk/src/dto/concurrency.py +0 -393
- unrealon_sdk/src/dto/events.py +0 -108
- unrealon_sdk/src/dto/health.py +0 -339
- unrealon_sdk/src/dto/load_balancing.py +0 -336
- unrealon_sdk/src/dto/logging.py +0 -230
- unrealon_sdk/src/dto/performance.py +0 -165
- unrealon_sdk/src/dto/rate_limiting.py +0 -295
- unrealon_sdk/src/dto/resource_pooling.py +0 -128
- unrealon_sdk/src/dto/structured_logging.py +0 -112
- unrealon_sdk/src/dto/task_scheduling.py +0 -121
- unrealon_sdk/src/dto/websocket.py +0 -55
- unrealon_sdk/src/enterprise/__init__.py +0 -59
- unrealon_sdk/src/enterprise/authentication.py +0 -401
- unrealon_sdk/src/enterprise/cache_manager.py +0 -578
- unrealon_sdk/src/enterprise/error_recovery.py +0 -494
- unrealon_sdk/src/enterprise/event_system.py +0 -549
- unrealon_sdk/src/enterprise/health_monitor.py +0 -747
- unrealon_sdk/src/enterprise/load_balancer.py +0 -964
- unrealon_sdk/src/enterprise/logging/__init__.py +0 -68
- unrealon_sdk/src/enterprise/logging/cleanup.py +0 -156
- unrealon_sdk/src/enterprise/logging/development.py +0 -744
- unrealon_sdk/src/enterprise/logging/service.py +0 -410
- unrealon_sdk/src/enterprise/multithreading_manager.py +0 -853
- unrealon_sdk/src/enterprise/performance_monitor.py +0 -539
- unrealon_sdk/src/enterprise/proxy_manager.py +0 -696
- unrealon_sdk/src/enterprise/rate_limiter.py +0 -652
- unrealon_sdk/src/enterprise/resource_pool.py +0 -763
- unrealon_sdk/src/enterprise/task_scheduler.py +0 -709
- unrealon_sdk/src/internal/__init__.py +0 -10
- unrealon_sdk/src/internal/command_router.py +0 -497
- unrealon_sdk/src/internal/connection_manager.py +0 -397
- unrealon_sdk/src/internal/http_client.py +0 -446
- unrealon_sdk/src/internal/websocket_client.py +0 -420
- unrealon_sdk/src/provider.py +0 -471
- unrealon_sdk/src/utils.py +0 -234
- /unrealon_browser/{src/cli → cli}/__init__.py +0 -0
- /unrealon_browser/{src/cli → cli}/interactive_mode.py +0 -0
- /unrealon_browser/{src/cli → cli}/main.py +0 -0
- /unrealon_browser/{src/core → core}/__init__.py +0 -0
- /unrealon_browser/{src/dto → dto}/__init__.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/config.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/core.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/dataclasses.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/detection.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/enums.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/statistics.py +0 -0
- /unrealon_browser/{src/managers → managers}/__init__.py +0 -0
- /unrealon_browser/{src/managers → managers}/stealth.py +0 -0
unrealon/__init__.py
CHANGED
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
"""
|
|
2
|
-
UnrealOn
|
|
2
|
+
UnrealOn - Main Package
|
|
3
|
+
Enterprise browser automation framework with WebSocket bridge for distributed web scraping.
|
|
3
4
|
"""
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
from importlib.metadata import version
|
|
7
|
+
|
|
8
|
+
try:
|
|
9
|
+
__version__ = version("unrealon")
|
|
10
|
+
except Exception:
|
|
11
|
+
__version__ = "1.0.0"
|
|
12
|
+
|
|
13
|
+
# Re-export main modules
|
|
14
|
+
import unrealon_driver
|
|
15
|
+
import unrealon_bridge
|
|
16
|
+
import unrealon_browser
|
|
17
|
+
|
|
18
|
+
# Re-export all from submodules
|
|
19
|
+
from unrealon_driver import *
|
|
20
|
+
from unrealon_bridge import *
|
|
21
|
+
from unrealon_browser import *
|
|
17
22
|
|
|
18
23
|
__all__ = [
|
|
24
|
+
# Version
|
|
19
25
|
"__version__",
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"VERSION_INFO",
|
|
25
|
-
"PROJECT_INFO",
|
|
26
|
-
"get_version",
|
|
27
|
-
"is_debug_mode",
|
|
26
|
+
# Re-export all from submodules
|
|
27
|
+
*getattr(unrealon_driver, "__all__", []),
|
|
28
|
+
*getattr(unrealon_bridge, "__all__", []),
|
|
29
|
+
*getattr(unrealon_browser, "__all__", []),
|
|
28
30
|
]
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: unrealon
|
|
3
|
+
Version: 1.1.0
|
|
4
|
+
Summary: Advanced browser automation framework with WebSocket bridge for distributed web scraping
|
|
5
|
+
Project-URL: Homepage, https://github.com/unrealos/unrealon-rpc
|
|
6
|
+
Project-URL: Documentation, https://unrealon-rpc.readthedocs.io
|
|
7
|
+
Project-URL: Repository, https://github.com/unrealos/unrealon-rpc.git
|
|
8
|
+
Project-URL: Issues, https://github.com/unrealos/unrealon-rpc/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/unrealos/unrealon-rpc/blob/main/CHANGELOG.md
|
|
10
|
+
Author-email: UnrealOS Team <dev@unrealos.com>
|
|
11
|
+
Maintainer-email: UnrealOS Team <dev@unrealos.com>
|
|
12
|
+
License: MIT
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
Keywords: async,bridge,browser-automation,html-processing,parsing,playwright,pydantic,stealth,web-scraping,websocket
|
|
15
|
+
Classifier: Development Status :: 4 - Beta
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Classifier: Programming Language :: Python
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Classifier: Topic :: Communications
|
|
25
|
+
Classifier: Topic :: Internet :: WWW/HTTP
|
|
26
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
27
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
28
|
+
Classifier: Typing :: Typed
|
|
29
|
+
Requires-Python: <4.0,>=3.10
|
|
30
|
+
Requires-Dist: aiohttp>=3.9.0
|
|
31
|
+
Requires-Dist: asyncio-mqtt>=0.16.0
|
|
32
|
+
Requires-Dist: beautifulsoup4>=4.12.0
|
|
33
|
+
Requires-Dist: click>=8.2.0
|
|
34
|
+
Requires-Dist: httpx>=0.26.0
|
|
35
|
+
Requires-Dist: ipfshttpclient>=0.8.0a2
|
|
36
|
+
Requires-Dist: lxml>=5.0.0
|
|
37
|
+
Requires-Dist: playwright-stealth<2.0.0,>=1.0.5
|
|
38
|
+
Requires-Dist: playwright>=1.40.0
|
|
39
|
+
Requires-Dist: pydantic<3.0,>=2.11
|
|
40
|
+
Requires-Dist: python-dateutil>=2.8
|
|
41
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
42
|
+
Requires-Dist: pyyaml>=6.0
|
|
43
|
+
Requires-Dist: redis>=5.0.0
|
|
44
|
+
Requires-Dist: rich>=13.0.0
|
|
45
|
+
Requires-Dist: tomlkit>=0.13.0
|
|
46
|
+
Requires-Dist: websockets>=12.0
|
|
47
|
+
Provides-Extra: dev
|
|
48
|
+
Requires-Dist: bandit>=1.7.0; extra == 'dev'
|
|
49
|
+
Requires-Dist: black>=23.0.0; extra == 'dev'
|
|
50
|
+
Requires-Dist: build>=1.0.0; extra == 'dev'
|
|
51
|
+
Requires-Dist: flake8>=6.0.0; extra == 'dev'
|
|
52
|
+
Requires-Dist: isort>=5.12.0; extra == 'dev'
|
|
53
|
+
Requires-Dist: mkdocs-material>=9.0.0; extra == 'dev'
|
|
54
|
+
Requires-Dist: mkdocs>=1.5.0; extra == 'dev'
|
|
55
|
+
Requires-Dist: mkdocstrings[python]>=0.22.0; extra == 'dev'
|
|
56
|
+
Requires-Dist: mypy>=1.5.0; extra == 'dev'
|
|
57
|
+
Requires-Dist: pre-commit>=3.0.0; extra == 'dev'
|
|
58
|
+
Requires-Dist: pydocstyle>=6.3.0; extra == 'dev'
|
|
59
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
|
|
60
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
61
|
+
Requires-Dist: pytest-mock>=3.10.0; extra == 'dev'
|
|
62
|
+
Requires-Dist: pytest-xdist>=3.0.0; extra == 'dev'
|
|
63
|
+
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
64
|
+
Requires-Dist: questionary>=2.1.0; extra == 'dev'
|
|
65
|
+
Requires-Dist: twine>=4.0.0; extra == 'dev'
|
|
66
|
+
Provides-Extra: docs
|
|
67
|
+
Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
|
|
68
|
+
Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
|
|
69
|
+
Requires-Dist: mkdocstrings[python]>=0.22.0; extra == 'docs'
|
|
70
|
+
Requires-Dist: pymdown-extensions>=10.0.0; extra == 'docs'
|
|
71
|
+
Provides-Extra: test
|
|
72
|
+
Requires-Dist: factory-boy>=3.2.0; extra == 'test'
|
|
73
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'test'
|
|
74
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == 'test'
|
|
75
|
+
Requires-Dist: pytest-mock>=3.10.0; extra == 'test'
|
|
76
|
+
Requires-Dist: pytest-xdist>=3.0.0; extra == 'test'
|
|
77
|
+
Requires-Dist: pytest>=7.0; extra == 'test'
|
|
78
|
+
Description-Content-Type: text/markdown
|
|
79
|
+
|
|
80
|
+
# unrealon-rpc
|
|
81
|
+
|
|
82
|
+
Universal async RPC + mesh + storage over Redis and IPFS with FastAPI WebSocket support.
|
|
83
|
+
|
|
84
|
+
## Features
|
|
85
|
+
|
|
86
|
+
- **Generic WebSocket Bridge**: Universal WebSocket-to-Redis communication layer
|
|
87
|
+
- **Parser-Specific Bridge**: Domain-specific wrapper for parser orchestration
|
|
88
|
+
- **Redis RPC/PubSub**: Asynchronous messaging primitives
|
|
89
|
+
- **IPFS Storage**: Decentralized file storage integration
|
|
90
|
+
- **Pydantic v2**: Strict type validation and data modeling
|
|
91
|
+
- **Modular Architecture**: Clean separation of concerns with dependency injection
|
|
92
|
+
|
|
93
|
+
## Installation
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pip install unrealon-rpc
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Quick Start
|
|
100
|
+
|
|
101
|
+
### Start WebSocket Server
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Production mode
|
|
105
|
+
ws-server --host localhost --port 8000
|
|
106
|
+
|
|
107
|
+
# Development mode with auto-reload (port 8001)
|
|
108
|
+
ws-dev --host localhost --port 8001
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Start Parser Bridge Server
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Production mode
|
|
115
|
+
parser-bridge --redis-url redis://localhost:6379/0
|
|
116
|
+
|
|
117
|
+
# Development mode with auto-reload (port 8002)
|
|
118
|
+
parser-dev --redis-url redis://localhost:6379/0
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Python Usage
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
from bridge_parsers import ParserBridgeServer, ParserBridgeClient
|
|
125
|
+
|
|
126
|
+
# Server
|
|
127
|
+
server = ParserBridgeServer(redis_url="redis://localhost:6379/0")
|
|
128
|
+
await server.start()
|
|
129
|
+
|
|
130
|
+
# Client
|
|
131
|
+
client = ParserBridgeClient(
|
|
132
|
+
websocket_url="ws://localhost:8000/ws",
|
|
133
|
+
parser_type="my_parser"
|
|
134
|
+
)
|
|
135
|
+
await client.connect()
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Architecture
|
|
139
|
+
|
|
140
|
+
The system follows a clean architecture with:
|
|
141
|
+
|
|
142
|
+
- **Generic Bridge** (`unrealon_rpc.bridge`): WebSocket-to-Redis communication
|
|
143
|
+
- **Parser Bridge** (`bridge_parsers`): Domain-specific parser orchestration
|
|
144
|
+
- **RPC Layer** (`unrealon_rpc.rpc`): Redis-based RPC implementation
|
|
145
|
+
- **PubSub Layer** (`unrealon_rpc.pubsub`): Redis-based publish/subscribe
|
|
146
|
+
|
|
147
|
+
## Testing
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Run all tests
|
|
151
|
+
python tests/run_tests.py
|
|
152
|
+
|
|
153
|
+
# Run specific test types
|
|
154
|
+
python tests/run_tests.py --type unit
|
|
155
|
+
python tests/run_tests.py --type e2e
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Documentation
|
|
159
|
+
|
|
160
|
+
See the `@docs/` directory for comprehensive documentation.
|
|
161
|
+
|
|
162
|
+
## License
|
|
163
|
+
|
|
164
|
+
MIT License
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
unrealon/__init__.py,sha256=ZQ0UqKF7eEu3Sy1uzLrRNq57Kyv11XzQAn2FF6AkOU4,695
|
|
2
|
+
unrealon_bridge/__init__.py,sha256=EXAVguR4cXG2kxgFncJnJvk5-Uo0CZR4pK3KDIbtk8g,2675
|
|
3
|
+
unrealon_bridge/cli.py,sha256=wItb_FqHGAScEqfP0ipC-vaj0stOiO4hjgpfYLF0INs,11827
|
|
4
|
+
unrealon_bridge/client/__init__.py,sha256=M33ADDrexYlSx7bQ6z0MQF_kv0W_AM8S7cfL0C18nUU,2993
|
|
5
|
+
unrealon_bridge/client/base.py,sha256=iuBBKAadpacg4LL-kuPJ-atm8CKXMEdELh6UKh68JRo,2605
|
|
6
|
+
unrealon_bridge/client/commands.py,sha256=SwjRM154BWgQLLKYq9ay1kC2uTmYsJHh2YwDzItmMUc,2844
|
|
7
|
+
unrealon_bridge/client/connection.py,sha256=bCS-D7zAFM-er4nREZqKwKP1gFNDjAaW3l1ngbnXmJo,2864
|
|
8
|
+
unrealon_bridge/client/events.py,sha256=gFguotwRPU_dXZ0iXkE3d97N-Vd935KU91OscEhuzuY,1842
|
|
9
|
+
unrealon_bridge/client/health.py,sha256=sHgl93IyXSzlIUfgfKKnVoRQIeqozz7X-3jW61YbJ6c,946
|
|
10
|
+
unrealon_bridge/client/html_parser.py,sha256=Pij8GWS76C7stQmr8V5S2iYuZSe0J5ACOPDFLdsZ93w,5138
|
|
11
|
+
unrealon_bridge/client/logging.py,sha256=RP8d2xZJxjOziHrQOYX56oCBxTGCTDSIxJRjQZxMokY,4847
|
|
12
|
+
unrealon_bridge/client/proxy.py,sha256=fJUBAnqe_BGCDYRW9ZhgWwJ_V30U1Tv1JPxmmtKp4LA,1975
|
|
13
|
+
unrealon_bridge/client/scheduler.py,sha256=ZwewB-ZRO6XVIULx96wYI3OTvuft2S9jLTLqHStkO6A,14132
|
|
14
|
+
unrealon_bridge/client/session.py,sha256=YOkJL60guDg9T0ftpQl-yHEAvtKFunmhYGcTSGt9A5M,1988
|
|
15
|
+
unrealon_bridge/configs/__init__.py,sha256=Oj9OLuu9RtqexhdpOjVSqIRI_Gh5CA-5vb9zta177Nw,323
|
|
16
|
+
unrealon_bridge/configs/bridge_config.py,sha256=1fwEFiViHdCzjP_yTl2QcfAYuNFof6ryhUH0mx3OBIA,7223
|
|
17
|
+
unrealon_bridge/configs/bridge_config.yaml,sha256=QrKe87Zb2o4b6zeSNOaRP1EvArENxSTIrxEfn5kBUcw,710
|
|
18
|
+
unrealon_bridge/models/__init__.py,sha256=EnB4OPwa6Og7p5pAzDKX4tf_B7c2jXpKdy02ngI0rU0,3559
|
|
19
|
+
unrealon_bridge/models/base.py,sha256=TyEzJ2I80rQQzINIyWlIcGdC7EdW-cwE9uO5MO3sb3o,864
|
|
20
|
+
unrealon_bridge/models/command.py,sha256=22T_30SyKugj7cW4vvmy4UCsmmn19LSRk36B2qEBsLw,1798
|
|
21
|
+
unrealon_bridge/models/events.py,sha256=i9-TpUZeM_yCzBe9_YhURoOP0Q8ENn8gvl9F6Mm6Pa8,1704
|
|
22
|
+
unrealon_bridge/models/html_parser.py,sha256=9Vat1I01QjMQAE8NhumIquCU6XjBd3iapSwWZPc8l8Y,2733
|
|
23
|
+
unrealon_bridge/models/logging.py,sha256=beh9EFoQ7T7UEYRKHHxf2xnAbMTJBzUl9vsDBrS_1J4,1841
|
|
24
|
+
unrealon_bridge/models/parser.py,sha256=6EGw2nGT_tS6c7BKlKRP-bRyxv76ee5bPOGp35tMdaQ,2694
|
|
25
|
+
unrealon_bridge/models/proxy.py,sha256=Wgpq5fS8MSjeWl_j6liqh3ejBPEEZMbQOgjbEAHl9yo,1732
|
|
26
|
+
unrealon_bridge/models/requests.py,sha256=YpR1SpGH4XqhJQRxvL47FhPhjTvHPsOG1ov5EMbm35c,3012
|
|
27
|
+
unrealon_bridge/models/responses.py,sha256=Ao6su6x7-xBVX5Ju0IVM6xTnC_s4UxqnC5R7oX4UCNg,2670
|
|
28
|
+
unrealon_bridge/models/scheduler.py,sha256=P1KkEU7u1LostR8TTaTQ-vrnADhyWH4rHefHYcf8IqI,18035
|
|
29
|
+
unrealon_bridge/models/session.py,sha256=-vzaXlj3P9ZeqZiv0ZwH7SZ0bD94AG_qkm054BaOGzw,1146
|
|
30
|
+
unrealon_bridge/server/__init__.py,sha256=07MhDxLbeFn6qBqUttph-aHbN1Sjra-xpaAI7VcjZpw,3902
|
|
31
|
+
unrealon_bridge/server/base.py,sha256=JvAp24TIbW9Y8253kdKwq7N-7HaMIF8VBx8ZB4MJPmc,5792
|
|
32
|
+
unrealon_bridge/server/handlers/__init__.py,sha256=w6hh0Mcjtm5h3D_-Qs-ACNCp6d9DqVjYwtij3HURLag,547
|
|
33
|
+
unrealon_bridge/server/handlers/command.py,sha256=pc_EMKBMl9R59QJURRD2Fle-_leGMoPFKoN_eJrL0NM,4436
|
|
34
|
+
unrealon_bridge/server/handlers/html_parser.py,sha256=TANWEgok1OL2gUNdsk9L7VdL8GbJOUoiSXQUGV4Wt4M,5150
|
|
35
|
+
unrealon_bridge/server/handlers/logging.py,sha256=dZ2CCe1t5aue0IgR_LXo4dDq-mZ6VilkW5wBcOIBkdg,3001
|
|
36
|
+
unrealon_bridge/server/handlers/parser.py,sha256=1XznKO9pTmhsc-FamApS_2eoIxfrwmZQniQgFQVACPs,4984
|
|
37
|
+
unrealon_bridge/server/handlers/proxy.py,sha256=rXU9W-5DZ2daXVjVFra1V_7NhGCQ6cLJB9lMi4eV-qk,2801
|
|
38
|
+
unrealon_bridge/server/handlers/scheduler.py,sha256=eYOAHE9kpQYaJM8G_FQWmlfSdjseYbxoLinuXmS4U-g,19559
|
|
39
|
+
unrealon_bridge/server/handlers/session.py,sha256=YHyKDOjIJICRJ1HjtMhEikMYJWt8q3AEEuWPx4OOjjw,2409
|
|
40
|
+
unrealon_browser/README.md,sha256=9pP6RrfMGHtdT5uDLFAUB1e4nNGzZudXViEo1940gKw,396
|
|
41
|
+
unrealon_browser/__init__.py,sha256=s46-gFZQgW-89xcG_1a2k-GGNwIboMQVy7HkFrOVk90,1467
|
|
42
|
+
unrealon_browser/cli/__init__.py,sha256=b3r88oeCYsqZF8EU8EZXP9v54Q8cIimN7UmxJsXcB84,264
|
|
43
|
+
unrealon_browser/cli/browser_cli.py,sha256=SRRCGbNXaEg1ZN04-jPo9GOWcP2b6Bkalu6PYVOOt5k,8342
|
|
44
|
+
unrealon_browser/cli/cookies_cli.py,sha256=yhZvGrg8bknlH4zlySdi8ue-25Ue-1rI_u1G06OIMg4,13304
|
|
45
|
+
unrealon_browser/cli/interactive_mode.py,sha256=iYt9PNaIBhNjZ9aUa1ZxeeneV2u1VTSkYQ6rsyio-o8,11730
|
|
46
|
+
unrealon_browser/cli/main.py,sha256=XCYcTxJUqaz320KCU_JPKizYMk6bdljb8Boyok3uO-4,1353
|
|
47
|
+
unrealon_browser/core/__init__.py,sha256=uVL_t4sZelUzflWPdgrwoXGnAkSV1WNQ98-eu0QB2eM,151
|
|
48
|
+
unrealon_browser/core/browser_manager.py,sha256=4x3wWEMJbENc0msCG3Mw8cn4ie2O-i77a7PcW7xF_3o,24439
|
|
49
|
+
unrealon_browser/dto/__init__.py,sha256=p9mG2QwnXEdHUHYK67vGD6aameM8RkiVATzz8y0u5EE,1206
|
|
50
|
+
unrealon_browser/dto/models/config.py,sha256=gMKOc1TpmjNSXxHqimHKGhGA71PZOBF5zkeAo3wSFZs,894
|
|
51
|
+
unrealon_browser/dto/models/core.py,sha256=HvbwYG27rmmWtp401uws7lfalN_9QPad0M6ceCiN5iQ,2741
|
|
52
|
+
unrealon_browser/dto/models/dataclasses.py,sha256=zqhJVyzp4CvtuTBsZwm6n6TodVWrZf9gkdDG-0_tgeA,2571
|
|
53
|
+
unrealon_browser/dto/models/detection.py,sha256=ma9ZNIjPR7HnjqZaAj6ZoskiewPFiSn_FgFXSkgiQc8,2715
|
|
54
|
+
unrealon_browser/dto/models/enums.py,sha256=Q4WzHdfSKf7dhKyX00i_Pvl2U8w3lBsxOYfSIoaQY3Q,1219
|
|
55
|
+
unrealon_browser/dto/models/statistics.py,sha256=aIzJNV5r23VBxjhEoja4tXwI1Z7_UCw5zOaxuPya2E8,2728
|
|
56
|
+
unrealon_browser/managers/__init__.py,sha256=JuH9FW_kTzVv71jCDp6wOT4SXT6HGSBpyNAb4tD7-ck,456
|
|
57
|
+
unrealon_browser/managers/captcha.py,sha256=v5OKpQHCyNwsGBpQdnilcOPHxXZ8jZSHAjZ3DbtuaJ4,21432
|
|
58
|
+
unrealon_browser/managers/cookies.py,sha256=p7Yl1GRGhi0JQw0KjH6m1HFVqP9Ap-eYFALvQ0hCiDs,13824
|
|
59
|
+
unrealon_browser/managers/logger_bridge.py,sha256=6kWKDZG3wbHBoml6iQE2xKwN01tVztOVYvQ9BU6UB8o,8700
|
|
60
|
+
unrealon_browser/managers/profile.py,sha256=vELLiTpMTglKFGAfRVyDqV8qnjrhG5IygHFsdtVmGbc,18175
|
|
61
|
+
unrealon_browser/managers/stealth.py,sha256=eSLAqpCHyyntUD1RzZC0jpNpYFuHpKl4J9WxmICx3Ww,13890
|
|
62
|
+
unrealon_driver/__init__.py,sha256=_TlN0Rec6kxQZBPmI6daBjoQF7b0LX73JiCJUYdLE4U,1910
|
|
63
|
+
unrealon_driver/exceptions.py,sha256=buCxZ-16AG9OTiqIgfNA_Z3QSxXiqM2kXzQTvq3XKAY,432
|
|
64
|
+
unrealon_driver/browser/__init__.py,sha256=Rq0YuvRlrlSCy_uOQPVSaT2cHc5OE2ivc2gXnFKP2SU,152
|
|
65
|
+
unrealon_driver/browser/config.py,sha256=z2U6DP5Gv5D0pZH2lB2I0pYL4dCwN4M-pjLNgUk3fHY,3079
|
|
66
|
+
unrealon_driver/browser/manager.py,sha256=OijjVNWwJ0oyHY93tmd9vuqhvdAZnx0_URp9R53Q1bg,14248
|
|
67
|
+
unrealon_driver/parser/__init__.py,sha256=L-rsthz3S_GEd_glNvdHazYJotcRfRPwm-7Bin_LCzM,1352
|
|
68
|
+
unrealon_driver/parser/cli_manager.py,sha256=uSQLRwgogbPq4KBTHC1Q3ToGGDMKqezNWlpvO273_Zw,5102
|
|
69
|
+
unrealon_driver/parser/daemon_manager.py,sha256=RYqQE1Dpbkh_0bBAtbdUqPbQuwahpERi_QkibZoqVLo,8698
|
|
70
|
+
unrealon_driver/parser/parser_manager.py,sha256=HVobmUpkVwHpWH1xltyazYBCKW2haUsDfoOg9dLrvw4,21985
|
|
71
|
+
unrealon_driver/parser/managers/__init__.py,sha256=fmOu0JMWmCcmAKvDTE77bTKzWuu-Wihtg029yrg02Pw,1120
|
|
72
|
+
unrealon_driver/parser/managers/browser.py,sha256=JLsBjusNBH-37e7xwY0YP6dXEHKynVBRaUj97BYfUeY,1642
|
|
73
|
+
unrealon_driver/parser/managers/config.py,sha256=-_juYfH0Br3q1Y8xdlU1vbJqRyzhU-Fx4sZsRzNwTBY,9424
|
|
74
|
+
unrealon_driver/parser/managers/error.py,sha256=EnJkZLlZihXeKZdHauvnqaSby05caxHOYYIuiLoelkw,14555
|
|
75
|
+
unrealon_driver/parser/managers/html.py,sha256=dLToyv_KJ-LXvsB2Drmyc4bIbrMDsj9opD7iGGqspHo,26272
|
|
76
|
+
unrealon_driver/parser/managers/logging.py,sha256=DjiJdI1hhIesi0p04BNCekN7bh_nOxPZKYqyG9td2Xs,21663
|
|
77
|
+
unrealon_driver/parser/managers/result.py,sha256=yIoDTx6e1YzhKmJ2yJPD8_eAAkrjtm7ofN3DFEOLdUU,10236
|
|
78
|
+
unrealon-1.1.0.dist-info/METADATA,sha256=M-HdnsyTLhrejVYCyNsCt4ovkzOUDwKbdJ9HJLemL0U,5474
|
|
79
|
+
unrealon-1.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
80
|
+
unrealon-1.1.0.dist-info/entry_points.txt,sha256=425kGFy7wjMYuNhyHRGKNciSQTVSw2IsHKJRRIHc5jo,431
|
|
81
|
+
unrealon-1.1.0.dist-info/licenses/LICENSE,sha256=uTZpktXKUsE0IzS5RdSV398HHI74ssbGKTdCbv7U9l0,1070
|
|
82
|
+
unrealon-1.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
[console_scripts]
|
|
2
|
+
browser-cookies = unrealon_browser.cli.cookies_cli:main
|
|
3
|
+
browser-interactive = unrealon_browser.cli.interactive_mode:main
|
|
4
|
+
browser-profiles = unrealon_browser.cli.main:profiles_command
|
|
5
|
+
browser-stealth = unrealon_browser.cli.main:stealth_command
|
|
6
|
+
unrealon = unrealon_driver.cli:main
|
|
7
|
+
unrealon-bridge = unrealon_bridge.cli:main
|
|
8
|
+
unrealon-browser = unrealon_browser.cli.main:cli
|
|
9
|
+
unrealon-rpc = unrealon_rpc.cli.main:main
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Bridge Parsers - Parser-specific wrapper over generic bridge.
|
|
3
|
+
|
|
4
|
+
Extends the generic WebSocket bridge with parser orchestration capabilities:
|
|
5
|
+
- Parser registration and management
|
|
6
|
+
- Command execution and tracking
|
|
7
|
+
- Proxy allocation and management
|
|
8
|
+
- Parser session logging
|
|
9
|
+
- Typed data models for all parser operations
|
|
10
|
+
|
|
11
|
+
This is a wrapper that adds parser domain knowledge to the generic bridge.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from importlib.metadata import version
|
|
15
|
+
|
|
16
|
+
try:
|
|
17
|
+
__version__ = version("unrealon")
|
|
18
|
+
except Exception:
|
|
19
|
+
__version__ = "1.1.0"
|
|
20
|
+
|
|
21
|
+
from .models import (
|
|
22
|
+
# Base models
|
|
23
|
+
BaseParserModel,
|
|
24
|
+
# Core models
|
|
25
|
+
ParserInfo,
|
|
26
|
+
ParserCommand,
|
|
27
|
+
CommandResult,
|
|
28
|
+
ProxyRequest,
|
|
29
|
+
ProxyInfo,
|
|
30
|
+
ParserSession,
|
|
31
|
+
ParserEvent,
|
|
32
|
+
ParserStats,
|
|
33
|
+
ParserHealth,
|
|
34
|
+
WebhookConfig,
|
|
35
|
+
# RPC Response models
|
|
36
|
+
BaseRPCResponse,
|
|
37
|
+
ParserRegisterResponse,
|
|
38
|
+
ParserStatusResponse,
|
|
39
|
+
ParserListResponse,
|
|
40
|
+
ParserHealthResponse,
|
|
41
|
+
SessionStartResponse,
|
|
42
|
+
SessionEndResponse,
|
|
43
|
+
CommandExecuteResponse,
|
|
44
|
+
CommandCreateResponse,
|
|
45
|
+
CommandStatusResponse,
|
|
46
|
+
ProxyAllocateResponse,
|
|
47
|
+
ProxyReleaseResponse,
|
|
48
|
+
ProxyCheckResponse,
|
|
49
|
+
# RPC Request models
|
|
50
|
+
BaseRPCRequest,
|
|
51
|
+
ParserRegisterRequest,
|
|
52
|
+
ParserStatusRequest,
|
|
53
|
+
ParserListRequest,
|
|
54
|
+
ParserHealthRequest,
|
|
55
|
+
SessionStartRequest,
|
|
56
|
+
SessionEndRequest,
|
|
57
|
+
CommandExecuteRequest,
|
|
58
|
+
CommandCreateRequest,
|
|
59
|
+
CommandStatusRequest,
|
|
60
|
+
ProxyAllocateRequest,
|
|
61
|
+
ProxyReleaseRequest,
|
|
62
|
+
ProxyCheckRequest,
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
from .client import ParserBridgeClient
|
|
66
|
+
from .server import ParserBridgeServer
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
__all__ = [
|
|
70
|
+
# Base Models
|
|
71
|
+
"BaseParserModel",
|
|
72
|
+
# Core Models
|
|
73
|
+
"ParserInfo",
|
|
74
|
+
"ParserCommand",
|
|
75
|
+
"CommandResult",
|
|
76
|
+
"ProxyRequest",
|
|
77
|
+
"ProxyInfo",
|
|
78
|
+
"ParserSession",
|
|
79
|
+
"ParserEvent",
|
|
80
|
+
"ParserStats",
|
|
81
|
+
"ParserHealth",
|
|
82
|
+
"WebhookConfig",
|
|
83
|
+
# RPC Response Models
|
|
84
|
+
"BaseRPCResponse",
|
|
85
|
+
"ParserRegisterResponse",
|
|
86
|
+
"ParserStatusResponse",
|
|
87
|
+
"ParserListResponse",
|
|
88
|
+
"ParserHealthResponse",
|
|
89
|
+
"SessionStartResponse",
|
|
90
|
+
"SessionEndResponse",
|
|
91
|
+
"CommandExecuteResponse",
|
|
92
|
+
"CommandCreateResponse",
|
|
93
|
+
"CommandStatusResponse",
|
|
94
|
+
"ProxyAllocateResponse",
|
|
95
|
+
"ProxyReleaseResponse",
|
|
96
|
+
"ProxyCheckResponse",
|
|
97
|
+
# RPC Request Models
|
|
98
|
+
"BaseRPCRequest",
|
|
99
|
+
"ParserRegisterRequest",
|
|
100
|
+
"ParserStatusRequest",
|
|
101
|
+
"ParserListRequest",
|
|
102
|
+
"ParserHealthRequest",
|
|
103
|
+
"SessionStartRequest",
|
|
104
|
+
"SessionEndRequest",
|
|
105
|
+
"CommandExecuteRequest",
|
|
106
|
+
"CommandCreateRequest",
|
|
107
|
+
"CommandStatusRequest",
|
|
108
|
+
"ProxyAllocateRequest",
|
|
109
|
+
"ProxyReleaseRequest",
|
|
110
|
+
"ProxyCheckRequest",
|
|
111
|
+
# Client/Server
|
|
112
|
+
"ParserBridgeClient",
|
|
113
|
+
"ParserBridgeServer",
|
|
114
|
+
]
|