Commit Graph

245 Commits

Author SHA1 Message Date
Glenn Thompson d6aee7ba01 Add bordeaux-threads dependency to asteroid.asd
- Required for threading functionality in the authentication system
2025-09-30 14:11:46 -04:00
Glenn Thompson b1a61fae00 Fix user management API authentication and data formatting
- Fixed find-user-by-id to handle BIT type database IDs
- Updated user-has-role-p to extract role from list format
- Enhanced API endpoint to return properly formatted JSON data
- Added comprehensive debugging for authentication flow
- Created login.chtml template with CLIP data binding
- Resolved 'Error loading users' issue in admin panel
2025-09-30 14:11:46 -04: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 16f3592e97 recursively scan the music directory to implicit depth 2
it is likely that the music library will contain directories of
albums, read the files inside those dirs.
2025-09-30 14:11:46 -04:00
Brian O'Reilly 71a55ee143 user profiles file. 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
Glenn Thompson d60b73c424 Add bordeaux-threads dependency to asteroid.asd
- Required for threading functionality in the authentication system
2025-09-30 13:20:58 -04:00
Glenn Thompson 00942b60bc Fix user management API authentication and data formatting
- Fixed find-user-by-id to handle BIT type database IDs
- Updated user-has-role-p to extract role from list format
- Enhanced API endpoint to return properly formatted JSON data
- Added comprehensive debugging for authentication flow
- Created login.chtml template with CLIP data binding
- Resolved 'Error loading users' issue in admin panel
2025-09-30 13:20:58 -04:00
Glenn Thompson 806031e57f 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 13:20:58 -04:00
Brian O'Reilly 1778a269d8 recursively scan the music directory to implicit depth 2
it is likely that the music library will contain directories of
albums, read the files inside those dirs.
2025-09-30 13:20:58 -04:00
Brian O'Reilly c0bc316d64 user profiles file. 2025-09-30 13:20:58 -04:00
Brian O'Reilly c5c687ec03 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 13:20:58 -04:00
Brian O'Reilly cc94bcb383 Small moves. delete some binary data and add users.lisp 2025-09-30 12:50:45 -04:00
Glenneth f4a39875d2
Merge pull request #1 from fade/feature/database-implementation
Feature/database implementation
2025-09-11 18:21:33 +03:00
Brian O'Reilly 873b2903cc refactor glenn's database feature into discrete files. 2025-09-11 10:33:26 -04:00
Glenn Thompson cb1d6e5596 Implement complete internet radio streaming system
- Add live streaming with Icecast2 and Liquidsoap integration
- Fix track streaming endpoints with proper RADIANCE database queries
- Implement music library management with metadata extraction
- Add web player interface with HTML5 audio controls
- Fix admin panel functionality for file management
- Create playlist system for continuous radio broadcasting
- Add live stream URL to web interface
- Support MP3 streaming at 128kbps with proper audio processing
- Enable network access for internal radio broadcasting
- Add comprehensive README.org documentation
- Create start/stop scripts for service management
- Use secure random password for streaming authentication
2025-09-11 15:30:01 +03:00
Glenn Thompson 9f1524da02 Implement complete metadata extraction and database integration
- Add taglib dependency for ID3/audio metadata extraction
- Implement extract-metadata-with-taglib function with fallback to basic metadata
- Fix database field access using gethash for RADIANCE hash table records
- Add /admin/scan-library API endpoint for triggering music library scans
- Add /admin/tracks API endpoint for retrieving stored track metadata
- Support MP3, FLAC, OGG, and WAV audio formats
- Implement recursive directory scanning with cl-fad
- Add comprehensive error handling and progress reporting
- Create music directory structure (library/, incoming/, temp/)
- Test metadata extraction workflow with sample files

All core metadata extraction and database functionality now working.
2025-09-11 10:47:57 +03:00
Glenn Thompson 1076582fb4 Implement RADIANCE database integration
- Add database collections for tracks and playlists
- Configure proper RADIANCE field types (:text, :integer)
- Add r-data-model dependency for database backend
- Fix build-executable.lisp RADIANCE environment handling
- Update admin dashboard to show real database connection status
- Database now initializes successfully on server startup
2025-09-11 08:54:12 +03:00
Glenn Thompson 1994e3b515 Merge remote-tracking branch 'upstream/main' 2025-09-10 20:28:35 +03:00
Glenn Thompson 526ae010e9 Add build-sbcl.sh to .gitignore 2025-09-10 10:51:02 -04:00
Glenn Thompson f119390459 Fix API status endpoint and update navigation
- Change API endpoint from /api/status to /status to avoid RADIANCE API call interpretation
- Update navigation link in front-page.chtml to point to new /status endpoint
- API now returns proper JSON instead of 500 error
2025-09-10 10:51:02 -04:00
Glenn Thompson 1d6bb33894 Complete CLIP templating migration
- Remove all inline HTML from asteroid.lisp
- Add CLIP templates: front-page.chtml, admin.chtml, player.chtml
- Implement data-text attribute processor for dynamic content
- Fix LASS compilation to use read-from-string
- Update all route handlers to use clip:process-to-string
- Maintain original asteroid radio functionality and styling
2025-09-10 10:51:02 -04:00
Glenn Thompson 8c9ee3cf33 Merge remote-tracking branch 'upstream/main' 2025-09-10 08:10:35 +03:00
Brian O'Reilly b14a4d5680 tiny cleanup. 2025-09-08 11:07:02 -04:00
Brian O'Reilly 6532633fe9 clean out the Makefile a bit. 2025-09-04 11:58:41 -04:00
Glenn Thompson 50afd14557 Merge branch 'main' of https://github.com/fade/asteroid 2025-09-04 18:52:00 +03:00
Glenn Thompson fa154b2fa5 Remove shebang from build-executable.lisp for --load compatibility 2025-09-04 18:51:51 +03:00
Brian O'Reilly 839b58e730 no shebang shebang 2025-09-04 11:48:19 -04:00
Glenn Thompson 7f0453207a Resolve merge conflict in build-executable.lisp 2025-09-04 18:32:04 +03:00
Glenn Thompson c95ff2f983 Update build-executable.lisp to use custom SBCL path 2025-09-04 18:28:58 +03:00
Brian O'Reilly 3854fdecac clean build shrapnel from previous runs prior to dumping our exec. 2025-09-04 11:08:07 -04:00
Brian O'Reilly ce6e5dd088 build changes, to account for differing sbcl paths
return to building with make. call sbcl without hard path, so the
normal shell expansion finds the appropriate exec for your host.
2025-09-04 10:54:28 -04:00
Glenn Thompson 77a23248f5 Fix LASS implementation: Enable dynamic CSS generation
- Fixed compile-styles function to properly use lass:compile-and-write
- LASS now generates CSS dynamically on server startup
- Removed dependency on static CSS files
- Added LASS-IMPLEMENTATION-NOTES.org documenting the fix
- Server now compiles LASS to CSS automatically on startup
- All styling preserved with proper LASS integration
2025-09-04 10:22:39 -04:00
Glenn Thompson 25f558c8e0 Fix LASS implementation: Enable dynamic CSS generation
- Fixed compile-styles function to properly use lass:compile-and-write
- LASS now generates CSS dynamically on server startup
- Removed dependency on static CSS files
- Added LASS-IMPLEMENTATION-NOTES.org documenting the fix
- Server now compiles LASS to CSS automatically on startup
- All styling preserved with proper LASS integration
2025-09-04 05:43:55 +03:00
Brian O'Reilly c0acff7d08 system building shenanigans, round one. 2025-09-01 12:46:11 -04:00
Brian O'Reilly 86011ae127 this is where the templates go.
front-page.chtml per glenneth's work.
2025-08-30 10:08:05 -04:00
Brian O'Reilly c6ebce4fdd reorganize the system around radiance specific build conventions. 2025-08-30 10:04:11 -04:00
Glenn Thompson 8298dfed4c Migrate from Hunchentoot to RADIANCE framework
Major Changes:
- Replace Hunchentoot with RADIANCE web framework
- Add Shirakumo distribution for RADIANCE access
- Implement proper RADIANCE module with define-module declaration
- Convert all route handlers to use define-page syntax
- Update route paths for subdomain routing (asteroid.localhost:8080)
- Fix API endpoint to use define-page instead of define-api
- Update server management to use radiance:startup/shutdown

Technical Improvements:
- Modular architecture with subdomain routing
- Proper RADIANCE module integration
- Updated documentation with migration details
- Fixed route syntax and parentheses issues
- Added comprehensive server startup commands

Routes now accessible at:
- Main: http://asteroid.localhost:8080/
- Admin: http://asteroid.localhost:8080/admin
- Player: http://asteroid.localhost:8080/player
- API: http://asteroid.localhost:8080/api/status
2025-08-20 09:40:14 -04:00
Glenn Thompson 4f399b95fa Add server startup commands to project documentation
- Include command-line and REPL startup instructions
- Document available server management functions
- Provide clear examples for both development and production use
2025-08-20 09:40:14 -04:00
Glenn Thompson 4bb1b1697a Implement Hunchentoot-based web server
- Replace RADIANCE with Hunchentoot web framework
- Remove unavailable dependencies (MITO, MITO-AUTH, STR, PZMQ)
- Add working web interface with main, admin, and player pages
- Implement JSON API endpoint at /api/status
- Fix HTML generation issues with proper Spinneret usage
- Add hacker-themed styling (green terminal aesthetic)
- Include comprehensive project documentation

Features:
- Web server on localhost:8080
- Admin dashboard with placeholder controls
- Web player interface (UI ready for streaming integration)
- Station status display
- Server management functions (start/stop/run)
- Upstream git remote configuration

Technical improvements:
- Direct Spinneret macro usage for reliable HTML generation
- Proper error handling and clean server shutdown
- Modular route handlers with consistent styling
- Cross-platform compatibility via app-utils
2025-08-20 09:40:14 -04:00
Glenneth 6adf23aee7
Add detailed design document for Asteroid Music radio station (#1) 2025-08-12 11:32:39 -04:00
Brian O'Reilly 7b8e727dfd git ignore tweaking. 2025-08-12 11:11:53 -04:00
Brian O'Reilly d860865c34 add the design doc. 2025-08-12 11:04:01 -04:00
Brian O'Reilly 746a6c9d72 Project skeleton. 2025-08-12 10:59:34 -04:00
Brian O'Reilly c43eb7eb97
Initial commit 2025-08-12 10:42:34 -04:00