v0.8.7: update VERSION, README, and code comments

- VERSION bumped to 0.8.7
- README.md: comprehensive update with Gokapi integration, stems radio
  buttons, download button, cost tracking improvements, stepper fixes,
  error recovery, new env vars, new troubleshooting entries
- app.py: updated module docstring with all current routes
- helpers.py: updated module docstring with function group overview,
  added section header for Gokapi integration
- config.py: added Gokapi env vars to docstring
- models.py: updated schema comments for per-version costs and
  stems_link/stems_url distinction
This commit is contained in:
Troll (Hermes Agent) 2026-08-11 21:08:38 +00:00
parent 59d79cd03d
commit 8df735d88c
6 changed files with 119 additions and 40 deletions

View file

@ -5,6 +5,15 @@ Utility and configuration helpers for the Theme Song Booth Flask app.
These functions are stateless (or use Flask's current_app / session context)
and are imported by app.py. Keeping them here reduces the size of the route file.
Key function groups:
- Genre/decade parsing and style formatting
- Admin auth, settings persistence, encryption helpers
- Email sending (SMTP) and ntfy notifications
- Hermes API key management and prompt callback signing
- MusicGPT API client: generation, polling, file downloads, cost tracking
- Gokapi integration: stems upload, zip bundling, share link generation
- MP3 metadata tagging (mutagen)
"""
import os
@ -797,6 +806,10 @@ def get_musicgpt_cost_totals():
}
# ---------------------------------------------------------------------------
# Gokapi file-sharing integration (stems upload)
# ---------------------------------------------------------------------------
def parse_stems_urls(stems_url_field):
"""
Parse the stems_url DB field into a list of (label, url) tuples.