ultima-scraper-backend 0.1.0__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.
- ultima_scraper_backend-0.1.0/.gitignore +11 -0
- ultima_scraper_backend-0.1.0/.python-version +1 -0
- ultima_scraper_backend-0.1.0/LICENSE +21 -0
- ultima_scraper_backend-0.1.0/PKG-INFO +68 -0
- ultima_scraper_backend-0.1.0/README.md +31 -0
- ultima_scraper_backend-0.1.0/pyproject.toml +54 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/__init__.py +9 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/__init__.py +0 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/app.py +978 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/dependencies.py +170 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/job_update_body.py +315 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/__init__.py +33 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/_auth_event_utils.py +60 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/account_purchases.py +397 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/admin.py +221 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/api_requests.py +187 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/auths.py +1356 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/chats.py +1951 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/cluster.py +209 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/curl_parser.py +774 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/database_browser.py +3093 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/favourite_filters.py +31 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/favourites.py +103 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/files.py +785 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/job_central_store.py +286 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/job_schemas.py +535 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/job_template_requests.py +400 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/job_views.py +629 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/jobs.py +4522 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/media.py +2114 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/mps.py +3269 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/mps_durable.py +242 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/mps_history.py +304 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/offload.py +254 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/orders.py +2786 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/proxies.py +2717 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/search_loadouts.py +429 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/server_restore.py +229 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/settings.py +1896 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/setup.py +1806 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/statistics.py +338 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/status.py +193 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/subscriptions.py +488 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/system.py +2999 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/tasks.py +318 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/users.py +3222 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/watch.py +336 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/webhooks.py +130 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/websocket.py +778 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/websocket_topics.py +129 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/ws/__init__.py +0 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/auth_events.py +336 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/backend_result.py +15 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/backend_tls.py +115 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/bootstrap.py +152 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/boundary_discovery.py +748 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/cluster.py +201 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/cluster_clients.py +237 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/config.py +802 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/config_settings_sync.py +303 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/content_persistence.py +1188 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/__init__.py +23 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/archive_prefetch.py +122 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/base_manager.py +1370 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/factory.py +311 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/helpers/__init__.py +5 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/helpers/profile_bulk.py +335 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/helpers/user_sync.py +969 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/history_compaction.py +355 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/history_retirement.py +291 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/job_history.py +372 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/job_partitions.py +398 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/job_receipts.py +218 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/managers/__init__.py +5 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/managers/postgres_manager.py +596 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/managers/sqlite_manager.py +6 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/media_selection.py +788 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/mps_definitions.py +601 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/mps_manifest.py +1795 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/mps_retry.py +680 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/orders_db.py +64 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/outbox_retention.py +304 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/receipt_retention.py +313 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/sqlite_manager.py +6 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/task_admission.py +214 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/task_building.py +126 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/threads.py +73 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/usr_factory.py +162 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/write_executor.py +1565 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/write_queue.py +2196 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/write_queue_scripts.py +130 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/write_receipts.py +450 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/write_result_cache.py +166 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/write_result_waiter.py +94 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/writer_runtime.py +408 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/deprecated_env.py +62 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/diagnostics.py +20 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/filesystem_manager.py +176 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/__init__.py +5 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/age_verification.py +10 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/background_tasks.py +37 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/ip_geolocation.py +420 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/proxy_url.py +29 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/thumbnails.py +278 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/user_refresh.py +29 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/user_resolver.py +102 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/user_summary.py +27 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/__init__.py +87 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/api_command_policy.py +14 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/archiver_process.py +105 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/auth_expansion.py +350 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/concurrency.py +257 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/dependency_rules.py +114 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/diagnostics.py +755 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/download_manager.py +1449 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/drive_selection.py +841 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/durable.py +1460 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/event_log.py +333 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/events.py +11 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/guest_route_permits.py +228 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/guest_route_rate_pool.py +124 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/guest_sessions.py +407 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/__init__.py +9 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/api_command.py +1149 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/download/__init__.py +71 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/download/handler.py +1955 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/download/results.py +317 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/download/streaming.py +490 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/download/types.py +76 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/download/utils.py +325 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/scrape/__init__.py +47 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/scrape/content.py +1246 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/scrape/events.py +145 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/scrape/handler.py +2534 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/scrape/subscriptions.py +653 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/scrape/types.py +53 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/host_capacity.py +116 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/idle.py +186 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/job_builder.py +553 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/ledger.py +3320 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/ledger_batches.py +282 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/ledger_runtime.py +1127 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/lifecycle_batcher.py +155 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/live_events.py +130 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/manager.py +789 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/materializer.py +571 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/metadata_models.py +968 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/migrate_to_priority_queues.py +337 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/models.py +1184 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/mps_attempt.py +420 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/mps_state.py +751 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/mps_tasks.py +328 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/ordinary_edit.py +755 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/path_formatter.py +370 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/payloads.py +101 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/profile_completion.py +110 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/recovery_scripts.py +73 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/replacement.py +279 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/resources.py +149 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/retention.py +250 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/routing.py +649 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/run_turnstile.py +58 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/runtime_admission.py +248 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/runtime_telemetry.py +1462 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/storage.py +3406 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/subscription_validation.py +338 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/task_chains.py +0 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/task_inputs.py +165 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/task_sources.py +99 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/templates.py +688 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/logging_utils.py +199 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/main_helper.py +12 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/manager.py +3173 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/models/__init__.py +0 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/models/backend.py +948 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/models/event_bus.py +220 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/models/events.py +11 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/models/queue.py +157 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/models/schemas.py +21 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/offload/__init__.py +1 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/offload/client.py +159 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/offload/media.py +116 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/offload/placement.py +76 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/offload/remote.py +110 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/offload/store.py +116 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/peer_tokens.py +174 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/__init__.py +22 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/api_routes.py +1087 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/client.py +77 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/delivery.py +470 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/durable_delivery.py +272 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/durable_repository.py +427 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/execution.py +379 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/extensions.py +342 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/grants.py +88 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/http_transport.py +75 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/installation.py +609 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/manifest.py +1132 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/mapping.py +249 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/outbound_policy.py +45 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/packages.py +122 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/permissions.py +65 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/platform.py +3976 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/postgres_repository.py +223 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/recovery.py +39 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/registry.py +300 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/repository.py +1226 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/runtime_owner.py +243 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/runtime_store.py +411 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/sdk.py +204 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/secrets.py +473 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/services.py +461 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/state_store.py +365 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/submission.py +181 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/supervisor.py +140 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/watcher.py +134 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis/__init__.py +0 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis/client.py +442 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis/keys.py +58 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis/queue.py +64 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis/worker_registry.py +765 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis_channels.py +89 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis_events.py +50 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/runtime_mode.py +23 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/security.py +504 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/__init__.py +1 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/archive_write_guard.py +79 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/content_previews.py +9 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/favourites_service.py +283 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/job_deletion.py +166 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/job_runtime_telemetry_sampler.py +169 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/plugin_proxies.py +299 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/profile_refresh.py +32 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/server_restore_files.py +845 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/server_restore_worker.py +18 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/server_restore_workspace.py +446 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/settings_service.py +276 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/statistics_activity_service.py +503 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/statistics_seasonality_service.py +260 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/statistics_service.py +1486 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/terminal_job_reconciler.py +272 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/user_manager.py +116 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/user_stats_cache.py +56 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/webhook_delivery.py +245 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/storage_config_propagation.py +303 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/storage_manager.py +72 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/type_protocols.py +148 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/__init__.py +3 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/backend_registry.py +569 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/event_subscriber.py +511 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/job_system/handlers/__init__.py +7 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/redis_service.py +349 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/system_stats.py +0 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/system_stats_reporter.py +459 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_scraper_renamer/__init__.py +0 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_scraper_renamer/py.typed +0 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_scraper_renamer/reformat.py +40 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/usapi_initializer.py +917 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/user_manager.py +10 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/webhook_config.py +130 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/websocket_actions.py +1114 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/workers/__init__.py +0 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/workers/readiness.py +53 -0
- ultima_scraper_backend-0.1.0/ultima_scraper_backend/workers/worker_pool.py +3412 -0
- ultima_scraper_backend-0.1.0/uv.lock +1784 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.14
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 UltimaScraper Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: ultima-scraper-backend
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: USR backend API, control plane, and worker service
|
|
5
|
+
Project-URL: Homepage, https://github.com/UltimaHoarder/UltimaScraperBackend
|
|
6
|
+
Project-URL: Repository, https://github.com/UltimaHoarder/UltimaScraperBackend
|
|
7
|
+
Project-URL: Issues, https://github.com/UltimaHoarder/UltimaScraperBackend/issues
|
|
8
|
+
Author-email: UltimaHoarder <21285176+UltimaHoarder@users.noreply.github.com>
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Requires-Python: <3.15,>=3.14
|
|
12
|
+
Requires-Dist: alembic<2,>=1.18
|
|
13
|
+
Requires-Dist: anyio<5,>=4.12
|
|
14
|
+
Requires-Dist: apscheduler<4,>=3.11
|
|
15
|
+
Requires-Dist: asyncpg<1,>=0.31
|
|
16
|
+
Requires-Dist: fastapi<0.136,>=0.135
|
|
17
|
+
Requires-Dist: greenlet<4,>=3.2
|
|
18
|
+
Requires-Dist: httpx<0.29,>=0.28
|
|
19
|
+
Requires-Dist: jsonschema<5,>=4.23
|
|
20
|
+
Requires-Dist: packaging<27,>=24
|
|
21
|
+
Requires-Dist: platformdirs>=4.5
|
|
22
|
+
Requires-Dist: psutil<8,>=7.2
|
|
23
|
+
Requires-Dist: psycopg[binary]<4,>=3.3
|
|
24
|
+
Requires-Dist: pydantic[email]<3,>=2.12
|
|
25
|
+
Requires-Dist: python-multipart<0.1,>=0.0.22
|
|
26
|
+
Requires-Dist: redis[hiredis]<7.0.0,>=6.2.0
|
|
27
|
+
Requires-Dist: sqlmodel>=0.0.24
|
|
28
|
+
Requires-Dist: ujson<6,>=5
|
|
29
|
+
Requires-Dist: ultima-scraper-api<4,>=3.0.0b5
|
|
30
|
+
Requires-Dist: ultima-scraper-core<1,>=0.1
|
|
31
|
+
Requires-Dist: ultima-scraper-db-archive<1,>=0.2
|
|
32
|
+
Requires-Dist: ultima-scraper-db<1,>=0.5
|
|
33
|
+
Requires-Dist: uvicorn[standard]<0.42,>=0.41
|
|
34
|
+
Requires-Dist: uvloop>=0.21; sys_platform != 'win32'
|
|
35
|
+
Requires-Dist: websockets<16,>=15
|
|
36
|
+
Description-Content-Type: text/markdown
|
|
37
|
+
|
|
38
|
+
# UltimaScraperBackend
|
|
39
|
+
|
|
40
|
+
`UltimaScraperBackend` is the FastAPI control plane and worker-service package
|
|
41
|
+
used by UltimaScraper (USR). Its published distribution is
|
|
42
|
+
`ultima-scraper-backend` and its Python import is `ultima_scraper_backend`.
|
|
43
|
+
|
|
44
|
+
The package owns USR's generic API, job execution, plugin runtime, queue
|
|
45
|
+
coordination, and archive-service integration. Product launchers, WebUI
|
|
46
|
+
code, Compose files, and end-to-end tests remain in the USR repository.
|
|
47
|
+
|
|
48
|
+
## Ownership boundary
|
|
49
|
+
|
|
50
|
+
- This package may depend on UltimaScraperCore, UltimaScraperDB, and
|
|
51
|
+
UltimaScraperDBArchive.
|
|
52
|
+
- It must remain unaware of OnlySiterips and the Degen backend/database.
|
|
53
|
+
- OSR reaches the running USR service over its archive API; it does not import
|
|
54
|
+
this package.
|
|
55
|
+
|
|
56
|
+
## Development
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
uv sync
|
|
60
|
+
uv run python -c "import ultima_scraper_backend"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
USR keeps the integration test suite that exercises this package in the full
|
|
64
|
+
application runtime.
|
|
65
|
+
|
|
66
|
+
Set `USR_PLUGINS_DIR` to an explicit runtime catalog. For source-checkout
|
|
67
|
+
development, USR sets `USR_REPOSITORY_ROOT` and the backend resolves the
|
|
68
|
+
catalog as `<repository-root>/plugins`.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# UltimaScraperBackend
|
|
2
|
+
|
|
3
|
+
`UltimaScraperBackend` is the FastAPI control plane and worker-service package
|
|
4
|
+
used by UltimaScraper (USR). Its published distribution is
|
|
5
|
+
`ultima-scraper-backend` and its Python import is `ultima_scraper_backend`.
|
|
6
|
+
|
|
7
|
+
The package owns USR's generic API, job execution, plugin runtime, queue
|
|
8
|
+
coordination, and archive-service integration. Product launchers, WebUI
|
|
9
|
+
code, Compose files, and end-to-end tests remain in the USR repository.
|
|
10
|
+
|
|
11
|
+
## Ownership boundary
|
|
12
|
+
|
|
13
|
+
- This package may depend on UltimaScraperCore, UltimaScraperDB, and
|
|
14
|
+
UltimaScraperDBArchive.
|
|
15
|
+
- It must remain unaware of OnlySiterips and the Degen backend/database.
|
|
16
|
+
- OSR reaches the running USR service over its archive API; it does not import
|
|
17
|
+
this package.
|
|
18
|
+
|
|
19
|
+
## Development
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
uv sync
|
|
23
|
+
uv run python -c "import ultima_scraper_backend"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
USR keeps the integration test suite that exercises this package in the full
|
|
27
|
+
application runtime.
|
|
28
|
+
|
|
29
|
+
Set `USR_PLUGINS_DIR` to an explicit runtime catalog. For source-checkout
|
|
30
|
+
development, USR sets `USR_REPOSITORY_ROOT` and the backend resolves the
|
|
31
|
+
catalog as `<repository-root>/plugins`.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "ultima-scraper-backend"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "USR backend API, control plane, and worker service"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
license = "MIT"
|
|
7
|
+
requires-python = ">=3.14,<3.15"
|
|
8
|
+
authors = [
|
|
9
|
+
{ name = "UltimaHoarder", email = "21285176+UltimaHoarder@users.noreply.github.com" },
|
|
10
|
+
]
|
|
11
|
+
dependencies = [
|
|
12
|
+
"anyio>=4.12,<5",
|
|
13
|
+
"ujson>=5,<6",
|
|
14
|
+
"fastapi>=0.135,<0.136",
|
|
15
|
+
"uvicorn[standard]>=0.41,<0.42",
|
|
16
|
+
"httpx>=0.28,<0.29",
|
|
17
|
+
"python-multipart>=0.0.22,<0.1",
|
|
18
|
+
"pydantic[email]>=2.12,<3",
|
|
19
|
+
"redis[hiredis]>=6.2.0,<7.0.0",
|
|
20
|
+
"ultima-scraper-api>=3.0.0b5,<4",
|
|
21
|
+
"ultima-scraper-core>=0.1,<1",
|
|
22
|
+
"ultima-scraper-db>=0.5,<1",
|
|
23
|
+
"ultima-scraper-db-archive>=0.2,<1",
|
|
24
|
+
"sqlmodel>=0.0.24",
|
|
25
|
+
"apscheduler>=3.11,<4",
|
|
26
|
+
"packaging>=24,<27",
|
|
27
|
+
"jsonschema>=4.23,<5",
|
|
28
|
+
"platformdirs>=4.5",
|
|
29
|
+
"psutil>=7.2,<8",
|
|
30
|
+
"websockets>=15,<16",
|
|
31
|
+
"alembic>=1.18,<2",
|
|
32
|
+
"asyncpg>=0.31,<1",
|
|
33
|
+
"psycopg[binary]>=3.3,<4",
|
|
34
|
+
"greenlet>=3.2,<4",
|
|
35
|
+
"uvloop>=0.21; sys_platform != 'win32'",
|
|
36
|
+
]
|
|
37
|
+
|
|
38
|
+
[project.urls]
|
|
39
|
+
Homepage = "https://github.com/UltimaHoarder/UltimaScraperBackend"
|
|
40
|
+
Repository = "https://github.com/UltimaHoarder/UltimaScraperBackend"
|
|
41
|
+
Issues = "https://github.com/UltimaHoarder/UltimaScraperBackend/issues"
|
|
42
|
+
|
|
43
|
+
[build-system]
|
|
44
|
+
requires = ["hatchling"]
|
|
45
|
+
build-backend = "hatchling.build"
|
|
46
|
+
|
|
47
|
+
[tool.hatch.build.targets.wheel]
|
|
48
|
+
packages = ["ultima_scraper_backend"]
|
|
49
|
+
|
|
50
|
+
[tool.uv.sources]
|
|
51
|
+
ultima-scraper-core = { git = "https://github.com/UltimaHoarder/UltimaScraper.git", subdirectory = "src/UltimaScraperCore", branch = "main" }
|
|
52
|
+
ultima-scraper-api = { git = "https://github.com/UltimaHoarder/UltimaScraperAPI.git", branch = "main" }
|
|
53
|
+
ultima-scraper-db = { git = "https://github.com/DATAHOARDERS/UltimaScraperDB.git", branch = "main" }
|
|
54
|
+
ultima-scraper-db-archive = { git = "https://github.com/UltimaHoarder/UltimaScraperDBArchive.git", branch = "main" }
|
|
File without changes
|