kryten-webqueue 0.44.2__tar.gz → 0.44.3__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.44.2 → kryten_webqueue-0.44.3}/CHANGELOG.md +12 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/PKG-INFO +2 -1
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/pyproject.toml +4 -1
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/.github/workflows/gitleaks.yml +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/.github/workflows/python-publish.yml +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/.github/workflows/release.yml +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/.gitignore +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/.gitleaks.toml +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/.pre-commit-config.yaml +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/AGENT-WORKFLOW-GUIDE.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/AGENTS.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/README.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/config.example.json +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/deploy/kryten-webqueue.service +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/deploy/nginx-queue.conf +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/IMPLEMENTATION_SPEC.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/IMPL_API_GATE.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/IMPL_ECONOMY.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/IMPL_KRYTEN_PY.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/IMPL_ROBOT.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/Kryten-Economy Service Quality Survey Report at v0.13.0.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/Kryten-Webqueue Service Quality Survey Report at v0.27.1.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/Log for incorrect promo insertion problem.txt +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/PLAN_PRESENCE_AND_PROMOS.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/PRD_TMDB_LOCAL_INDEX.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/PRE_PLAN_GAPS.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/PRODUCT_PLAN.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/PUBLIC_API.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/SPEC-Visual-UX-Sprint-August-2026.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/SPEC_ADMIN_ITEM_EDITOR.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/SPEC_CATALOG_ENRICHMENT_PIPELINE.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/SPEC_EMOTE_REHOST.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/SPEC_JOBS_AND_BROWSE.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/SPEC_TMDB_LOCAL_INDEX.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/docs/UX_POLISH_PLAN.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/__main__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/api_gate/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/api_gate/client.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/app.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/auth/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/auth/device_keys.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/auth/otp.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/auth/rate_limit.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/auth/session.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/db/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/db/_blackouts.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/db/_catalog.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/db/_connection.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/db/_devices.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/db/_enrichment.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/db/_feedback.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/db/_fetch_queue.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/db/_people.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/db/_playlists.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/db/_queue.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/db/_watchlist.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/classify.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/normalise.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/pipeline.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/providers.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/report.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/steps/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/steps/art.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/steps/categories.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/steps/identify.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/steps/meta.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/steps/sync.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/steps/tags.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/steps/title.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/images.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/mediacms.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/sync.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/_schema.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/_textmatch.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/_ttscrape.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/builder.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/coverage.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/index.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/config.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/cmsutils/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/cmsutils/_common.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/cmsutils/blackout_scan.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/cmsutils/enrichmeta.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/cmsutils/enrichtitles.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/cmsutils/enrichtv.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/cmsutils/fetchurls.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/cmsutils/motdposters.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/cmsutils/playedmovies.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/ytpipe/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/ytpipe/downloader.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/jobs/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/jobs/fetchurls_auth.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/jobs/job_scheduler.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/jobs/log_capture.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/jobs/manager.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/jobs/rehost_emotes.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/jobs/tasks.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/logging_config.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/playlists/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/playlists/bulk_add.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/playlists/fire.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/playlists/importer.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/playlists/ordering.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/playlists/scheduler.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/promos/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/promos/director.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/queue/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/queue/completion.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/queue/ordering.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/queue/poller.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/queue/presence.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/queue/race_poller.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/queue/shadow.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/admin_catalog.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/admin_feedback.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/admin_job_schedules.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/admin_jobs.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/admin_moderation.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/admin_playlists.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/admin_promos.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/admin_queue.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/admin_schedules.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/auth.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/catalog.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/devices.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/feedback.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/pages.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/public_api.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/queue.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/user.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/static/css/main.css +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/static/js/admin-playlists.js +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/static/js/admin-promos.js +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/static/js/admin-queue-mgmt.js +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/static/js/admin-schedules.js +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/static/js/admin.js +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/static/js/keybindings.js +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/static/js/main.js +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/admin/index.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/admin/playlists.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/admin/promos.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/admin/queue_mgmt.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/admin/schedules.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/auth/login.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/base.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/catalog/browse.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/catalog/edit_item_modal.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/catalog/item_detail.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/catalog/item_not_found.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/feedback/index.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/queue/index.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/race.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/user/dashboard.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/user/link_device.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/user/my_list.html +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/ws/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/ws/handler.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/ws/manager.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/scripts/AGENTS.md +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/scripts/patch_mediacms_bulk_facets.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/scripts/patch_mediacms_tags.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/scripts/trigger_enrich.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/__init__.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_catalog_blackout.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_catalog_delete.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_classify.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_config_persistence.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_device_linking.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_feedback.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_fetch_queue_pacing.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_fetchurls_sharepoint.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_identify_step.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_job_logs_and_queue_visibility.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_people_facets.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_phase1.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_phase2_jobs.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_phase3_jobs.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_phase4_live_fixes.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_playlist_import.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_presence_refund.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_promo_director.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_promo_pool_exclusion.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_providers.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_queue_announce.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_race_poller.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_recently_played_hide.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_save_results_to_playlist.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_schedule_lock.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_search_facets.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_title_normalization.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_tmdb_index.py +0 -0
- {kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_watchlist.py +0 -0
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.44.3] - 2026-08-29
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **Tubi (and other AES-128 HLS) downloads no longer crash ffmpeg.** Added
|
|
8
|
+
`pycryptodomex` so yt-dlp decrypts AES-128-encrypted HLS streams **in-process**.
|
|
9
|
+
Without it, yt-dlp logged `The stream has AES-128 encryption and pycryptodomex
|
|
10
|
+
is not available; extraction will be delegated to ffmpeg`, and the static ffmpeg
|
|
11
|
+
build then segfaulted (`ffmpeg exited with code -11`), failing the download.
|
|
12
|
+
This is a separate failure mode from the source-throttling read-timeouts
|
|
13
|
+
addressed in 0.44.2.
|
|
14
|
+
|
|
3
15
|
## [0.44.2] - 2026-08-29
|
|
4
16
|
|
|
5
17
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: kryten-webqueue
|
|
3
|
-
Version: 0.44.
|
|
3
|
+
Version: 0.44.3
|
|
4
4
|
Summary: Netflix/Tubi-style catalog browser and pay-to-play queue management for CyTube
|
|
5
5
|
Author: grobertson
|
|
6
6
|
License-Expression: MIT
|
|
@@ -13,6 +13,7 @@ Requires-Dist: jinja2>=3.1
|
|
|
13
13
|
Requires-Dist: msal>=1.28
|
|
14
14
|
Requires-Dist: openpyxl>=3.1
|
|
15
15
|
Requires-Dist: pillow>=10.0
|
|
16
|
+
Requires-Dist: pycryptodomex>=3.20
|
|
16
17
|
Requires-Dist: pydantic>=2.0
|
|
17
18
|
Requires-Dist: pyjwt>=2.8
|
|
18
19
|
Requires-Dist: python-dateutil>=2.8
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "kryten-webqueue"
|
|
3
|
-
version = "0.44.
|
|
3
|
+
version = "0.44.3"
|
|
4
4
|
description = "Netflix/Tubi-style catalog browser and pay-to-play queue management for CyTube"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "MIT"
|
|
@@ -21,6 +21,9 @@ dependencies = [
|
|
|
21
21
|
"pydantic>=2.0",
|
|
22
22
|
"python-dateutil>=2.8",
|
|
23
23
|
"yt-dlp>=2024.1",
|
|
24
|
+
# yt-dlp needs this to decrypt AES-128 HLS in-process (e.g. Tubi); without it
|
|
25
|
+
# it delegates to ffmpeg, whose static build segfaults on that path.
|
|
26
|
+
"pycryptodomex>=3.20",
|
|
24
27
|
"openpyxl>=3.1",
|
|
25
28
|
"requests>=2.31",
|
|
26
29
|
"pyyaml>=6.0",
|
|
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.44.2 → kryten_webqueue-0.44.3}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/db/_fetch_queue.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/classify.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/normalise.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/pipeline.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/providers.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/report.py
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/steps/art.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/steps/meta.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/steps/sync.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/steps/tags.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/enrichment/steps/title.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/_schema.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/_textmatch.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/_ttscrape.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/builder.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/coverage.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/catalog/tmdb_index/index.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/cmsutils/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/cmsutils/_common.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/cmsutils/enrichtv.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/cmsutils/fetchurls.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/integrations/ytpipe/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/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
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/routes/admin_job_schedules.py
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/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
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/static/js/admin-playlists.js
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/static/js/admin-queue-mgmt.js
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/static/js/admin-schedules.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/admin/index.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/admin/playlists.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/admin/promos.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/admin/queue_mgmt.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/admin/schedules.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/catalog/browse.html
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/catalog/item_detail.html
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/feedback/index.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/queue/index.html
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/user/dashboard.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/kryten_webqueue/templates/user/link_device.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/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
|
{kryten_webqueue-0.44.2 → kryten_webqueue-0.44.3}/tests/test_job_logs_and_queue_visibility.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
|