Add DJ curation metadata, public auto-play radio, and Lyria web controls.
Extensive per-track meta feeds DeepSeek planning. Caravan of the Night kept with electric guitar marked disliked. Sahara Saz remains gold standard. Gateway index.html auto-plays on tinqs.com. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -11,6 +11,7 @@ from ozan_radio.lyria import LyriaEngine
|
||||
from ozan_radio.queue import RadioQueue
|
||||
from ozan_radio.server import app
|
||||
from ozan_radio.taste import load_taste_seeds
|
||||
from ozan_radio.web_playlist import export_gateway_playlist
|
||||
|
||||
|
||||
async def generate_one() -> None:
|
||||
@@ -40,8 +41,8 @@ def main() -> None:
|
||||
"command",
|
||||
nargs="?",
|
||||
default="serve",
|
||||
choices=["serve", "generate"],
|
||||
help="serve = start radio server, generate = one-shot track",
|
||||
choices=["serve", "generate", "export-web"],
|
||||
help="serve = API server, generate = one-shot track, export-web = refresh gateway/index.html playlist",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
@@ -49,6 +50,14 @@ def main() -> None:
|
||||
asyncio.run(generate_one())
|
||||
return
|
||||
|
||||
if args.command == "export-web":
|
||||
path = export_gateway_playlist()
|
||||
if path:
|
||||
print(f"Updated gateway playlist -> {path}")
|
||||
else:
|
||||
print("gateway/index.html missing — nothing exported")
|
||||
return
|
||||
|
||||
cfg = Config.from_env()
|
||||
uvicorn.run(app, host=cfg.radio_host, port=cfg.radio_port, log_level="info")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user