kryten-webqueue 0.2.6__tar.gz → 0.2.8__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.2.6 → kryten_webqueue-0.2.8}/PKG-INFO +1 -1
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/catalog/sync.py +5 -7
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/pages.py +20 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/pyproject.toml +1 -1
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/.github/workflows/python-publish.yml +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/.github/workflows/release.yml +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/.gitignore +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/README.md +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/config.example.json +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/deploy/kryten-webqueue.service +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/deploy/nginx-queue.conf +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/docs/IMPLEMENTATION_SPEC.md +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/docs/IMPL_API_GATE.md +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/docs/IMPL_ECONOMY.md +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/docs/IMPL_KRYTEN_PY.md +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/docs/IMPL_ROBOT.md +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/docs/PRE_PLAN_GAPS.md +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/docs/PRODUCT_PLAN.md +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/__init__.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/__main__.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/api_gate/__init__.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/api_gate/client.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/app.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/auth/__init__.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/auth/otp.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/auth/rate_limit.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/auth/session.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/catalog/__init__.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/catalog/db.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/catalog/images.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/config.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/playlists/__init__.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/playlists/fire.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/playlists/importer.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/playlists/scheduler.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/queue/__init__.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/queue/ordering.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/queue/poller.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/queue/shadow.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/__init__.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/admin_playlists.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/admin_queue.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/admin_schedules.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/auth.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/catalog.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/queue.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/user.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/static/css/main.css +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/static/js/main.js +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/admin/index.html +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/auth/login.html +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/base.html +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/catalog/browse.html +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/queue/index.html +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/user/dashboard.html +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/ws/__init__.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/ws/handler.py +0 -0
- {kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/ws/manager.py +0 -0
|
@@ -52,7 +52,8 @@ class CatalogSync:
|
|
|
52
52
|
stats = {"seen": 0, "new": 0, "updated": 0, "errors": 0}
|
|
53
53
|
|
|
54
54
|
try:
|
|
55
|
-
|
|
55
|
+
# /manage_media returns all items (9k+); /media is capped at 1000
|
|
56
|
+
next_url: str | None = f"{self._url}/api/v1/manage_media"
|
|
56
57
|
params: dict = {"page_size": 50}
|
|
57
58
|
page = 0
|
|
58
59
|
|
|
@@ -127,9 +128,6 @@ class CatalogSync:
|
|
|
127
128
|
stats["new"] += 1
|
|
128
129
|
|
|
129
130
|
def _build_manifest_url(self, media: dict) -> str:
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
# Fallback to original URL
|
|
134
|
-
original = media.get("original_media_url", "")
|
|
135
|
-
return original if original.startswith("http") else f"{self._url}{original}"
|
|
131
|
+
# Use the MediaCMS watch page URL (e.g. https://www.dropsugar.co/view?m=TOKEN)
|
|
132
|
+
url = media.get("url", "")
|
|
133
|
+
return url if url.startswith("http") else f"{self._url}{url}"
|
|
@@ -57,6 +57,26 @@ async def catalog_browse_page(request: Request, category: str | None = None, pag
|
|
|
57
57
|
})
|
|
58
58
|
|
|
59
59
|
|
|
60
|
+
@router.get("/catalog/search", response_class=HTMLResponse)
|
|
61
|
+
async def catalog_search_page(request: Request, q: str = "", page: int = 1):
|
|
62
|
+
user = _get_user_or_none(request)
|
|
63
|
+
if not user:
|
|
64
|
+
return RedirectResponse("/auth/login")
|
|
65
|
+
if not q.strip():
|
|
66
|
+
return RedirectResponse("/catalog/browse")
|
|
67
|
+
db = request.app.state.db
|
|
68
|
+
items = await db.search(q, page=page)
|
|
69
|
+
categories = await db.get_categories()
|
|
70
|
+
return templates.TemplateResponse(request, "catalog/browse.html", {
|
|
71
|
+
"user": user,
|
|
72
|
+
"items": items,
|
|
73
|
+
"categories": categories,
|
|
74
|
+
"page": page,
|
|
75
|
+
"active_category": None,
|
|
76
|
+
"query": q,
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
|
|
60
80
|
@router.get("/queue", response_class=HTMLResponse)
|
|
61
81
|
async def queue_page(request: Request):
|
|
62
82
|
user = _get_user_or_none(request)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/catalog/browse.html
RENAMED
|
File without changes
|
|
File without changes
|
{kryten_webqueue-0.2.6 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/user/dashboard.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|