unrealon 2.0.32__tar.gz → 2.0.34__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.
- {unrealon-2.0.32 → unrealon-2.0.34}/MANIFEST.in +0 -1
- {unrealon-2.0.32/unrealon.egg-info → unrealon-2.0.34}/PKG-INFO +1 -2
- {unrealon-2.0.32 → unrealon-2.0.34}/pyproject.toml +1 -3
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/__init__.py +21 -0
- unrealon-2.0.34/unrealon-driver/src/unrealon_driver/installer/__init__.py +8 -0
- {unrealon-2.0.32/unrealon-driver/src/unrealon_installer → unrealon-2.0.34/unrealon-driver/src/unrealon_driver/installer}/platform.py +0 -17
- {unrealon-2.0.32 → unrealon-2.0.34/unrealon.egg-info}/PKG-INFO +1 -2
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon.egg-info/SOURCES.txt +2 -8
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon.egg-info/entry_points.txt +0 -1
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon.egg-info/requires.txt +0 -1
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon.egg-info/top_level.txt +0 -1
- unrealon-2.0.32/unrealon-driver/src/unrealon_installer/__init__.py +0 -12
- unrealon-2.0.32/unrealon-driver/src/unrealon_installer/batch_templates/quick_run.bat.j2 +0 -24
- unrealon-2.0.32/unrealon-driver/src/unrealon_installer/batch_templates/start.bat.j2 +0 -254
- unrealon-2.0.32/unrealon-driver/src/unrealon_installer/batch_templates/test.bat.j2 +0 -56
- unrealon-2.0.32/unrealon-driver/src/unrealon_installer/browser_fixes.py +0 -232
- unrealon-2.0.32/unrealon-driver/src/unrealon_installer/core.py +0 -122
- unrealon-2.0.32/unrealon-driver/src/unrealon_installer/templates.py +0 -60
- {unrealon-2.0.32 → unrealon-2.0.34}/LICENSE +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/README.md +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/setup.cfg +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/README.md +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/cli/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/cli/browser_cli.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/cli/cookies_cli.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/cli/interactive_mode.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/cli/main.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/core/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/core/browser_manager.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/dto/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/dto/bot_detection.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/dto/models/config.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/dto/models/core.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/dto/models/dataclasses.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/dto/models/detection.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/dto/models/enums.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/dto/models/statistics.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/managers/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/managers/captcha.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/managers/cookies.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/managers/logger_bridge.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/managers/page_wait_manager.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/managers/profile.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/managers/script_manager.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/stealth/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/stealth/bypass_techniques.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/stealth/manager.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/stealth/nodriver_stealth.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/stealth/playwright_stealth.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/stealth/scanner_tester.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-browser/src/unrealon_browser/stealth/undetected_chrome.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/config/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/config/environment.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/config/urls.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/enums/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/enums/events.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/enums/jobs.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/enums/status.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/enums/types.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/error_handling/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/error_handling/circuit_breaker.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/error_handling/error_context.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/error_handling/recovery.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/error_handling/retry.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/exceptions/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/exceptions/base.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/exceptions/communication.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/exceptions/driver.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/exceptions/proxy.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/exceptions/task.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/exceptions/validation.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/arq_context.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/arq_responses.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/authentication.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/base.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/bridge_stats.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/communication.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/connection_stats.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/driver.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/driver_details.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/logging.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/task.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/typed_responses.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/websocket/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/websocket/base.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/websocket/broadcast.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/websocket/config.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/websocket/driver.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/websocket/errors.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/websocket/heartbeat.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/websocket/logging.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/websocket/proxy.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/websocket/tasks.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/websocket/utils.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/models/websocket_session.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/monitoring/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/monitoring/alerts.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/monitoring/dashboard.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/monitoring/health_check.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/monitoring/metrics.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/utils/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/utils/time.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-core/src/unrealon_core/version.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/core_module/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/core_module/base.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/core_module/config.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/core_module/event_manager.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/core_module/protocols.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/core_module/registry.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/decorators/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/decorators/retry.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/decorators/schedule.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/decorators/task.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/decorators/timing.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/communication/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/communication/session.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/communication/websocket_client.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/core/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/core/config.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/core/driver.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/factory/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/factory/manager_factory.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/lifecycle/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/lifecycle/daemon.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/lifecycle/initialization.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/lifecycle/shutdown.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/monitoring/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/monitoring/health.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/utilities/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/utilities/logging.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/driver/utilities/serialization.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/managers/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/managers/base.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/managers/browser.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/managers/cache.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/managers/http.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/managers/logger.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/managers/proxy.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/managers/registry.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/managers/threading.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/managers/update.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/utils/__init__.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon-driver/src/unrealon_driver/utils/time.py +0 -0
- {unrealon-2.0.32 → unrealon-2.0.34}/unrealon.egg-info/dependency_links.txt +0 -0
|
@@ -5,7 +5,6 @@ include pyproject.toml
|
|
|
5
5
|
# Include all source files from submodules
|
|
6
6
|
recursive-include unrealon-core/src *.py
|
|
7
7
|
recursive-include unrealon-driver/src *.py
|
|
8
|
-
recursive-include unrealon-driver/src *.j2
|
|
9
8
|
|
|
10
9
|
# Include all browser files including stealth .py files
|
|
11
10
|
recursive-include unrealon-browser/src *.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: unrealon
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.34
|
|
4
4
|
Summary: Enterprise-grade web scraping platform with AI-powered automation and real-time orchestration capabilities
|
|
5
5
|
Author-email: UnrealOn Team <team@unrealon.com>
|
|
6
6
|
License: MIT
|
|
@@ -33,7 +33,6 @@ Requires-Dist: aiohttp>=3.8.0
|
|
|
33
33
|
Requires-Dist: httpx>=0.23.0
|
|
34
34
|
Requires-Dist: beautifulsoup4>=4.13.5
|
|
35
35
|
Requires-Dist: pydantic-yaml>=1.6.0
|
|
36
|
-
Requires-Dist: jinja2>=3.1.0
|
|
37
36
|
Requires-Dist: rich>=13.0.0
|
|
38
37
|
Requires-Dist: pyyaml>=6.0
|
|
39
38
|
Requires-Dist: python-socketio>=5.0
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "unrealon"
|
|
7
|
-
version = "2.0.
|
|
7
|
+
version = "2.0.34"
|
|
8
8
|
description = "Enterprise-grade web scraping platform with AI-powered automation and real-time orchestration capabilities"
|
|
9
9
|
authors = [
|
|
10
10
|
{name = "UnrealOn Team", email = "team@unrealon.com"}
|
|
@@ -45,7 +45,6 @@ dependencies = [
|
|
|
45
45
|
"httpx>=0.23.0",
|
|
46
46
|
"beautifulsoup4>=4.13.5",
|
|
47
47
|
"pydantic-yaml>=1.6.0",
|
|
48
|
-
"jinja2>=3.1.0",
|
|
49
48
|
|
|
50
49
|
# Additional dependencies for full functionality
|
|
51
50
|
"rich>=13.0.0",
|
|
@@ -105,7 +104,6 @@ full = ["selenium>=4.15.0", "playwright>=1.40.0", "undetected-chromedriver>=3.5.
|
|
|
105
104
|
[project.scripts]
|
|
106
105
|
unrealon = "unrealon_driver.cli:main"
|
|
107
106
|
unrealon-browser = "unrealon_browser.cli.main:main"
|
|
108
|
-
unrealon-installer = "unrealon_installer.cli:main"
|
|
109
107
|
|
|
110
108
|
[project.urls]
|
|
111
109
|
Homepage = "https://unrealon.com"
|
|
@@ -105,3 +105,24 @@ __all__ = [
|
|
|
105
105
|
"timing",
|
|
106
106
|
|
|
107
107
|
]
|
|
108
|
+
|
|
109
|
+
# Auto-register platform fixes and cleanup for Windows
|
|
110
|
+
# This ensures all parsers get proper asyncio handling automatically
|
|
111
|
+
try:
|
|
112
|
+
from .platform import apply_platform_fixes, cleanup_asyncio_resources
|
|
113
|
+
import atexit
|
|
114
|
+
import platform
|
|
115
|
+
|
|
116
|
+
# Apply fixes immediately on import
|
|
117
|
+
apply_platform_fixes()
|
|
118
|
+
|
|
119
|
+
# Register cleanup for Windows
|
|
120
|
+
if platform.system() == "Windows":
|
|
121
|
+
atexit.register(cleanup_asyncio_resources)
|
|
122
|
+
|
|
123
|
+
except ImportError:
|
|
124
|
+
# platform module not available, skip platform fixes
|
|
125
|
+
pass
|
|
126
|
+
except Exception:
|
|
127
|
+
# Any other error, fail silently to not break imports
|
|
128
|
+
pass
|
|
@@ -139,23 +139,6 @@ def _apply_linux_fixes():
|
|
|
139
139
|
return fixes
|
|
140
140
|
|
|
141
141
|
|
|
142
|
-
def get_platform_info():
|
|
143
|
-
"""Get platform information."""
|
|
144
|
-
return {
|
|
145
|
-
'platform': platform.system(),
|
|
146
|
-
'architecture': platform.architecture()[0],
|
|
147
|
-
'python_version': f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}",
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
def check_system_requirements():
|
|
152
|
-
"""Check if system meets requirements."""
|
|
153
|
-
return {
|
|
154
|
-
'python_version': sys.version_info >= (3, 9),
|
|
155
|
-
'platform_supported': platform.system() in ['Windows', 'Darwin', 'Linux']
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
|
|
159
142
|
def cleanup_asyncio_resources():
|
|
160
143
|
"""Force cleanup of all asyncio resources. Call this at program exit on Windows."""
|
|
161
144
|
if platform.system() != "Windows":
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: unrealon
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.34
|
|
4
4
|
Summary: Enterprise-grade web scraping platform with AI-powered automation and real-time orchestration capabilities
|
|
5
5
|
Author-email: UnrealOn Team <team@unrealon.com>
|
|
6
6
|
License: MIT
|
|
@@ -33,7 +33,6 @@ Requires-Dist: aiohttp>=3.8.0
|
|
|
33
33
|
Requires-Dist: httpx>=0.23.0
|
|
34
34
|
Requires-Dist: beautifulsoup4>=4.13.5
|
|
35
35
|
Requires-Dist: pydantic-yaml>=1.6.0
|
|
36
|
-
Requires-Dist: jinja2>=3.1.0
|
|
37
36
|
Requires-Dist: rich>=13.0.0
|
|
38
37
|
Requires-Dist: pyyaml>=6.0
|
|
39
38
|
Requires-Dist: python-socketio>=5.0
|
|
@@ -117,6 +117,8 @@ unrealon-driver/src/unrealon_driver/driver/monitoring/health.py
|
|
|
117
117
|
unrealon-driver/src/unrealon_driver/driver/utilities/__init__.py
|
|
118
118
|
unrealon-driver/src/unrealon_driver/driver/utilities/logging.py
|
|
119
119
|
unrealon-driver/src/unrealon_driver/driver/utilities/serialization.py
|
|
120
|
+
unrealon-driver/src/unrealon_driver/installer/__init__.py
|
|
121
|
+
unrealon-driver/src/unrealon_driver/installer/platform.py
|
|
120
122
|
unrealon-driver/src/unrealon_driver/managers/__init__.py
|
|
121
123
|
unrealon-driver/src/unrealon_driver/managers/base.py
|
|
122
124
|
unrealon-driver/src/unrealon_driver/managers/browser.py
|
|
@@ -129,14 +131,6 @@ unrealon-driver/src/unrealon_driver/managers/threading.py
|
|
|
129
131
|
unrealon-driver/src/unrealon_driver/managers/update.py
|
|
130
132
|
unrealon-driver/src/unrealon_driver/utils/__init__.py
|
|
131
133
|
unrealon-driver/src/unrealon_driver/utils/time.py
|
|
132
|
-
unrealon-driver/src/unrealon_installer/__init__.py
|
|
133
|
-
unrealon-driver/src/unrealon_installer/browser_fixes.py
|
|
134
|
-
unrealon-driver/src/unrealon_installer/core.py
|
|
135
|
-
unrealon-driver/src/unrealon_installer/platform.py
|
|
136
|
-
unrealon-driver/src/unrealon_installer/templates.py
|
|
137
|
-
unrealon-driver/src/unrealon_installer/batch_templates/quick_run.bat.j2
|
|
138
|
-
unrealon-driver/src/unrealon_installer/batch_templates/start.bat.j2
|
|
139
|
-
unrealon-driver/src/unrealon_installer/batch_templates/test.bat.j2
|
|
140
134
|
unrealon.egg-info/PKG-INFO
|
|
141
135
|
unrealon.egg-info/SOURCES.txt
|
|
142
136
|
unrealon.egg-info/dependency_links.txt
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
UnrealOn Universal Installer - Clean Edition
|
|
3
|
-
|
|
4
|
-
One function installs everything. Simple and reliable.
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
from .core import install_parser
|
|
8
|
-
from .browser_fixes import fix_browsers, diagnose_browsers, get_browser_status
|
|
9
|
-
from .platform import apply_platform_fixes, cleanup_asyncio_resources
|
|
10
|
-
|
|
11
|
-
__version__ = "2.0.0"
|
|
12
|
-
__all__ = ["install_parser", "fix_browsers", "diagnose_browsers", "get_browser_status", "apply_platform_fixes", "cleanup_asyncio_resources"]
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
@echo off
|
|
2
|
-
REM {{ parser_name }} - Quick Run
|
|
3
|
-
REM Fast execution without menus
|
|
4
|
-
|
|
5
|
-
title {{ parser_name }} Quick Run
|
|
6
|
-
|
|
7
|
-
echo.
|
|
8
|
-
echo {{ parser_name }} - Quick Run Mode
|
|
9
|
-
echo {{ "=" * (parser_name|length + 20) }}
|
|
10
|
-
echo.
|
|
11
|
-
|
|
12
|
-
REM Setup environment
|
|
13
|
-
set PYTHONIOENCODING=utf-8
|
|
14
|
-
set PLAYWRIGHT_BROWSERS_PATH=0
|
|
15
|
-
set PYTHONUNBUFFERED=1
|
|
16
|
-
|
|
17
|
-
REM Platform fixes are applied automatically by the parser itself
|
|
18
|
-
|
|
19
|
-
echo Starting quick test: 5 requests, 2 concurrent...
|
|
20
|
-
python main.py 5 2
|
|
21
|
-
|
|
22
|
-
echo.
|
|
23
|
-
echo Quick run completed!
|
|
24
|
-
pause
|
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
@echo off
|
|
2
|
-
REM {{ parser_name }} - Universal Windows Installer
|
|
3
|
-
REM Generated by UnrealOn Universal Installer v2.0.0
|
|
4
|
-
|
|
5
|
-
title {{ parser_name }} Parser
|
|
6
|
-
|
|
7
|
-
echo.
|
|
8
|
-
echo {{ parser_name }} Parser - Windows Edition
|
|
9
|
-
echo {{ "=" * (parser_name|length + 25) }}
|
|
10
|
-
echo UnrealOn Driver-based parser with universal installer
|
|
11
|
-
echo Browsers: {{ browsers_list }}
|
|
12
|
-
echo Proxy Support: {% if has_proxy %}Yes{% else %}No{% endif %}
|
|
13
|
-
echo.
|
|
14
|
-
|
|
15
|
-
REM Setup environment variables
|
|
16
|
-
set PYTHONIOENCODING=utf-8
|
|
17
|
-
set PLAYWRIGHT_BROWSERS_PATH=0
|
|
18
|
-
set PYTHONUNBUFFERED=1
|
|
19
|
-
set UNREALON_PARSER_NAME={{ parser_name }}
|
|
20
|
-
|
|
21
|
-
REM Platform fixes are applied automatically by the parser itself
|
|
22
|
-
|
|
23
|
-
:main_menu
|
|
24
|
-
echo Main Menu:
|
|
25
|
-
echo.
|
|
26
|
-
echo [1] RUN PARSER (Quick Start)
|
|
27
|
-
echo [2] SETUP SYSTEM (First Time Setup)
|
|
28
|
-
echo [3] MANAGE BROWSERS (Install/Fix Browsers)
|
|
29
|
-
echo [4] MANAGE DEPENDENCIES (Install/Update Packages)
|
|
30
|
-
echo [5] SYSTEM STATUS (Check Installation)
|
|
31
|
-
echo [6] TROUBLESHOOTING (Fix Issues)
|
|
32
|
-
echo [7] HELP and INFO
|
|
33
|
-
echo [8] EXIT
|
|
34
|
-
echo.
|
|
35
|
-
set /p choice="Enter your choice (1-8): "
|
|
36
|
-
|
|
37
|
-
if "%choice%"=="1" goto run_parser
|
|
38
|
-
if "%choice%"=="2" goto setup_system
|
|
39
|
-
if "%choice%"=="3" goto manage_browsers
|
|
40
|
-
if "%choice%"=="4" goto manage_dependencies
|
|
41
|
-
if "%choice%"=="5" goto system_status
|
|
42
|
-
if "%choice%"=="6" goto troubleshooting
|
|
43
|
-
if "%choice%"=="7" goto help_info
|
|
44
|
-
if "%choice%"=="8" goto exit_script
|
|
45
|
-
goto main_menu
|
|
46
|
-
|
|
47
|
-
:run_parser
|
|
48
|
-
echo.
|
|
49
|
-
echo PARSER EXECUTION
|
|
50
|
-
echo ================
|
|
51
|
-
|
|
52
|
-
REM Check if system is ready
|
|
53
|
-
if not exist "venv" (
|
|
54
|
-
echo ERROR: System not set up! Please run setup first.
|
|
55
|
-
set /p setup_choice="Run setup now? (Y/N): "
|
|
56
|
-
if /i "%setup_choice%"=="Y" goto setup_system
|
|
57
|
-
goto main_menu
|
|
58
|
-
)
|
|
59
|
-
|
|
60
|
-
REM Activate environment
|
|
61
|
-
call venv\Scripts\activate.bat
|
|
62
|
-
if errorlevel 1 (
|
|
63
|
-
echo ERROR: Failed to activate virtual environment
|
|
64
|
-
pause
|
|
65
|
-
goto main_menu
|
|
66
|
-
)
|
|
67
|
-
|
|
68
|
-
echo.
|
|
69
|
-
echo Choose run mode:
|
|
70
|
-
echo [1] DEFAULT RUN (parser default settings)
|
|
71
|
-
echo [2] QUICK TEST (minimal test run)
|
|
72
|
-
echo [3] CUSTOM MODE (specify your arguments)
|
|
73
|
-
echo.
|
|
74
|
-
set /p mode="Enter mode (1-3): "
|
|
75
|
-
|
|
76
|
-
if "%mode%"=="1" (
|
|
77
|
-
echo Starting default run...
|
|
78
|
-
call venv\Scripts\activate.bat && python main.py
|
|
79
|
-
)
|
|
80
|
-
if "%mode%"=="2" (
|
|
81
|
-
echo Starting quick test...
|
|
82
|
-
call venv\Scripts\activate.bat && python main.py --test
|
|
83
|
-
)
|
|
84
|
-
if "%mode%"=="3" (
|
|
85
|
-
set /p args="Enter arguments: "
|
|
86
|
-
echo Starting with custom arguments: %args%
|
|
87
|
-
call venv\Scripts\activate.bat && python main.py %args%
|
|
88
|
-
)
|
|
89
|
-
|
|
90
|
-
echo.
|
|
91
|
-
echo Parser execution completed
|
|
92
|
-
pause
|
|
93
|
-
goto main_menu
|
|
94
|
-
|
|
95
|
-
:setup_system
|
|
96
|
-
cls
|
|
97
|
-
echo.
|
|
98
|
-
echo System Setup
|
|
99
|
-
echo =============
|
|
100
|
-
echo.
|
|
101
|
-
echo Installing Python dependencies...
|
|
102
|
-
pip install -r requirements.txt
|
|
103
|
-
echo.
|
|
104
|
-
echo Installing browsers...
|
|
105
|
-
playwright install chromium
|
|
106
|
-
echo.
|
|
107
|
-
echo Setup complete!
|
|
108
|
-
echo.
|
|
109
|
-
pause
|
|
110
|
-
goto main_menu
|
|
111
|
-
|
|
112
|
-
:manage_browsers
|
|
113
|
-
cls
|
|
114
|
-
echo.
|
|
115
|
-
echo Browser Management
|
|
116
|
-
echo ==================
|
|
117
|
-
echo.
|
|
118
|
-
echo [1] Install all browsers
|
|
119
|
-
echo [2] Install Chromium only
|
|
120
|
-
echo [3] Install Firefox only
|
|
121
|
-
echo [4] Check browser status
|
|
122
|
-
echo [5] Back to main menu
|
|
123
|
-
echo.
|
|
124
|
-
set /p browser_choice="Enter choice (1-5): "
|
|
125
|
-
|
|
126
|
-
if "%browser_choice%"=="1" playwright install
|
|
127
|
-
if "%browser_choice%"=="2" playwright install chromium
|
|
128
|
-
if "%browser_choice%"=="3" playwright install firefox
|
|
129
|
-
if "%browser_choice%"=="4" (
|
|
130
|
-
echo Checking browser status...
|
|
131
|
-
playwright --version
|
|
132
|
-
python -c "from playwright.sync_api import sync_playwright; print('Browsers OK')" 2>nul || echo "Browser check failed"
|
|
133
|
-
)
|
|
134
|
-
if "%browser_choice%"=="5" goto main_menu
|
|
135
|
-
|
|
136
|
-
echo.
|
|
137
|
-
pause
|
|
138
|
-
goto main_menu
|
|
139
|
-
|
|
140
|
-
:manage_dependencies
|
|
141
|
-
cls
|
|
142
|
-
echo.
|
|
143
|
-
echo Dependency Management
|
|
144
|
-
echo =====================
|
|
145
|
-
echo.
|
|
146
|
-
echo [1] Install/Update all dependencies
|
|
147
|
-
echo [2] Install production dependencies only
|
|
148
|
-
echo [3] Check dependency status
|
|
149
|
-
echo [4] Back to main menu
|
|
150
|
-
echo.
|
|
151
|
-
set /p dep_choice="Enter choice (1-4): "
|
|
152
|
-
|
|
153
|
-
if "%dep_choice%"=="1" (
|
|
154
|
-
pip install -r requirements.txt
|
|
155
|
-
pip install --upgrade unrealon
|
|
156
|
-
)
|
|
157
|
-
if "%dep_choice%"=="2" pip install -r requirements.txt
|
|
158
|
-
if "%dep_choice%"=="3" (
|
|
159
|
-
echo Checking dependencies...
|
|
160
|
-
pip list | findstr unrealon
|
|
161
|
-
python -c "import unrealon_driver; print('UnrealOn Driver:', unrealon_driver.__version__)" 2>nul || echo "UnrealOn Driver not found"
|
|
162
|
-
)
|
|
163
|
-
if "%dep_choice%"=="4" goto main_menu
|
|
164
|
-
|
|
165
|
-
echo.
|
|
166
|
-
pause
|
|
167
|
-
goto main_menu
|
|
168
|
-
|
|
169
|
-
:system_status
|
|
170
|
-
cls
|
|
171
|
-
echo.
|
|
172
|
-
echo System Status Check
|
|
173
|
-
echo ===================
|
|
174
|
-
echo.
|
|
175
|
-
|
|
176
|
-
echo Python Version:
|
|
177
|
-
python --version
|
|
178
|
-
|
|
179
|
-
echo.
|
|
180
|
-
echo Platform Information:
|
|
181
|
-
python -c "from unrealon_installer.platform import get_platform_info; import json; print(json.dumps(get_platform_info(), indent=2))" 2>nul || echo "Platform info not available"
|
|
182
|
-
|
|
183
|
-
echo.
|
|
184
|
-
echo UnrealOn Driver Status:
|
|
185
|
-
python -c "import unrealon_driver; print('Version:', unrealon_driver.__version__)" 2>nul || echo "UnrealOn Driver not installed"
|
|
186
|
-
|
|
187
|
-
echo.
|
|
188
|
-
echo Browser Status:
|
|
189
|
-
playwright --version 2>nul || echo "Playwright not installed"
|
|
190
|
-
|
|
191
|
-
echo.
|
|
192
|
-
echo Dependencies:
|
|
193
|
-
pip list | findstr -i "unrealon playwright requests"
|
|
194
|
-
|
|
195
|
-
echo.
|
|
196
|
-
pause
|
|
197
|
-
goto main_menu
|
|
198
|
-
|
|
199
|
-
:troubleshooting
|
|
200
|
-
cls
|
|
201
|
-
echo.
|
|
202
|
-
echo Troubleshooting Guide
|
|
203
|
-
echo =====================
|
|
204
|
-
echo.
|
|
205
|
-
echo Common issues and solutions:
|
|
206
|
-
echo.
|
|
207
|
-
echo 1. "ModuleNotFoundError: No module named 'unrealon_driver'"
|
|
208
|
-
echo Solution: Run "pip install -r requirements.txt"
|
|
209
|
-
echo.
|
|
210
|
-
echo 2. "Browser not found" errors
|
|
211
|
-
echo Solution: Run "playwright install chromium"
|
|
212
|
-
echo.
|
|
213
|
-
echo 3. "Permission denied" errors
|
|
214
|
-
echo Solution: Run as Administrator
|
|
215
|
-
echo.
|
|
216
|
-
echo 4. Proxy connection issues
|
|
217
|
-
echo Solution: Check proxy configuration in proxy_config.py
|
|
218
|
-
echo.
|
|
219
|
-
echo 5. SSL certificate errors
|
|
220
|
-
echo Solution: Platform fixes are applied automatically
|
|
221
|
-
echo.
|
|
222
|
-
echo Press any key to return to main menu...
|
|
223
|
-
pause >nul
|
|
224
|
-
goto main_menu
|
|
225
|
-
|
|
226
|
-
:help_info
|
|
227
|
-
cls
|
|
228
|
-
echo.
|
|
229
|
-
echo {{ parser_name }} Parser - Help and Information
|
|
230
|
-
echo {{ "=" * (parser_name|length + 25) }}
|
|
231
|
-
echo.
|
|
232
|
-
echo This is a UnrealOn Driver-based parser with the following features:
|
|
233
|
-
echo.
|
|
234
|
-
echo - Multi-concurrent API processing
|
|
235
|
-
echo - Browser automation with Playwright
|
|
236
|
-
echo - Proxy support (if configured)
|
|
237
|
-
echo - Cross-platform compatibility
|
|
238
|
-
{% if has_persistent %}echo - Persistent monitoring mode{% endif %}
|
|
239
|
-
echo - Automatic dependency management
|
|
240
|
-
echo.
|
|
241
|
-
echo Configuration:
|
|
242
|
-
echo {{ config_json }}
|
|
243
|
-
echo.
|
|
244
|
-
echo For more information, visit: https://github.com/unrealon
|
|
245
|
-
echo.
|
|
246
|
-
echo Press any key to return to main menu...
|
|
247
|
-
pause >nul
|
|
248
|
-
goto main_menu
|
|
249
|
-
|
|
250
|
-
:exit_script
|
|
251
|
-
echo.
|
|
252
|
-
echo Thank you for using {{ parser_name }} Parser!
|
|
253
|
-
echo.
|
|
254
|
-
exit /b 0
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
@echo off
|
|
2
|
-
REM {{ parser_name }} - System Test
|
|
3
|
-
REM Comprehensive system and functionality test
|
|
4
|
-
|
|
5
|
-
title {{ parser_name }} System Test
|
|
6
|
-
|
|
7
|
-
echo.
|
|
8
|
-
echo {{ parser_name }} - System Test
|
|
9
|
-
echo {{ "=" * (parser_name|length + 15) }}
|
|
10
|
-
echo.
|
|
11
|
-
|
|
12
|
-
REM Setup environment
|
|
13
|
-
set PYTHONIOENCODING=utf-8
|
|
14
|
-
set PLAYWRIGHT_BROWSERS_PATH=0
|
|
15
|
-
set PYTHONUNBUFFERED=1
|
|
16
|
-
|
|
17
|
-
echo [1/5] Testing Python environment...
|
|
18
|
-
python --version || (
|
|
19
|
-
echo ERROR: Python not found!
|
|
20
|
-
pause
|
|
21
|
-
exit /b 1
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
echo [2/5] Testing UnrealOn Driver...
|
|
25
|
-
python -c "import unrealon_driver; print('UnrealOn Driver version:', unrealon_driver.__version__)" || (
|
|
26
|
-
echo ERROR: UnrealOn Driver not installed!
|
|
27
|
-
echo Run: pip install -r requirements.txt
|
|
28
|
-
pause
|
|
29
|
-
exit /b 1
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
echo [3/5] Testing platform compatibility...
|
|
33
|
-
python -c "from unrealon_installer.platform import get_platform_info; print('Platform OK')" || (
|
|
34
|
-
echo ERROR: Platform compatibility issues!
|
|
35
|
-
pause
|
|
36
|
-
exit /b 1
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
echo [4/5] Testing browser availability...
|
|
40
|
-
playwright --version || (
|
|
41
|
-
echo ERROR: Playwright not installed!
|
|
42
|
-
echo Run: playwright install chromium
|
|
43
|
-
pause
|
|
44
|
-
exit /b 1
|
|
45
|
-
)
|
|
46
|
-
|
|
47
|
-
echo [5/5] Running parser test...
|
|
48
|
-
python main.py 1 1
|
|
49
|
-
|
|
50
|
-
echo.
|
|
51
|
-
echo {{ "=" * (parser_name|length + 15) }}
|
|
52
|
-
echo All tests completed successfully!
|
|
53
|
-
echo {{ parser_name }} is ready to use.
|
|
54
|
-
echo {{ "=" * (parser_name|length + 15) }}
|
|
55
|
-
echo.
|
|
56
|
-
pause
|