kryten-webqueue 0.2.7__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.
Files changed (58) hide show
  1. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/PKG-INFO +1 -1
  2. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/catalog/sync.py +3 -6
  3. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/pages.py +20 -0
  4. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/pyproject.toml +1 -1
  5. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/.github/workflows/python-publish.yml +0 -0
  6. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/.github/workflows/release.yml +0 -0
  7. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/.gitignore +0 -0
  8. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/README.md +0 -0
  9. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/config.example.json +0 -0
  10. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/deploy/kryten-webqueue.service +0 -0
  11. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/deploy/nginx-queue.conf +0 -0
  12. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/docs/IMPLEMENTATION_SPEC.md +0 -0
  13. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/docs/IMPL_API_GATE.md +0 -0
  14. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/docs/IMPL_ECONOMY.md +0 -0
  15. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/docs/IMPL_KRYTEN_PY.md +0 -0
  16. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/docs/IMPL_ROBOT.md +0 -0
  17. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/docs/PRE_PLAN_GAPS.md +0 -0
  18. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/docs/PRODUCT_PLAN.md +0 -0
  19. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/__init__.py +0 -0
  20. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/__main__.py +0 -0
  21. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/api_gate/__init__.py +0 -0
  22. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/api_gate/client.py +0 -0
  23. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/app.py +0 -0
  24. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/auth/__init__.py +0 -0
  25. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/auth/otp.py +0 -0
  26. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/auth/rate_limit.py +0 -0
  27. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/auth/session.py +0 -0
  28. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/catalog/__init__.py +0 -0
  29. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/catalog/db.py +0 -0
  30. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/catalog/images.py +0 -0
  31. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/config.py +0 -0
  32. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/playlists/__init__.py +0 -0
  33. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/playlists/fire.py +0 -0
  34. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/playlists/importer.py +0 -0
  35. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/playlists/scheduler.py +0 -0
  36. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/queue/__init__.py +0 -0
  37. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/queue/ordering.py +0 -0
  38. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/queue/poller.py +0 -0
  39. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/queue/shadow.py +0 -0
  40. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/__init__.py +0 -0
  41. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/admin_playlists.py +0 -0
  42. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/admin_queue.py +0 -0
  43. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/admin_schedules.py +0 -0
  44. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/auth.py +0 -0
  45. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/catalog.py +0 -0
  46. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/queue.py +0 -0
  47. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/routes/user.py +0 -0
  48. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/static/css/main.css +0 -0
  49. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/static/js/main.js +0 -0
  50. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/admin/index.html +0 -0
  51. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/auth/login.html +0 -0
  52. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/base.html +0 -0
  53. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/catalog/browse.html +0 -0
  54. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/queue/index.html +0 -0
  55. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/templates/user/dashboard.html +0 -0
  56. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/ws/__init__.py +0 -0
  57. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/ws/handler.py +0 -0
  58. {kryten_webqueue-0.2.7 → kryten_webqueue-0.2.8}/kryten_webqueue/ws/manager.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kryten-webqueue
3
- Version: 0.2.7
3
+ Version: 0.2.8
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
@@ -128,9 +128,6 @@ class CatalogSync:
128
128
  stats["new"] += 1
129
129
 
130
130
  def _build_manifest_url(self, media: dict) -> str:
131
- hls_file = media.get("hls_file")
132
- if hls_file:
133
- return hls_file if hls_file.startswith("http") else f"{self._url}{hls_file}"
134
- # Fallback to original URL
135
- original = media.get("original_media_url", "")
136
- 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)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kryten-webqueue"
3
- version = "0.2.7"
3
+ version = "0.2.8"
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"