kryten-webqueue 0.20.0__tar.gz → 0.20.1__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.20.0 → kryten_webqueue-0.20.1}/CHANGELOG.md +8 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/PKG-INFO +1 -1
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/static/css/main.css +15 -8
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/pyproject.toml +1 -1
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/.github/workflows/python-publish.yml +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/.github/workflows/release.yml +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/.gitignore +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/README.md +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/config.example.json +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/deploy/kryten-webqueue.service +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/deploy/nginx-queue.conf +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/docs/IMPLEMENTATION_SPEC.md +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/docs/IMPL_API_GATE.md +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/docs/IMPL_ECONOMY.md +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/docs/IMPL_KRYTEN_PY.md +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/docs/IMPL_ROBOT.md +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/docs/PLAN_PRESENCE_AND_PROMOS.md +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/docs/PRE_PLAN_GAPS.md +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/docs/PRODUCT_PLAN.md +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/docs/SPEC_JOBS_AND_BROWSE.md +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/docs/UX_POLISH_PLAN.md +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/__main__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/api_gate/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/api_gate/client.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/app.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/auth/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/auth/otp.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/auth/rate_limit.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/auth/session.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/catalog/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/catalog/db.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/catalog/images.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/catalog/mediacms.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/catalog/sync.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/config.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/cmsutils/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/cmsutils/_common.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/cmsutils/enrichmeta.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/cmsutils/enrichtitles.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/cmsutils/enrichtv.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/cmsutils/fetchurls.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/ytpipe/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/ytpipe/downloader.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/jobs/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/jobs/fetchurls_auth.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/jobs/manager.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/jobs/tasks.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/logging_config.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/playlists/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/playlists/bulk_add.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/playlists/fire.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/playlists/importer.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/playlists/ordering.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/playlists/scheduler.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/promos/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/promos/director.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/queue/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/queue/ordering.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/queue/poller.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/queue/presence.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/queue/shadow.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/routes/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/routes/admin_catalog.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/routes/admin_jobs.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/routes/admin_playlists.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/routes/admin_promos.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/routes/admin_queue.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/routes/admin_schedules.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/routes/auth.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/routes/catalog.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/routes/pages.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/routes/queue.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/routes/user.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/static/js/main.js +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/admin/index.html +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/admin/playlists.html +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/admin/promos.html +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/admin/queue_mgmt.html +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/admin/schedules.html +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/auth/login.html +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/base.html +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/catalog/browse.html +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/catalog/item_detail.html +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/catalog/item_not_found.html +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/queue/index.html +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/user/dashboard.html +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/ws/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/ws/handler.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/ws/manager.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/__init__.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/test_config_persistence.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/test_fetchurls_sharepoint.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/test_phase1.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/test_phase2_jobs.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/test_phase3_jobs.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/test_phase4_live_fixes.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/test_playlist_import.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/test_presence_refund.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/test_promo_director.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/test_promo_pool_exclusion.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/test_queue_announce.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/test_save_results_to_playlist.py +0 -0
- {kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/tests/test_search_facets.py +0 -0
|
@@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.20.1] — 2026-06-17
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **Z-Coin dashboard layout polish.** The left account column is now a fixed 320px width (was a flexible 280–360px range that shifted with content), and the tab strip has proper folder-tab styling — filled inactive tabs with hover feedback and an active tab that visually connects to its panel — instead of the previous near-invisible underline.
|
|
14
|
+
|
|
15
|
+
[0.20.1]: https://github.com/grobertson/kryten-webqueue/releases/tag/v0.20.1
|
|
16
|
+
|
|
9
17
|
## [0.20.0] — 2026-06-17
|
|
10
18
|
|
|
11
19
|
### Added
|
|
@@ -797,7 +797,7 @@ a.np-chip {
|
|
|
797
797
|
}
|
|
798
798
|
.dashboard-grid {
|
|
799
799
|
display: grid;
|
|
800
|
-
grid-template-columns: minmax(
|
|
800
|
+
grid-template-columns: 320px minmax(0, 1fr);
|
|
801
801
|
gap: 1.5rem;
|
|
802
802
|
margin-top: 1.5rem;
|
|
803
803
|
align-items: start;
|
|
@@ -816,27 +816,34 @@ a.np-chip {
|
|
|
816
816
|
/* Dashboard tabbed container */
|
|
817
817
|
.tabs {
|
|
818
818
|
display: flex;
|
|
819
|
-
gap: 0.
|
|
819
|
+
gap: 0.35rem;
|
|
820
820
|
border-bottom: 1px solid var(--border);
|
|
821
|
-
margin-bottom:
|
|
821
|
+
margin-bottom: 1.25rem;
|
|
822
822
|
}
|
|
823
823
|
.tab-btn {
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
border
|
|
824
|
+
appearance: none;
|
|
825
|
+
background: var(--bg-secondary);
|
|
826
|
+
border: 1px solid var(--border);
|
|
827
|
+
border-bottom: none;
|
|
828
|
+
border-radius: var(--radius) var(--radius) 0 0;
|
|
827
829
|
color: var(--text-secondary);
|
|
828
830
|
cursor: pointer;
|
|
831
|
+
font-family: inherit;
|
|
829
832
|
font-size: 0.95rem;
|
|
830
833
|
font-weight: 600;
|
|
831
|
-
padding: 0.6rem
|
|
834
|
+
padding: 0.6rem 1.1rem;
|
|
832
835
|
margin-bottom: -1px;
|
|
836
|
+
transition: color 0.15s, background 0.15s;
|
|
833
837
|
}
|
|
834
838
|
.tab-btn:hover {
|
|
835
839
|
color: var(--text-primary);
|
|
840
|
+
background: var(--bg-hover);
|
|
836
841
|
}
|
|
837
842
|
.tab-btn.active {
|
|
838
843
|
color: var(--accent);
|
|
839
|
-
|
|
844
|
+
background: var(--bg-card);
|
|
845
|
+
border-color: var(--border);
|
|
846
|
+
border-bottom: 1px solid var(--bg-card);
|
|
840
847
|
}
|
|
841
848
|
.tab-panel[hidden] {
|
|
842
849
|
display: 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
|
|
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.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/cmsutils/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/cmsutils/_common.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/cmsutils/enrichtv.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/cmsutils/fetchurls.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/integrations/ytpipe/__init__.py
RENAMED
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/admin/index.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/admin/playlists.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/admin/promos.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/admin/queue_mgmt.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/admin/schedules.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/catalog/browse.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/catalog/item_detail.html
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/queue/index.html
RENAMED
|
File without changes
|
{kryten_webqueue-0.20.0 → kryten_webqueue-0.20.1}/kryten_webqueue/templates/user/dashboard.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
|