Commit graph

22 commits

Author SHA1 Message Date
Troll (Hermes Agent)
2f5050b29f feat: send song requests to Hermes via webhook
- Add Hermes webhook settings form in /admin/settings (URL + HMAC secret)
- Add /admin/request/<id>/send-to-hermes action
- POST request data to Hermes with V2 HMAC signature and callback URL
- Hermes can POST the generated MusicGPT prompt back to /api/prompt/<id>
- Add test button, update README workflow, bump version to 0.9.0
2026-08-24 23:01:33 +00:00
Troll (Hermes Agent)
d4f54bcff5 v0.8.9: Format email timestamps as 'Tuesday, August 8, 2026 @ 9:24pm' in America/Regina timezone
Add regina_dt Jinja2 template filter that converts UTC ISO-8601 timestamps
to America/Regina timezone and formats them as 'Weekday, Month D, YYYY @ H:MMam/pm'.
Applied to preview_sent_at and delivery_sent_at on the admin request page.
2026-08-12 03:53:37 +00:00
Troll (Hermes Agent)
9575464be2 v0.8.8: Fix stems extraction — upload MP3 file instead of audio_url
The MusicGPT Extraction API's audio_url field only accepts YouTube URLs,
not direct MP3 links. Sending our /api/audio-source/ endpoint URL resulted
in 'Error fetching audio length from YouTube' because MusicGPT tried to
parse it as a YouTube video.

Switch to the audio_file upload option: open the local MP3 and upload it
directly as multipart/form-data to the Extraction API.

Bumped timeout from 30s to 60s for file upload.
2026-08-12 03:37:43 +00:00
Troll (Hermes Agent)
8df735d88c 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
2026-08-11 21:08:38 +00:00
Troll (Hermes Agent)
59d79cd03d Add Re-upload to Gokapi button for existing stems
- New reprocess_stems admin action triggers Gokapi upload manually
- Button appears in Stems/Extras Link section when stems_url exists
  but stems_link is empty (webhook fired before Gokapi was configured)
- Updated share link description and placeholder for Gokapi URLs
2026-08-11 20:48:46 +00:00
Troll (Hermes Agent)
ccc93ffb3b Auto-upload stems to Gokapi on completion, save share link
- New helpers: parse_stems_urls, upload_to_gokapi, process_stems_to_gokapi
- Stems webhook handler now downloads stem files from MusicGPT CDN,
  zips them, uploads to Gokapi with 30-day expiry, saves the Gokapi
  download URL to stems_link in the DB
- Download Stems button uses stems_link (Gokapi URL) when available,
  falls back to the zip endpoint if not
- Config: GOKAPI_URL, GOKAPI_API_KEY, GOKAPI_EXPIRY_DAYS env vars
- docker-compose: GOKAPI_* environment variables added
2026-08-11 20:45:28 +00:00
Troll (Hermes Agent)
9df4c685a4 Fix stepper checkmarks, error recovery, radio button spacing
- Both steppers now show green checkmark on final step when completed
  instead of leaving it highlighted as 'current' (blue)
- Stems error is cleared at the start of every generate_stems attempt,
  not just on success — no stale error messages after retry
- Radio buttons in stems section use same compact spacing as checkboxes
2026-08-11 20:18:19 +00:00
Troll (Hermes Agent)
24838c73ac Fix LLM Cost: accumulate per-version costs, include stems, show total
- Webhook no longer overwrites cost estimate with 0 when conversion_cost
  is missing from the payload
- Per-version costs (A/B) are tracked separately and summed into total
- Stems cost is only overwritten when a non-zero cost is reported
- Template shows combined total (songs + stems) with breakdown
- Added musicgpt_cost_a and musicgpt_cost_b columns to schema
2026-08-11 19:42:28 +00:00
Troll (Hermes Agent)
f2c64848dd Download Stems button now zips all stem files into a single .zip
- New /admin/request/<id>/download-stems endpoint
- Parses stems_url (label: url; label: url format), fetches each stem file,
  bundles them into a zip served as an attachment download
- If MusicGPT returns a single .zip bundle URL, redirects directly
- Template button now points to the zip endpoint instead of raw CDN URLs
2026-08-11 19:36:40 +00:00
Troll (Hermes Agent)
ae9c061225 Replace stems URL input with radio buttons + add download button
- Radio buttons to select Version A or B MP3 as stems source
- New /api/audio-source endpoint serves single MP3 for Extraction API
- Backend reads radio selection, constructs public URL automatically
- Download Stems button appears when stems are ready
- Generate button disabled when no MP3s are available
2026-08-11 19:14:25 +00:00
Troll (Hermes Agent)
de7e99b6ae Add Steps progress indicator to admin request page 2026-08-11 16:36:03 +00:00
Troll (Hermes Agent)
af91664ed0 Move MusicGPT cost totals from pricing page to sales page 2026-08-11 03:16:28 +00:00
Troll (Hermes Agent)
0c79984619 Fix nested form breaking Mark Paid & Deliver button 2026-08-11 03:10:17 +00:00
Troll (Hermes Agent)
8175327ce3 Respect deliver_album_cover on player page and scale cover to 160px everywhere 2026-08-11 02:57:38 +00:00
Troll (Hermes Agent)
530e9e53ff Add inline comments and update README for MusicGPT workflow 2026-08-10 23:45:28 +00:00
Troll (Hermes Agent)
2ec73dee0f Add toggle for automatic MusicGPT polling in settings 2026-08-10 23:35:55 +00:00
Troll (Hermes Agent)
77cd712f10 Add per-request MusicGPT poll button 2026-08-10 23:25:29 +00:00
Troll (Hermes Agent)
57bdf69942 Make MusicGPT webhook robust: store cover/cost, download when URLs available 2026-08-10 23:17:56 +00:00
Troll (Hermes Agent)
2c11738d2e Poll MusicGPT for full conversion details when webhook omits audio URLs 2026-08-10 23:13:51 +00:00
Troll (Hermes Agent)
5443c464bd Fix MusicGPT integration: v6/v6-pro models, per-conversion webhooks, store conversion IDs 2026-08-10 22:53:26 +00:00
Troll (Hermes Agent)
2ca148be9b Integrate MusicGPT API generation into booth-musicgpt v0.7.0 2026-08-10 22:01:08 +00:00
Troll (Hermes Agent)
99855b1212 Initial fork from theme-song-booth 2026-08-10 20:43:28 +00:00