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.
Files changed (265) hide show
  1. ultima_scraper_backend-0.1.0/.gitignore +11 -0
  2. ultima_scraper_backend-0.1.0/.python-version +1 -0
  3. ultima_scraper_backend-0.1.0/LICENSE +21 -0
  4. ultima_scraper_backend-0.1.0/PKG-INFO +68 -0
  5. ultima_scraper_backend-0.1.0/README.md +31 -0
  6. ultima_scraper_backend-0.1.0/pyproject.toml +54 -0
  7. ultima_scraper_backend-0.1.0/ultima_scraper_backend/__init__.py +9 -0
  8. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/__init__.py +0 -0
  9. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/app.py +978 -0
  10. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/dependencies.py +170 -0
  11. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/job_update_body.py +315 -0
  12. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/__init__.py +33 -0
  13. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/_auth_event_utils.py +60 -0
  14. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/account_purchases.py +397 -0
  15. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/admin.py +221 -0
  16. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/api_requests.py +187 -0
  17. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/auths.py +1356 -0
  18. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/chats.py +1951 -0
  19. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/cluster.py +209 -0
  20. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/curl_parser.py +774 -0
  21. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/database_browser.py +3093 -0
  22. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/favourite_filters.py +31 -0
  23. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/favourites.py +103 -0
  24. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/files.py +785 -0
  25. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/job_central_store.py +286 -0
  26. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/job_schemas.py +535 -0
  27. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/job_template_requests.py +400 -0
  28. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/job_views.py +629 -0
  29. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/jobs.py +4522 -0
  30. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/media.py +2114 -0
  31. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/mps.py +3269 -0
  32. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/mps_durable.py +242 -0
  33. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/mps_history.py +304 -0
  34. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/offload.py +254 -0
  35. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/orders.py +2786 -0
  36. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/proxies.py +2717 -0
  37. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/search_loadouts.py +429 -0
  38. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/server_restore.py +229 -0
  39. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/settings.py +1896 -0
  40. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/setup.py +1806 -0
  41. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/statistics.py +338 -0
  42. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/status.py +193 -0
  43. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/subscriptions.py +488 -0
  44. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/system.py +2999 -0
  45. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/tasks.py +318 -0
  46. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/users.py +3222 -0
  47. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/watch.py +336 -0
  48. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/webhooks.py +130 -0
  49. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/websocket.py +778 -0
  50. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/routes/websocket_topics.py +129 -0
  51. ultima_scraper_backend-0.1.0/ultima_scraper_backend/api/ws/__init__.py +0 -0
  52. ultima_scraper_backend-0.1.0/ultima_scraper_backend/auth_events.py +336 -0
  53. ultima_scraper_backend-0.1.0/ultima_scraper_backend/backend_result.py +15 -0
  54. ultima_scraper_backend-0.1.0/ultima_scraper_backend/backend_tls.py +115 -0
  55. ultima_scraper_backend-0.1.0/ultima_scraper_backend/bootstrap.py +152 -0
  56. ultima_scraper_backend-0.1.0/ultima_scraper_backend/boundary_discovery.py +748 -0
  57. ultima_scraper_backend-0.1.0/ultima_scraper_backend/cluster.py +201 -0
  58. ultima_scraper_backend-0.1.0/ultima_scraper_backend/cluster_clients.py +237 -0
  59. ultima_scraper_backend-0.1.0/ultima_scraper_backend/config.py +802 -0
  60. ultima_scraper_backend-0.1.0/ultima_scraper_backend/config_settings_sync.py +303 -0
  61. ultima_scraper_backend-0.1.0/ultima_scraper_backend/content_persistence.py +1188 -0
  62. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/__init__.py +23 -0
  63. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/archive_prefetch.py +122 -0
  64. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/base_manager.py +1370 -0
  65. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/factory.py +311 -0
  66. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/helpers/__init__.py +5 -0
  67. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/helpers/profile_bulk.py +335 -0
  68. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/helpers/user_sync.py +969 -0
  69. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/history_compaction.py +355 -0
  70. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/history_retirement.py +291 -0
  71. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/job_history.py +372 -0
  72. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/job_partitions.py +398 -0
  73. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/job_receipts.py +218 -0
  74. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/managers/__init__.py +5 -0
  75. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/managers/postgres_manager.py +596 -0
  76. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/managers/sqlite_manager.py +6 -0
  77. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/media_selection.py +788 -0
  78. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/mps_definitions.py +601 -0
  79. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/mps_manifest.py +1795 -0
  80. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/mps_retry.py +680 -0
  81. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/orders_db.py +64 -0
  82. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/outbox_retention.py +304 -0
  83. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/receipt_retention.py +313 -0
  84. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/sqlite_manager.py +6 -0
  85. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/task_admission.py +214 -0
  86. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/task_building.py +126 -0
  87. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/threads.py +73 -0
  88. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/usr_factory.py +162 -0
  89. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/write_executor.py +1565 -0
  90. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/write_queue.py +2196 -0
  91. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/write_queue_scripts.py +130 -0
  92. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/write_receipts.py +450 -0
  93. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/write_result_cache.py +166 -0
  94. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/write_result_waiter.py +94 -0
  95. ultima_scraper_backend-0.1.0/ultima_scraper_backend/database/writer_runtime.py +408 -0
  96. ultima_scraper_backend-0.1.0/ultima_scraper_backend/deprecated_env.py +62 -0
  97. ultima_scraper_backend-0.1.0/ultima_scraper_backend/diagnostics.py +20 -0
  98. ultima_scraper_backend-0.1.0/ultima_scraper_backend/filesystem_manager.py +176 -0
  99. ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/__init__.py +5 -0
  100. ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/age_verification.py +10 -0
  101. ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/background_tasks.py +37 -0
  102. ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/ip_geolocation.py +420 -0
  103. ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/proxy_url.py +29 -0
  104. ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/thumbnails.py +278 -0
  105. ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/user_refresh.py +29 -0
  106. ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/user_resolver.py +102 -0
  107. ultima_scraper_backend-0.1.0/ultima_scraper_backend/helpers/user_summary.py +27 -0
  108. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/__init__.py +87 -0
  109. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/api_command_policy.py +14 -0
  110. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/archiver_process.py +105 -0
  111. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/auth_expansion.py +350 -0
  112. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/concurrency.py +257 -0
  113. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/dependency_rules.py +114 -0
  114. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/diagnostics.py +755 -0
  115. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/download_manager.py +1449 -0
  116. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/drive_selection.py +841 -0
  117. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/durable.py +1460 -0
  118. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/event_log.py +333 -0
  119. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/events.py +11 -0
  120. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/guest_route_permits.py +228 -0
  121. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/guest_route_rate_pool.py +124 -0
  122. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/guest_sessions.py +407 -0
  123. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/__init__.py +9 -0
  124. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/api_command.py +1149 -0
  125. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/download/__init__.py +71 -0
  126. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/download/handler.py +1955 -0
  127. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/download/results.py +317 -0
  128. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/download/streaming.py +490 -0
  129. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/download/types.py +76 -0
  130. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/download/utils.py +325 -0
  131. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/scrape/__init__.py +47 -0
  132. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/scrape/content.py +1246 -0
  133. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/scrape/events.py +145 -0
  134. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/scrape/handler.py +2534 -0
  135. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/scrape/subscriptions.py +653 -0
  136. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/handlers/scrape/types.py +53 -0
  137. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/host_capacity.py +116 -0
  138. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/idle.py +186 -0
  139. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/job_builder.py +553 -0
  140. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/ledger.py +3320 -0
  141. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/ledger_batches.py +282 -0
  142. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/ledger_runtime.py +1127 -0
  143. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/lifecycle_batcher.py +155 -0
  144. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/live_events.py +130 -0
  145. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/manager.py +789 -0
  146. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/materializer.py +571 -0
  147. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/metadata_models.py +968 -0
  148. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/migrate_to_priority_queues.py +337 -0
  149. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/models.py +1184 -0
  150. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/mps_attempt.py +420 -0
  151. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/mps_state.py +751 -0
  152. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/mps_tasks.py +328 -0
  153. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/ordinary_edit.py +755 -0
  154. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/path_formatter.py +370 -0
  155. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/payloads.py +101 -0
  156. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/profile_completion.py +110 -0
  157. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/recovery_scripts.py +73 -0
  158. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/replacement.py +279 -0
  159. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/resources.py +149 -0
  160. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/retention.py +250 -0
  161. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/routing.py +649 -0
  162. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/run_turnstile.py +58 -0
  163. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/runtime_admission.py +248 -0
  164. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/runtime_telemetry.py +1462 -0
  165. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/storage.py +3406 -0
  166. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/subscription_validation.py +338 -0
  167. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/task_chains.py +0 -0
  168. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/task_inputs.py +165 -0
  169. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/task_sources.py +99 -0
  170. ultima_scraper_backend-0.1.0/ultima_scraper_backend/job_system/templates.py +688 -0
  171. ultima_scraper_backend-0.1.0/ultima_scraper_backend/logging_utils.py +199 -0
  172. ultima_scraper_backend-0.1.0/ultima_scraper_backend/main_helper.py +12 -0
  173. ultima_scraper_backend-0.1.0/ultima_scraper_backend/manager.py +3173 -0
  174. ultima_scraper_backend-0.1.0/ultima_scraper_backend/models/__init__.py +0 -0
  175. ultima_scraper_backend-0.1.0/ultima_scraper_backend/models/backend.py +948 -0
  176. ultima_scraper_backend-0.1.0/ultima_scraper_backend/models/event_bus.py +220 -0
  177. ultima_scraper_backend-0.1.0/ultima_scraper_backend/models/events.py +11 -0
  178. ultima_scraper_backend-0.1.0/ultima_scraper_backend/models/queue.py +157 -0
  179. ultima_scraper_backend-0.1.0/ultima_scraper_backend/models/schemas.py +21 -0
  180. ultima_scraper_backend-0.1.0/ultima_scraper_backend/offload/__init__.py +1 -0
  181. ultima_scraper_backend-0.1.0/ultima_scraper_backend/offload/client.py +159 -0
  182. ultima_scraper_backend-0.1.0/ultima_scraper_backend/offload/media.py +116 -0
  183. ultima_scraper_backend-0.1.0/ultima_scraper_backend/offload/placement.py +76 -0
  184. ultima_scraper_backend-0.1.0/ultima_scraper_backend/offload/remote.py +110 -0
  185. ultima_scraper_backend-0.1.0/ultima_scraper_backend/offload/store.py +116 -0
  186. ultima_scraper_backend-0.1.0/ultima_scraper_backend/peer_tokens.py +174 -0
  187. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/__init__.py +22 -0
  188. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/api_routes.py +1087 -0
  189. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/client.py +77 -0
  190. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/delivery.py +470 -0
  191. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/durable_delivery.py +272 -0
  192. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/durable_repository.py +427 -0
  193. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/execution.py +379 -0
  194. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/extensions.py +342 -0
  195. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/grants.py +88 -0
  196. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/http_transport.py +75 -0
  197. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/installation.py +609 -0
  198. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/manifest.py +1132 -0
  199. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/mapping.py +249 -0
  200. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/outbound_policy.py +45 -0
  201. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/packages.py +122 -0
  202. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/permissions.py +65 -0
  203. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/platform.py +3976 -0
  204. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/postgres_repository.py +223 -0
  205. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/recovery.py +39 -0
  206. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/registry.py +300 -0
  207. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/repository.py +1226 -0
  208. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/runtime_owner.py +243 -0
  209. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/runtime_store.py +411 -0
  210. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/sdk.py +204 -0
  211. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/secrets.py +473 -0
  212. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/services.py +461 -0
  213. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/state_store.py +365 -0
  214. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/submission.py +181 -0
  215. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/supervisor.py +140 -0
  216. ultima_scraper_backend-0.1.0/ultima_scraper_backend/plugin_system/watcher.py +134 -0
  217. ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis/__init__.py +0 -0
  218. ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis/client.py +442 -0
  219. ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis/keys.py +58 -0
  220. ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis/queue.py +64 -0
  221. ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis/worker_registry.py +765 -0
  222. ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis_channels.py +89 -0
  223. ultima_scraper_backend-0.1.0/ultima_scraper_backend/redis_events.py +50 -0
  224. ultima_scraper_backend-0.1.0/ultima_scraper_backend/runtime_mode.py +23 -0
  225. ultima_scraper_backend-0.1.0/ultima_scraper_backend/security.py +504 -0
  226. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/__init__.py +1 -0
  227. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/archive_write_guard.py +79 -0
  228. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/content_previews.py +9 -0
  229. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/favourites_service.py +283 -0
  230. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/job_deletion.py +166 -0
  231. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/job_runtime_telemetry_sampler.py +169 -0
  232. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/plugin_proxies.py +299 -0
  233. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/profile_refresh.py +32 -0
  234. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/server_restore_files.py +845 -0
  235. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/server_restore_worker.py +18 -0
  236. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/server_restore_workspace.py +446 -0
  237. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/settings_service.py +276 -0
  238. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/statistics_activity_service.py +503 -0
  239. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/statistics_seasonality_service.py +260 -0
  240. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/statistics_service.py +1486 -0
  241. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/terminal_job_reconciler.py +272 -0
  242. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/user_manager.py +116 -0
  243. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/user_stats_cache.py +56 -0
  244. ultima_scraper_backend-0.1.0/ultima_scraper_backend/services/webhook_delivery.py +245 -0
  245. ultima_scraper_backend-0.1.0/ultima_scraper_backend/storage_config_propagation.py +303 -0
  246. ultima_scraper_backend-0.1.0/ultima_scraper_backend/storage_manager.py +72 -0
  247. ultima_scraper_backend-0.1.0/ultima_scraper_backend/type_protocols.py +148 -0
  248. ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/__init__.py +3 -0
  249. ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/backend_registry.py +569 -0
  250. ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/event_subscriber.py +511 -0
  251. ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/job_system/handlers/__init__.py +7 -0
  252. ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/redis_service.py +349 -0
  253. ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/system_stats.py +0 -0
  254. ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_control/system_stats_reporter.py +459 -0
  255. ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_scraper_renamer/__init__.py +0 -0
  256. ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_scraper_renamer/py.typed +0 -0
  257. ultima_scraper_backend-0.1.0/ultima_scraper_backend/ultima_scraper_renamer/reformat.py +40 -0
  258. ultima_scraper_backend-0.1.0/ultima_scraper_backend/usapi_initializer.py +917 -0
  259. ultima_scraper_backend-0.1.0/ultima_scraper_backend/user_manager.py +10 -0
  260. ultima_scraper_backend-0.1.0/ultima_scraper_backend/webhook_config.py +130 -0
  261. ultima_scraper_backend-0.1.0/ultima_scraper_backend/websocket_actions.py +1114 -0
  262. ultima_scraper_backend-0.1.0/ultima_scraper_backend/workers/__init__.py +0 -0
  263. ultima_scraper_backend-0.1.0/ultima_scraper_backend/workers/readiness.py +53 -0
  264. ultima_scraper_backend-0.1.0/ultima_scraper_backend/workers/worker_pool.py +3412 -0
  265. ultima_scraper_backend-0.1.0/uv.lock +1784 -0
@@ -0,0 +1,11 @@
1
+ .venv/
2
+ __pycache__/
3
+ *.py[cod]
4
+ .pytest_cache/
5
+ .ruff_cache/
6
+ .coverage
7
+ htmlcov/
8
+ dist/
9
+ build/
10
+ *.egg-info/
11
+ logs/
@@ -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" }
@@ -0,0 +1,9 @@
1
+ """Backend services for UltimaScraper."""
2
+
3
+ from .manager import AccountRecord, BackendManager, BackendResult
4
+
5
+ __all__ = [
6
+ "AccountRecord",
7
+ "BackendManager",
8
+ "BackendResult",
9
+ ]