kryten-webqueue 0.5.0__tar.gz → 0.5.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.
Files changed (63) hide show
  1. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/CHANGELOG.md +8 -0
  2. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/PKG-INFO +1 -1
  3. kryten_webqueue-0.5.1/kryten_webqueue/__init__.py +6 -0
  4. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/app.py +3 -2
  5. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/pyproject.toml +1 -1
  6. kryten_webqueue-0.5.0/kryten_webqueue/ws/__init__.py +0 -0
  7. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/.github/workflows/python-publish.yml +0 -0
  8. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/.github/workflows/release.yml +0 -0
  9. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/.gitignore +0 -0
  10. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/README.md +0 -0
  11. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/config.example.json +0 -0
  12. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/deploy/kryten-webqueue.service +0 -0
  13. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/deploy/nginx-queue.conf +0 -0
  14. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/docs/IMPLEMENTATION_SPEC.md +0 -0
  15. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/docs/IMPL_API_GATE.md +0 -0
  16. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/docs/IMPL_ECONOMY.md +0 -0
  17. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/docs/IMPL_KRYTEN_PY.md +0 -0
  18. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/docs/IMPL_ROBOT.md +0 -0
  19. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/docs/PRE_PLAN_GAPS.md +0 -0
  20. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/docs/PRODUCT_PLAN.md +0 -0
  21. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/__main__.py +0 -0
  22. {kryten_webqueue-0.5.0/kryten_webqueue → kryten_webqueue-0.5.1/kryten_webqueue/api_gate}/__init__.py +0 -0
  23. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/api_gate/client.py +0 -0
  24. {kryten_webqueue-0.5.0/kryten_webqueue/api_gate → kryten_webqueue-0.5.1/kryten_webqueue/auth}/__init__.py +0 -0
  25. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/auth/otp.py +0 -0
  26. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/auth/rate_limit.py +0 -0
  27. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/auth/session.py +0 -0
  28. {kryten_webqueue-0.5.0/kryten_webqueue/auth → kryten_webqueue-0.5.1/kryten_webqueue/catalog}/__init__.py +0 -0
  29. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/catalog/db.py +0 -0
  30. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/catalog/images.py +0 -0
  31. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/catalog/sync.py +0 -0
  32. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/config.py +0 -0
  33. {kryten_webqueue-0.5.0/kryten_webqueue/catalog → kryten_webqueue-0.5.1/kryten_webqueue/playlists}/__init__.py +0 -0
  34. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/playlists/fire.py +0 -0
  35. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/playlists/importer.py +0 -0
  36. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/playlists/scheduler.py +0 -0
  37. {kryten_webqueue-0.5.0/kryten_webqueue/playlists → kryten_webqueue-0.5.1/kryten_webqueue/queue}/__init__.py +0 -0
  38. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/queue/ordering.py +0 -0
  39. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/queue/poller.py +0 -0
  40. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/queue/shadow.py +0 -0
  41. {kryten_webqueue-0.5.0/kryten_webqueue/queue → kryten_webqueue-0.5.1/kryten_webqueue/routes}/__init__.py +0 -0
  42. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/routes/admin_playlists.py +0 -0
  43. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/routes/admin_queue.py +0 -0
  44. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/routes/admin_schedules.py +0 -0
  45. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/routes/auth.py +0 -0
  46. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/routes/catalog.py +0 -0
  47. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/routes/pages.py +0 -0
  48. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/routes/queue.py +0 -0
  49. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/routes/user.py +0 -0
  50. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/static/css/main.css +0 -0
  51. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/static/js/main.js +0 -0
  52. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/templates/admin/index.html +0 -0
  53. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/templates/admin/playlists.html +0 -0
  54. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/templates/admin/queue_mgmt.html +0 -0
  55. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/templates/admin/schedules.html +0 -0
  56. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/templates/auth/login.html +0 -0
  57. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/templates/base.html +0 -0
  58. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/templates/catalog/browse.html +0 -0
  59. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/templates/queue/index.html +0 -0
  60. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/templates/user/dashboard.html +0 -0
  61. {kryten_webqueue-0.5.0/kryten_webqueue/routes → kryten_webqueue-0.5.1/kryten_webqueue/ws}/__init__.py +0 -0
  62. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/ws/handler.py +0 -0
  63. {kryten_webqueue-0.5.0 → kryten_webqueue-0.5.1}/kryten_webqueue/ws/manager.py +0 -0
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
5
5
  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
 
8
+ ## [0.5.1] - 2026-06-05
9
+
10
+ ### Added
11
+
12
+ - **Version logged at startup** — Service version is now read from package metadata (`importlib.metadata`) and logged when the lifespan starts: `kryten-webqueue v<version> started on <host>:<port>`. The same version is exposed in the FastAPI OpenAPI schema (replacing the stale hard-coded `"0.1.0"`)
13
+
14
+ [0.5.1]: https://github.com/grobertson/kryten-webqueue/releases/tag/v0.5.1
15
+
8
16
  ## [0.5.0] - 2026-06-04
9
17
 
10
18
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kryten-webqueue
3
- Version: 0.5.0
3
+ Version: 0.5.1
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
@@ -0,0 +1,6 @@
1
+ from importlib.metadata import PackageNotFoundError, version
2
+
3
+ try:
4
+ __version__ = version("kryten-webqueue")
5
+ except PackageNotFoundError: # running from source without an install
6
+ __version__ = "0.0.0+dev"
@@ -7,6 +7,7 @@ from fastapi.staticfiles import StaticFiles
7
7
  from fastapi.templating import Jinja2Templates
8
8
  from pathlib import Path
9
9
 
10
+ from . import __version__
10
11
  from .config import Config
11
12
  from .catalog.db import Database
12
13
  from .api_gate.client import ApiGateClient
@@ -137,7 +138,7 @@ async def lifespan(app: FastAPI):
137
138
  asyncio.create_task(_immutability_expiry_loop()),
138
139
  ]
139
140
 
140
- logger.info(f"kryten-webqueue started on {config.host}:{config.port}")
141
+ logger.info(f"kryten-webqueue v{__version__} started on {config.host}:{config.port}")
141
142
 
142
143
  yield
143
144
 
@@ -156,7 +157,7 @@ async def lifespan(app: FastAPI):
156
157
  def create_app(config: Config) -> FastAPI:
157
158
  app = FastAPI(
158
159
  title="kryten-webqueue",
159
- version="0.1.0",
160
+ version=__version__,
160
161
  lifespan=lifespan,
161
162
  )
162
163
  app.state.config = config
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kryten-webqueue"
3
- version = "0.5.0"
3
+ version = "0.5.1"
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"
File without changes