kryten-webqueue 0.36.6__tar.gz → 0.36.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.36.6 → kryten_webqueue-0.36.7}/CHANGELOG.md +11 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/PKG-INFO +1 -1
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/pipeline.py +25 -8
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/pyproject.toml +1 -1
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/.github/workflows/gitleaks.yml +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/.github/workflows/python-publish.yml +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/.github/workflows/release.yml +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/.gitignore +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/.gitleaks.toml +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/.pre-commit-config.yaml +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/AGENT-WORKFLOW-GUIDE.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/README.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/config.example.json +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/deploy/kryten-webqueue.service +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/deploy/nginx-queue.conf +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/IMPLEMENTATION_SPEC.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/IMPL_API_GATE.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/IMPL_ECONOMY.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/IMPL_KRYTEN_PY.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/IMPL_ROBOT.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/Kryten-Economy Service Quality Survey Report at v0.13.0.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/Kryten-Webqueue Service Quality Survey Report at v0.27.1.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/Log for incorrect promo insertion problem.txt +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/PLAN_PRESENCE_AND_PROMOS.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/PRE_PLAN_GAPS.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/PRODUCT_PLAN.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/SPEC_CATALOG_ENRICHMENT_PIPELINE.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/SPEC_EMOTE_REHOST.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/SPEC_JOBS_AND_BROWSE.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/docs/UX_POLISH_PLAN.md +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/__main__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/api_gate/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/api_gate/client.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/app.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/auth/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/auth/otp.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/auth/rate_limit.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/auth/session.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/db/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/db/_catalog.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/db/_connection.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/db/_enrichment.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/db/_feedback.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/db/_people.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/db/_playlists.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/db/_queue.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/db/_watchlist.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/classify.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/normalise.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/providers.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/report.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/steps/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/steps/art.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/steps/categories.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/steps/meta.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/steps/sync.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/steps/tags.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/steps/title.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/images.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/mediacms.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/sync.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/config.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/cmsutils/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/cmsutils/_common.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/cmsutils/enrichmeta.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/cmsutils/enrichtitles.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/cmsutils/enrichtv.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/cmsutils/fetchurls.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/cmsutils/motdposters.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/cmsutils/playedmovies.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/ytpipe/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/ytpipe/downloader.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/jobs/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/jobs/fetchurls_auth.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/jobs/job_scheduler.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/jobs/manager.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/jobs/rehost_emotes.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/jobs/tasks.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/logging_config.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/playlists/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/playlists/bulk_add.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/playlists/fire.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/playlists/importer.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/playlists/ordering.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/playlists/scheduler.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/promos/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/promos/director.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/queue/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/queue/completion.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/queue/ordering.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/queue/poller.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/queue/presence.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/queue/race_poller.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/queue/shadow.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/admin_catalog.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/admin_feedback.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/admin_job_schedules.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/admin_jobs.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/admin_moderation.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/admin_playlists.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/admin_promos.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/admin_queue.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/admin_schedules.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/auth.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/catalog.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/feedback.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/pages.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/queue.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/user.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/static/css/main.css +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/static/js/admin-playlists.js +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/static/js/admin-promos.js +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/static/js/admin-queue-mgmt.js +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/static/js/admin-schedules.js +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/static/js/admin.js +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/static/js/main.js +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/admin/index.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/admin/playlists.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/admin/promos.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/admin/queue_mgmt.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/admin/schedules.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/auth/login.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/base.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/catalog/browse.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/catalog/item_detail.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/catalog/item_not_found.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/feedback/index.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/queue/index.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/race.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/user/dashboard.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/user/my_list.html +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/ws/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/ws/handler.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/ws/manager.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/scripts/patch_mediacms_bulk_facets.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/scripts/patch_mediacms_tags.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/scripts/trigger_enrich.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/__init__.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_classify.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_config_persistence.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_feedback.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_fetchurls_sharepoint.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_people_facets.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_phase1.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_phase2_jobs.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_phase3_jobs.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_phase4_live_fixes.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_playlist_import.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_presence_refund.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_promo_director.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_promo_pool_exclusion.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_providers.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_queue_announce.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_race_poller.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_recently_played_hide.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_save_results_to_playlist.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_schedule_lock.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_search_facets.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_title_normalization.py +0 -0
- {kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/tests/test_watchlist.py +0 -0
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.36.7] - 2026-08-14
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- **`force` now re-derives classification from the raw title.** The enrichment
|
|
10
|
+
pipeline cached `content_type`/`lookup_title` from the first classify run and
|
|
11
|
+
reused them on every subsequent run — so classify-logic improvements (e.g. the
|
|
12
|
+
new dub/sub and YouTube-pipe title cleaning) never reached already-classified
|
|
13
|
+
items even under `force`. A forced run now bypasses the cache and recomputes
|
|
14
|
+
the classification, so title/lookup fixes take effect on re-enrichment.
|
|
15
|
+
|
|
5
16
|
## [0.36.6] - 2026-08-14
|
|
6
17
|
|
|
7
18
|
### Fixed
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/pipeline.py
RENAMED
|
@@ -47,7 +47,11 @@ class CatalogEnrichmentPipeline:
|
|
|
47
47
|
|
|
48
48
|
logger.info(
|
|
49
49
|
"[enrichment] Starting pipeline: steps=%s tokens=%s force=%s dry_run=%s limit=%s",
|
|
50
|
-
steps_to_run,
|
|
50
|
+
steps_to_run,
|
|
51
|
+
"specific" if tokens else "all",
|
|
52
|
+
force,
|
|
53
|
+
dry_run,
|
|
54
|
+
limit,
|
|
51
55
|
)
|
|
52
56
|
|
|
53
57
|
start = time.monotonic()
|
|
@@ -73,13 +77,15 @@ class CatalogEnrichmentPipeline:
|
|
|
73
77
|
)
|
|
74
78
|
logger.info(
|
|
75
79
|
"[enrichment] step=%s found %d item(s) (force=%s)",
|
|
76
|
-
step_name,
|
|
80
|
+
step_name,
|
|
81
|
+
len(rows),
|
|
82
|
+
force,
|
|
77
83
|
)
|
|
78
84
|
if not rows:
|
|
79
85
|
by_step[step_name] = StepResult(skipped=0)
|
|
80
86
|
continue
|
|
81
87
|
|
|
82
|
-
classifications = [self._classify_row(row) for row in rows]
|
|
88
|
+
classifications = [self._classify_row(row, force=force) for row in rows]
|
|
83
89
|
total_items = max(total_items, len(classifications))
|
|
84
90
|
|
|
85
91
|
if step_name == "classify":
|
|
@@ -140,14 +146,20 @@ class CatalogEnrichmentPipeline:
|
|
|
140
146
|
by_step[step_name] = r
|
|
141
147
|
logger.info(
|
|
142
148
|
"[enrichment] step=%s complete: processed=%d changed=%d skipped=%d errors=%d",
|
|
143
|
-
step_name,
|
|
149
|
+
step_name,
|
|
150
|
+
r.processed,
|
|
151
|
+
r.changed,
|
|
152
|
+
r.skipped,
|
|
153
|
+
len(r.errors),
|
|
144
154
|
)
|
|
145
155
|
await self._report_progress(ctx, step_name, r)
|
|
146
156
|
|
|
147
157
|
elapsed = time.monotonic() - start
|
|
148
158
|
logger.info(
|
|
149
159
|
"[enrichment] Pipeline complete in %.1fs: %d item(s), %d step(s)",
|
|
150
|
-
elapsed,
|
|
160
|
+
elapsed,
|
|
161
|
+
total_items,
|
|
162
|
+
len(steps_to_run),
|
|
151
163
|
)
|
|
152
164
|
|
|
153
165
|
return EnrichmentReport(
|
|
@@ -158,12 +170,17 @@ class CatalogEnrichmentPipeline:
|
|
|
158
170
|
dry_run=dry_run,
|
|
159
171
|
)
|
|
160
172
|
|
|
161
|
-
def _classify_row(self, row: dict) -> ItemClassification:
|
|
162
|
-
"""Classify a DB row, using cached enrichment state when available.
|
|
173
|
+
def _classify_row(self, row: dict, *, force: bool = False) -> ItemClassification:
|
|
174
|
+
"""Classify a DB row, using cached enrichment state when available.
|
|
175
|
+
|
|
176
|
+
``force`` bypasses the cache and re-derives the classification from the
|
|
177
|
+
raw title so classify-logic improvements apply to already-classified
|
|
178
|
+
items.
|
|
179
|
+
"""
|
|
163
180
|
token = row["friendly_token"]
|
|
164
181
|
# If enrichment state already has lookup_title from a prior classify run,
|
|
165
182
|
# we reconstruct the classification from that cached data.
|
|
166
|
-
if row.get("content_type") and row.get("lookup_title"):
|
|
183
|
+
if not force and row.get("content_type") and row.get("lookup_title"):
|
|
167
184
|
from .classify import ItemClassification, HostedInfo, HOSTED_SHOW_REGISTRY
|
|
168
185
|
|
|
169
186
|
hosted: HostedInfo | None = None
|
|
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.36.6 → kryten_webqueue-0.36.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.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/classify.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/normalise.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/providers.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/report.py
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/steps/art.py
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/steps/meta.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/steps/sync.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/catalog/enrichment/steps/tags.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.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.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/cmsutils/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/cmsutils/_common.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/cmsutils/enrichtv.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/cmsutils/fetchurls.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/integrations/ytpipe/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.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
|
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/routes/admin_job_schedules.py
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.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.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/static/js/admin-playlists.js
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/static/js/admin-queue-mgmt.js
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/static/js/admin-schedules.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/admin/index.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/admin/playlists.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/admin/promos.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/admin/queue_mgmt.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/admin/schedules.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/catalog/browse.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/catalog/item_detail.html
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/feedback/index.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/queue/index.html
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.7}/kryten_webqueue/templates/user/dashboard.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.36.6 → kryten_webqueue-0.36.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|