kryten-webqueue 0.35.5__tar.gz → 0.35.7__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.
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/CHANGELOG.md +20 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/PKG-INFO +1 -1
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/pipeline.py +20 -1
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/queue/ordering.py +14 -1
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/pyproject.toml +1 -1
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/.github/workflows/gitleaks.yml +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/.github/workflows/python-publish.yml +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/.github/workflows/release.yml +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/.gitignore +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/.gitleaks.toml +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/.pre-commit-config.yaml +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/AGENT-WORKFLOW-GUIDE.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/README.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/config.example.json +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/deploy/kryten-webqueue.service +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/deploy/nginx-queue.conf +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/IMPLEMENTATION_SPEC.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/IMPL_API_GATE.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/IMPL_ECONOMY.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/IMPL_KRYTEN_PY.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/IMPL_ROBOT.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/Kryten-Economy Service Quality Survey Report at v0.13.0.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/Kryten-Webqueue Service Quality Survey Report at v0.27.1.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/Log for incorrect promo insertion problem.txt +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/PLAN_PRESENCE_AND_PROMOS.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/PRE_PLAN_GAPS.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/PRODUCT_PLAN.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/SPEC_CATALOG_ENRICHMENT_PIPELINE.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/SPEC_EMOTE_REHOST.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/SPEC_JOBS_AND_BROWSE.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/UX_POLISH_PLAN.md +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/__main__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/api_gate/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/api_gate/client.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/app.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/auth/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/auth/otp.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/auth/rate_limit.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/auth/session.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/db/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/db/_catalog.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/db/_connection.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/db/_enrichment.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/db/_feedback.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/db/_people.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/db/_playlists.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/db/_queue.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/db/_watchlist.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/classify.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/normalise.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/providers.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/report.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/steps/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/steps/art.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/steps/categories.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/steps/meta.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/steps/sync.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/steps/tags.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/steps/title.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/images.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/mediacms.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/sync.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/config.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/cmsutils/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/cmsutils/_common.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/cmsutils/enrichmeta.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/cmsutils/enrichtitles.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/cmsutils/enrichtv.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/cmsutils/fetchurls.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/cmsutils/motdposters.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/cmsutils/playedmovies.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/ytpipe/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/ytpipe/downloader.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/jobs/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/jobs/fetchurls_auth.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/jobs/job_scheduler.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/jobs/manager.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/jobs/rehost_emotes.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/jobs/tasks.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/logging_config.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/playlists/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/playlists/bulk_add.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/playlists/fire.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/playlists/importer.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/playlists/ordering.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/playlists/scheduler.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/promos/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/promos/director.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/queue/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/queue/completion.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/queue/poller.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/queue/presence.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/queue/race_poller.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/queue/shadow.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/admin_catalog.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/admin_feedback.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/admin_job_schedules.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/admin_jobs.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/admin_moderation.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/admin_playlists.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/admin_promos.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/admin_queue.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/admin_schedules.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/auth.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/catalog.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/feedback.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/pages.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/queue.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/user.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/static/css/main.css +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/static/js/admin-playlists.js +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/static/js/admin-promos.js +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/static/js/admin-queue-mgmt.js +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/static/js/admin-schedules.js +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/static/js/admin.js +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/static/js/main.js +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/admin/index.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/admin/playlists.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/admin/promos.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/admin/queue_mgmt.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/admin/schedules.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/auth/login.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/base.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/catalog/browse.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/catalog/item_detail.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/catalog/item_not_found.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/feedback/index.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/queue/index.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/race.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/user/dashboard.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/user/my_list.html +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/ws/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/ws/handler.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/ws/manager.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/__init__.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_classify.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_config_persistence.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_feedback.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_fetchurls_sharepoint.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_people_facets.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_phase1.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_phase2_jobs.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_phase3_jobs.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_phase4_live_fixes.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_playlist_import.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_presence_refund.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_promo_director.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_promo_pool_exclusion.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_providers.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_queue_announce.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_race_poller.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_recently_played_hide.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_save_results_to_playlist.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_schedule_lock.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_search_facets.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_title_normalization.py +0 -0
- {kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/tests/test_watchlist.py +0 -0
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.35.7] - 2026-08-14
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **INFO-level logging for enrichment pipeline.** The catalog enrichment pipeline
|
|
10
|
+
now logs INFO-level messages when starting, processing each step, and completing,
|
|
11
|
+
including counts of items found, processed, changed, skipped, and any errors.
|
|
12
|
+
Makes it much easier to monitor and debug enrichment job progress.
|
|
13
|
+
|
|
14
|
+
## [0.35.6] - 2026-08-14
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- **Better error messages for deleted media items.** When attempting to queue
|
|
19
|
+
an item that no longer exists in MediaCMS (has been deleted), users now see
|
|
20
|
+
"Item no longer available (media may have been deleted)" instead of the
|
|
21
|
+
generic httpx error message "Expected HTTP 200 OK, not 500 Internal Server
|
|
22
|
+
Error". Also added specific handling for 404 responses and attempts to
|
|
23
|
+
extract short error messages from CyTube responses.
|
|
24
|
+
|
|
5
25
|
## [0.35.5] - 2026-08-14
|
|
6
26
|
|
|
7
27
|
### Fixed
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/pipeline.py
RENAMED
|
@@ -45,6 +45,11 @@ class CatalogEnrichmentPipeline:
|
|
|
45
45
|
if unknown:
|
|
46
46
|
raise ValueError(f"Unknown steps: {unknown}")
|
|
47
47
|
|
|
48
|
+
logger.info(
|
|
49
|
+
"[enrichment] Starting pipeline: steps=%s tokens=%s force=%s dry_run=%s limit=%s",
|
|
50
|
+
steps_to_run, "specific" if tokens else "all", force, dry_run, limit
|
|
51
|
+
)
|
|
52
|
+
|
|
48
53
|
start = time.monotonic()
|
|
49
54
|
by_step: dict[str, StepResult] = {}
|
|
50
55
|
total_items = 0
|
|
@@ -66,6 +71,10 @@ class CatalogEnrichmentPipeline:
|
|
|
66
71
|
rows = await self._db.get_catalog_for_enrichment(
|
|
67
72
|
step=step_name, tokens=tokens, force=force, limit=limit
|
|
68
73
|
)
|
|
74
|
+
logger.info(
|
|
75
|
+
"[enrichment] step=%s found %d item(s) (force=%s)",
|
|
76
|
+
step_name, len(rows), force
|
|
77
|
+
)
|
|
69
78
|
if not rows:
|
|
70
79
|
by_step[step_name] = StepResult(skipped=0)
|
|
71
80
|
continue
|
|
@@ -129,13 +138,23 @@ class CatalogEnrichmentPipeline:
|
|
|
129
138
|
r = StepResult()
|
|
130
139
|
|
|
131
140
|
by_step[step_name] = r
|
|
141
|
+
logger.info(
|
|
142
|
+
"[enrichment] step=%s complete: processed=%d changed=%d skipped=%d errors=%d",
|
|
143
|
+
step_name, r.processed, r.changed, r.skipped, len(r.errors)
|
|
144
|
+
)
|
|
132
145
|
await self._report_progress(ctx, step_name, r)
|
|
133
146
|
|
|
147
|
+
elapsed = time.monotonic() - start
|
|
148
|
+
logger.info(
|
|
149
|
+
"[enrichment] Pipeline complete in %.1fs: %d item(s), %d step(s)",
|
|
150
|
+
elapsed, total_items, len(steps_to_run)
|
|
151
|
+
)
|
|
152
|
+
|
|
134
153
|
return EnrichmentReport(
|
|
135
154
|
steps_run=steps_to_run,
|
|
136
155
|
total_items=total_items,
|
|
137
156
|
by_step=by_step,
|
|
138
|
-
elapsed_sec=
|
|
157
|
+
elapsed_sec=elapsed,
|
|
139
158
|
dry_run=dry_run,
|
|
140
159
|
)
|
|
141
160
|
|
|
@@ -21,7 +21,20 @@ def _add_failure_reason(
|
|
|
21
21
|
return str(detail)
|
|
22
22
|
except Exception:
|
|
23
23
|
pass
|
|
24
|
-
|
|
24
|
+
# Check for common error scenarios
|
|
25
|
+
if exc.response.status_code == 500:
|
|
26
|
+
# CyTube 500 often means the media doesn't exist in MediaCMS
|
|
27
|
+
return "Item no longer available (media may have been deleted)"
|
|
28
|
+
if exc.response.status_code == 404:
|
|
29
|
+
return "Media not found"
|
|
30
|
+
# Try to extract text from response body
|
|
31
|
+
try:
|
|
32
|
+
text = exc.response.text
|
|
33
|
+
if text and len(text) < 200: # Only use short error messages
|
|
34
|
+
return f"Playlist add failed: {text}"
|
|
35
|
+
except Exception:
|
|
36
|
+
pass
|
|
37
|
+
return f"Playlist add failed (HTTP {exc.response.status_code})"
|
|
25
38
|
if add_result is not None:
|
|
26
39
|
return str(add_result.get("error", "Failed to add to playlist"))
|
|
27
40
|
return "Failed to add to playlist"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/docs/Log for incorrect promo insertion problem.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/classify.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/normalise.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/providers.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/report.py
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/steps/art.py
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/steps/meta.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/steps/sync.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/steps/tags.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/catalog/enrichment/steps/title.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/cmsutils/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/cmsutils/_common.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/cmsutils/enrichtv.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/cmsutils/fetchurls.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/ytpipe/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/integrations/ytpipe/downloader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/admin_job_schedules.py
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/routes/admin_moderation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/static/js/admin-playlists.js
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/static/js/admin-queue-mgmt.js
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/static/js/admin-schedules.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/admin/index.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/admin/playlists.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/admin/promos.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/admin/queue_mgmt.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/admin/schedules.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/catalog/browse.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/catalog/item_detail.html
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/feedback/index.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/queue/index.html
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/user/dashboard.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.35.5 → kryten_webqueue-0.35.7}/kryten_webqueue/templates/user/my_list.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|