kryten-webqueue 0.2.3__tar.gz → 0.2.4__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.3 → kryten_webqueue-0.2.4}/PKG-INFO +1 -1
  2. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/catalog/sync.py +11 -2
  3. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/pyproject.toml +1 -1
  4. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/.github/workflows/python-publish.yml +0 -0
  5. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/.github/workflows/release.yml +0 -0
  6. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/.gitignore +0 -0
  7. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/README.md +0 -0
  8. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/config.example.json +0 -0
  9. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/deploy/kryten-webqueue.service +0 -0
  10. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/deploy/nginx-queue.conf +0 -0
  11. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/docs/IMPLEMENTATION_SPEC.md +0 -0
  12. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/docs/IMPL_API_GATE.md +0 -0
  13. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/docs/IMPL_ECONOMY.md +0 -0
  14. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/docs/IMPL_KRYTEN_PY.md +0 -0
  15. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/docs/IMPL_ROBOT.md +0 -0
  16. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/docs/PRE_PLAN_GAPS.md +0 -0
  17. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/docs/PRODUCT_PLAN.md +0 -0
  18. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/__init__.py +0 -0
  19. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/__main__.py +0 -0
  20. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/api_gate/__init__.py +0 -0
  21. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/api_gate/client.py +0 -0
  22. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/app.py +0 -0
  23. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/auth/__init__.py +0 -0
  24. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/auth/otp.py +0 -0
  25. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/auth/rate_limit.py +0 -0
  26. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/auth/session.py +0 -0
  27. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/catalog/__init__.py +0 -0
  28. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/catalog/db.py +0 -0
  29. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/catalog/images.py +0 -0
  30. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/config.py +0 -0
  31. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/playlists/__init__.py +0 -0
  32. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/playlists/fire.py +0 -0
  33. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/playlists/importer.py +0 -0
  34. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/playlists/scheduler.py +0 -0
  35. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/queue/__init__.py +0 -0
  36. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/queue/ordering.py +0 -0
  37. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/queue/poller.py +0 -0
  38. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/queue/shadow.py +0 -0
  39. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/routes/__init__.py +0 -0
  40. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/routes/admin_playlists.py +0 -0
  41. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/routes/admin_queue.py +0 -0
  42. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/routes/admin_schedules.py +0 -0
  43. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/routes/auth.py +0 -0
  44. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/routes/catalog.py +0 -0
  45. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/routes/pages.py +0 -0
  46. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/routes/queue.py +0 -0
  47. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/routes/user.py +0 -0
  48. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/static/css/main.css +0 -0
  49. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/static/js/main.js +0 -0
  50. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/templates/admin/index.html +0 -0
  51. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/templates/auth/login.html +0 -0
  52. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/templates/base.html +0 -0
  53. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/templates/catalog/browse.html +0 -0
  54. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/templates/queue/index.html +0 -0
  55. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/templates/user/dashboard.html +0 -0
  56. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/ws/__init__.py +0 -0
  57. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/kryten_webqueue/ws/handler.py +0 -0
  58. {kryten_webqueue-0.2.3 → kryten_webqueue-0.2.4}/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.3
3
+ Version: 0.2.4
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
@@ -9,7 +9,13 @@ class CatalogSync:
9
9
  """Synchronizes catalog data from MediaCMS."""
10
10
 
11
11
  def __init__(self, *, mediacms_url: str, mediacms_token: str, db):
12
- self._url = mediacms_url.rstrip("/")
12
+ # Strip any accidental /api/v1 suffix — the sync code appends it itself
13
+ url = mediacms_url.rstrip("/")
14
+ for suffix in ("/api/v1", "/api"):
15
+ if url.endswith(suffix):
16
+ url = url[: -len(suffix)]
17
+ break
18
+ self._url = url
13
19
  self._token = mediacms_token
14
20
  self._db = db
15
21
  self._client = httpx.AsyncClient(
@@ -33,7 +39,10 @@ class CatalogSync:
33
39
  params={"page": page, "page_size": 50},
34
40
  )
35
41
  if resp.status_code != 200:
36
- logger.error(f"MediaCMS API returned {resp.status_code}")
42
+ logger.error(
43
+ f"MediaCMS API returned {resp.status_code} for URL {resp.url} — "
44
+ f"body: {resp.text[:200]}"
45
+ )
37
46
  stats["errors"] += 1
38
47
  break
39
48
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kryten-webqueue"
3
- version = "0.2.3"
3
+ version = "0.2.4"
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"