Glenn Thompson
b6c1baa473
Implement playlist management MVP for player page
...
Features:
- Create, view, load, and delete playlists
- Add tracks to playlists via dropdown menu (📋 button)
- View playlist contents (👁️ button)
- Load playlist to queue with auto-play (📂 button)
- Delete playlist with confirmation (🗑️ button)
Backend changes:
- Move get-db-connection-params to database.lisp for proper load order
- Update playlist functions to use playlist_tracks junction table
- Add get-playlist-tracks and get-playlist-track-count functions
- Add delete and remove-track API endpoints
- Fix stream-track endpoint to not wrap errors in JSON
Frontend changes (ParenScript):
- Add playlist display with action buttons
- Add showAddToPlaylistMenu dropdown
- Add deletePlaylist and viewPlaylist functions
- Fix forEach chaining with progn
- Fix let* scoping for sequential bindings
- Fix ps:regex syntax for string escaping
- Add console logging for playlist debugging
2025-12-10 11:11:32 -05:00
Brian O'Reilly
d66b7b8053
this effectively reverts the previous case change of the USERS table name
...
I guess for now we'll leave this quirk in
2025-12-07 19:44:04 -05:00
Brian O'Reilly
7a4e9c208a
creating the users table all caps style gives us duplicates in postgres.
2025-12-07 19:44:04 -05:00
Luis Pereira
a1fa5b0b51
fix: tracks and playlist db interation through data-model
2025-11-19 18:00:02 -05:00
Luis Pereira
8245917b28
fix: add data-model-save wrapper
...
This tries to bypass a weird error where native "dm:save" fails with lambdalite.
2025-11-16 09:38:04 -05:00
Luis Pereira
92ccee7cf6
feat: data module to alist converter
2025-11-16 09:38:04 -05:00
glenneth
d9f2ac58fc
fix: Replace l:info with format t for logging
...
- l:info was called with wrong number of arguments
- Use format t for consistency with rest of codebase
2025-11-06 16:47:18 -05:00
glenneth
6a3917bb12
fix: Correct database schema bugs from upstream merge
...
- Fix typo: :ingeger -> :integer in playlist_tracks.position
- Fix unsupported type: :timestamp -> :integer in playlist_tracks.added_date
- LambdaLite only supports :text, :integer, and :boolean types
2025-11-06 16:47:18 -05:00
Brian O'Reilly
85881b8fb6
small moves, ellie. small moves.
2025-11-04 17:37:13 -05:00
Glenn Thompson
84d0bc4ce4
Fix Asteroid Radio authentication system
...
- Fix database query syntax for RADIANCE hash table returns
- Handle RADIANCE field storage format (lists instead of strings)
- Configure r-simple-sessions module for session management
- Update login page styling to match main site theme
- Implement working authentication with admin/asteroid123
- Add proper error handling and debug logging
- Ensure session persistence and redirects work correctly
2025-09-30 14:11:46 -04:00
Brian O'Reilly
7ce119cabd
Some new dependencies
...
start up a slynk server in the binary entry point so we can attach Sly
to it and work live without pfaffing about in the threading library,
hiding radiance from Sly/Slynk running inside emacs.
2025-09-30 14:11:46 -04:00
Brian O'Reilly
873b2903cc
refactor glenn's database feature into discrete files.
2025-09-11 10:33:26 -04:00