diff --git a/asteroid.lisp b/asteroid.lisp index e002d8e..bc0f0ff 100644 --- a/asteroid.lisp +++ b/asteroid.lisp @@ -853,7 +853,8 @@ (define-page front-page-content #@"/content" () "Front page content (displayed in content frame)" (clip:process-to-string - (load-template "front-page-content") + (load-template "front-page") + :framesetp t :title "ASTEROID RADIO" :station-name "ASTEROID RADIO" :status-message "🟢 LIVE - Broadcasting asteroid music for hackers" @@ -1284,7 +1285,8 @@ (define-page-with-limit player-content #@"/player-content" (:limit-group "public") "Player page content (displayed in content frame)" (clip:process-to-string - (load-template "player-content") + (load-template "player") + :framesetp t :title "Asteroid Radio - Web Player" :stream-base-url *stream-base-url* :default-stream-url (format nil "~a/asteroid.aac" *stream-base-url*) @@ -1310,14 +1312,22 @@ (define-page-with-limit about-content #@"/about-content" (:limit-group "public") "About page content (displayed in content frame)" (clip:process-to-string - (load-template "about-content") + (load-template "about") + :framesetp t :title "About - Asteroid Radio")) +(define-page-with-limit status-page #@"/status" (:limit-group "public") + "Status page content" + (clip:process-to-string + (load-template "status") + :title "Status - Asteroid Radio")) + ;; Status content (for frameset mode) (define-page-with-limit status-content #@"/status-content" (:limit-group "public") "Status page content (displayed in content frame)" (clip:process-to-string - (load-template "status-content") + (load-template "status") + :framesetp t :title "Status - Asteroid Radio")) (define-api-with-limit asteroid/status () () diff --git a/template/about-content.ctml b/template/about-content.ctml deleted file mode 100644 index 94d89b9..0000000 --- a/template/about-content.ctml +++ /dev/null @@ -1,106 +0,0 @@ - - - - About - Asteroid Radio - - - - - - -
-
-

- Asteroid - ABOUT ASTEROID RADIO - Asteroid -

- -
-
-
-

🎵 Asteroid Music for Hackers

-

- Asteroid Radio is a community-driven internet radio station born from the SystemCrafters community. - We celebrate the intersection of music, technology, and hacker culture—broadcasting for those who - appreciate both great code and great music. -

-

- We met through a shared set of technical biases and a love for building systems from first principles. - Asteroid Radio embodies that ethos: music for hackers, built by hackers. -

-
- -
-

🛠️ Built with Common Lisp

-

- This entire platform is built using Common Lisp, demonstrating the power and elegance - of Lisp for modern web applications. We use: -

-
    -
  • Radiance - Web application framework
  • -
  • Clip - HTML5-compliant template engine
  • -
  • LASS - Lisp Augmented Style Sheets
  • -
  • ParenScript - Lisp-to-JavaScript compiler
  • -
  • Icecast - Streaming media server
  • -
  • Liquidsoap - Audio stream generation
  • -
-

- By building in Common Lisp, we're doubling down on our technical values and creating features - for "our people"—those who appreciate the elegance of Lisp and the power of understanding your tools deeply. -

-
- -
-

📖 Open Source & AGPL Licensed

-

- Asteroid Radio is free and open source software, licensed under the - GNU Affero General Public License v3.0 (AGPL). -

-

- The source code is available at: - https://github.com/Fade/asteroid -

-

- We believe in transparency, collaboration, and the freedom to study, modify, and share the software we use. - The AGPL ensures that improvements to Asteroid Radio remain free and available to everyone. -

-
- -
-

🎧 Features

-
    -
  • Live Streaming - Multiple quality options (AAC, MP3)
  • -
  • Persistent Player - Frameset mode for uninterrupted playback while browsing
  • -
  • Spectrum Analyzer - Real-time audio visualization with customizable themes
  • -
  • Track Library - Browse and search the music collection
  • -
  • User Profiles - Track your listening history
  • -
  • Admin Tools - Manage tracks, users, and playlists
  • -
-
- -
-

🤝 Community

-

- We're part of the SystemCrafters - community—a group of developers, hackers, and enthusiasts who believe in building systems from first principles, - understanding our tools deeply, and sharing knowledge freely. -

-

- Join us in celebrating the intersection of great music and great code! -

-
-
-
- - diff --git a/template/about.ctml b/template/about.ctml index e8fdd86..6b7574b 100644 --- a/template/about.ctml +++ b/template/about.ctml @@ -18,16 +18,32 @@ ABOUT ASTEROID RADIO Asteroid +
diff --git a/template/front-page-content.ctml b/template/front-page-content.ctml deleted file mode 100644 index 345cd01..0000000 --- a/template/front-page-content.ctml +++ /dev/null @@ -1,125 +0,0 @@ - - - - ASTEROID RADIO - - - - - - - - - - - - -
-
-

- Asteroid - ASTEROID RADIO - Asteroid -

-

The Station at the End of Time

- - -
- -
- - -
-
- - -
- -
-
-

🟢 LIVE STREAM

- - -
- - -
- - -

Stream URL:

-

Stream Quality:

-

BROADCASTING: Asteroid music for Hackers

-

The live stream player is now in the persistent bar at the bottom of the page

-
- -
- - -
-

Recently Played

-
-

Loading...

-
-
- - -
-

🎵 Request a Track

-

Want to hear something specific? Submit a request and an admin will review it.

-
- - - -
- -
-

Recently Played Requests

-
-

Loading...

-
-
-
-
- - -
- - diff --git a/template/front-page.ctml b/template/front-page.ctml index ab233bc..401d66e 100644 --- a/template/front-page.ctml +++ b/template/front-page.ctml @@ -51,15 +51,30 @@ @@ -77,43 +92,54 @@ - - -
- - -
- + + + + +
+ + +
+
+
+

Stream URL:

Stream Quality:

BROADCASTING: Asteroid music for Hackers

-
- - + - + -
- - - - -
- -
+ + + + + + +
+ +
+ + +

The live stream player is now in the persistent bar at the bottom of the page

+
+
diff --git a/template/player-content.ctml b/template/player-content.ctml deleted file mode 100644 index 47d3459..0000000 --- a/template/player-content.ctml +++ /dev/null @@ -1,157 +0,0 @@ - - - - Asteroid Radio - Web Player - - - - - - - - - -
-

- Asteroid - WEB PLAYER - Asteroid -

- - -
- -
- - -
-
- - - - -
-

- 🟢 - Live Radio Stream -

-

The live stream player is now in the persistent bar at the bottom of the page. It will continue playing as you navigate between pages!

-
- -
- - -
-

Personal Track Library

-
- - -
-
Loading tracks...
-
- - -
-
- - -
-

Audio Player

-
-
-
🎵
-
-
No track selected
-
Unknown Artist
-
Unknown Album
-
-
- - - -
- - - - - -
- -
-
- 0:00 / 0:00 -
-
- - -
-
-
-
- - -
-

Playlists

-
- - -
- -
-
-
No playlists created yet.
-
-
-
- - -
-

Play Queue

-
- - -
-
-
Queue is empty
-
-
-
- - diff --git a/template/player.ctml b/template/player.ctml index 9abe224..e046756 100644 --- a/template/player.ctml +++ b/template/player.ctml @@ -11,6 +11,11 @@ + + + + +
@@ -19,39 +24,90 @@ WEB PLAYER Asteroid + + + + +
+ +
+ + +
+
+
+
+ - +

🟢 Live Radio Stream

-
- - -
- - -
- - -

Listen to the live Asteroid Radio stream

-
+ + +
+ + +
+ + +
+ + +

Listen to the live Asteroid Radio stream

+
+
+ +

The live stream player is now in the persistent bar at the bottom of the page. It will continue playing as you navigate between pages!

+
+
diff --git a/template/status-content.ctml b/template/status-content.ctml deleted file mode 100644 index e406499..0000000 --- a/template/status-content.ctml +++ /dev/null @@ -1,57 +0,0 @@ - - - - Asteroid Radio - Status - - - - - - -
-
-

- Asteroid - 📡 SYSTEM STATUS - Asteroid -

- -
- -
-
-

🟢 Server Status

-

- Asteroid Radio is currently online and broadcasting. -

-
- -
-

📊 Stream Information

-
    -
  • Status: 🟢 Live
  • -
  • Formats: AAC 96kbps, MP3 128kbps, MP3 64kbps
  • -
  • Server: Icecast
  • -
-
- -
-

ℹ️ Additional Information

-

- For detailed system status and administration, please visit the Admin Dashboard. -

-
-
-
- - diff --git a/template/status.ctml b/template/status.ctml index a0f2355..8a9645c 100644 --- a/template/status.ctml +++ b/template/status.ctml @@ -15,16 +15,32 @@ 📡 SYSTEM STATUS Asteroid +