asteroid/parenscript
glenneth 7600ea6bed feat: Add listening history tracking and fix favorites
Listening History:
- Auto-record tracks when they change (logged-in users only)
- Track stored by title (no tracks table dependency)
- Profile page shows real recent tracks, top artists, listening stats
- APIs: /api/asteroid/user/history, /user/listening-stats, /user/recent-tracks, /user/top-artists

Favorites Fixes:
- Remove favorite now uses title instead of track-id
- Fixed response parsing to show green success message
- Profile page remove button works correctly

Migration Script Updated:
- track_title column added to both tables
- track-id now optional (nullable)
- Unique index on (user-id, track_title)
- No foreign key to tracks table (title-based storage)

For production: run migrations/005-user-favorites-history.sql
2025-12-21 08:35:35 +03:00
..
admin.lisp feat: Add database persistence and editable UI for playlist schedule 2025-12-17 20:48:07 -05:00
auth-ui.lisp feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
frameset-utils.lisp Fix geo stats peak tracking and migrate inline JS to ParenScript 2025-12-14 10:20:32 -05:00
front-page.lisp feat: Add listening history tracking and fix favorites 2025-12-21 08:35:35 +03:00
player.lisp Fix ParenScript constructor syntax: use ps:new for class instantiation 2025-12-10 11:11:32 -05:00
profile.lisp feat: Add listening history tracking and fix favorites 2025-12-21 08:35:35 +03:00
recently-played.lisp Add channel/quality selector separation with dynamic playlist phase names 2025-12-14 19:08:41 -05:00
spectrum-analyzer.lisp Fix wedged player with reconnect button and volume preservation 2025-12-10 11:11:32 -05:00
stream-player.lisp feat: Add listening history tracking and fix favorites 2025-12-21 08:35:35 +03:00
users.lisp Fix last-login timezone handling 2025-12-19 18:00:30 -05:00