Fix player.js bugs and update admin panel

- Remove Live Stream Monitor section (redundant with frame player)
- Fix player.lisp pagination start-index calculation
- Fix track property access (remove erroneous index 0)
- Fix if/else paren structure in play-next function
- Fix indentation in play-track function
- Update Music Library Management section to reflect Docker setup
- Add geostationary playlist file
This commit is contained in:
Glenn Thompson 2025-12-09 06:33:28 +03:00 committed by Brian O'Reilly
parent c89e31b998
commit 74a9448e9a
4 changed files with 323 additions and 76 deletions

View File

@ -26,10 +26,6 @@
(update-player-status)
(setup-event-listeners)
(load-stream-queue)
(setup-live-stream-monitor)
(update-live-stream-info)
;; Update live stream info every 10 seconds
(set-interval update-live-stream-info 10000)
;; Update player status every 5 seconds
(set-interval update-player-status 5000))))
@ -359,32 +355,6 @@
(defun open-incoming-folder ()
(alert "Copy your MP3 files to: /home/glenn/Projects/Code/asteroid/music/incoming/\n\nThen click \"Copy Files to Library\" to add them to your music collection."))
;; Setup live stream monitor
(defun setup-live-stream-monitor ()
(let ((live-audio (ps:chain document (get-element-by-id "live-stream-audio"))))
(when live-audio
(setf (ps:@ live-audio preload) "none"))))
;; Live stream info update
(defun update-live-stream-info ()
(ps:chain
(fetch "/api/asteroid/partial/now-playing-inline")
(then (lambda (response)
(let ((content-type (ps:chain response headers (get "content-type"))))
(unless (and content-type (ps:chain content-type (includes "text/plain")))
(ps:chain console (error "Unexpected content type:" content-type))
(return))
(ps:chain response (text)))))
(then (lambda (now-playing-text)
(let ((now-playing-el (ps:chain document (get-element-by-id "live-now-playing"))))
(when now-playing-el
(setf (ps:@ now-playing-el text-content) now-playing-text)))))
(catch (lambda (error)
(ps:chain console (error "Could not fetch stream info:" error))
(let ((now-playing-el (ps:chain document (get-element-by-id "live-now-playing"))))
(when now-playing-el
(setf (ps:@ now-playing-el text-content) "Error loading stream info")))))))
;; ========================================
;; Stream Queue Management
;; ========================================

View File

@ -194,7 +194,7 @@
;; Calculate pagination
(let ((total-pages (ceiling (/ (ps:@ *filtered-library-tracks* length) *library-tracks-per-page*)))
(start-index (* (* *library-current-page* -1) *library-tracks-per-page* *library-tracks-per-page*))
(start-index (* (- *library-current-page* 1) *library-tracks-per-page*))
(end-index (+ start-index *library-tracks-per-page*))
(tracks-to-show (ps:chain *filtered-library-tracks* (slice start-index end-index))))
@ -206,8 +206,8 @@
(find-index (lambda (trk) (== (ps:@ trk id) (ps:@ track id)))))))
(+ "<div class=\"track-item\" data-track-id=\"" (ps:@ track id) "\" data-index=\"" actual-index "\">"
"<div class=\"track-info\">"
"<div class=\"track-title\">" (or (ps:@ track title 0) "Unknown Title") "</div>"
"<div class=\"track-meta\">" (or (ps:@ track artist 0) "Unknown Artist") " • " (or (ps:@ track album 0) "Unknown Album") "</div>"
"<div class=\"track-title\">" (or (ps:@ track title) "Unknown Title") "</div>"
"<div class=\"track-meta\">" (or (ps:@ track artist) "Unknown Artist") " • " (or (ps:@ track album) "Unknown Album") "</div>"
"</div>"
"<div class=\"track-actions\">"
"<button onclick=\"playTrack(" actual-index ")\" class=\"btn btn-sm btn-success\">▶️</button>"
@ -258,29 +258,29 @@
(let ((query (ps:chain (ps:chain document (get-element-by-id "search-tracks")) value (to-lower-case))))
(let ((filtered (ps:chain *tracks*
(filter (lambda (track)
(or (ps:chain (or (ps:@ track title 0) "") (to-lower-case) (includes query))
(ps:chain (or (ps:@ track artist 0) "") (to-lower-case) (includes query))
(ps:chain (or (ps:@ track album 0) "") (to-lower-case) (includes query))))))))
(or (ps:chain (or (ps:@ track title) "") (to-lower-case) (includes query))
(ps:chain (or (ps:@ track artist) "") (to-lower-case) (includes query))
(ps:chain (or (ps:@ track album) "") (to-lower-case) (includes query))))))))
(display-tracks filtered))))
;; Play a specific track by index
(defun play-track (index)
(when (and (>= index 0) (< index (ps:@ *tracks* length)))
(setf *current-track* (aref *tracks* index))
(setf *current-track-index* index)
;; Load track into audio player
(setf (ps:@ *audio-player* src) (+ "/asteroid/tracks/" (ps:@ *current-track* id) "/stream"))
(ps:chain *audio-player* (load))
(ps:chain *audio-player*
(play)
(catch (lambda (error)
(ps:chain console (error "Playback error:" error))
(alert "Error playing track. The track may not be available."))))
(update-player-display)
;; Update server-side player state
(setf *current-track-index* index)
;; Load track into audio player
(setf (ps:@ *audio-player* src) (+ "/asteroid/tracks/" (ps:@ *current-track* id) "/stream"))
(ps:chain *audio-player* (load))
(ps:chain *audio-player*
(play)
(catch (lambda (error)
(ps:chain console (error "Playback error:" error))
(alert "Error playing track. The track may not be available."))))
(update-player-display)
;; Update server-side player state
(ps:chain (fetch (+ "/api/asteroid/player/play?track-id=" (ps:@ *current-track* id))
(ps:create :method "POST"))
(catch (lambda (error)
@ -316,9 +316,9 @@
(update-queue-display))
;; Play next track in library
(let ((next-index (if *is-shuffled*
(floor (* (random) (ps:@ *tracks* length))))
(floor (* (random) (ps:@ *tracks* length)))
(mod (+ *current-track-index* 1) (ps:@ *tracks* length)))))
(play-track next-index))))
(play-track next-index)))))
;; Handle track end
(defun handle-track-end ()

View File

@ -0,0 +1,294 @@
#EXTM3U
#PLAYLIST:Geostationary Orbit - Deep Space Electronic Journey
#PHASE:Geostationary
#DURATION:12 hours (approx)
#CURATOR:Asteroid Radio
#DESCRIPTION:A 12-hour journey through ambient, IDM, and experimental electronic music
#EXTINF:-1,Biosphere - 10 Snurp 1937
/app/music/Biosphere - Sound Installations -2000-2009 [FLAC]/Biosphere - Sound Installations -2000-2009- - 10 Snurp 1937.flac
#EXTINF:-1,Cut Copy - Airborne
/app/music/Cut Copy - Haiku From Zero (2017) [FLAC] {2557864014}/05 - Airborne.flac
#EXTINF:-1,Faux Tales - Avalon
/app/music/Faux Tales - 2015 - Kairos [FLAC] {Kensai Records KNS006 WEB}/3 - Avalon.flac
#EXTINF:-1,Trans-Siberian Orchestra - 14 Christmas In The Air
/app/music/Trans-Siberian Orchestra - The Christmas Trilogy (2004) [FLAC]/The Christmas Attic/14 Christmas In The Air.flac
#EXTINF:-1,Owl City - 01 Hot Air Balloon
/app/music/Owl City - Ocean Eyes (Deluxe Edition) [Flac,Cue,Logs]/Disc 2/01 Hot Air Balloon.flac
#EXTINF:-1,VA - What Is Loneliness (feat. Danny Claire) [Skylex Radio Edit]
/app/music/VA - Melodic Vocal Trance 2017/24. Airborn, Bogdan Vix & KeyPlayer - What Is Loneliness (feat. Danny Claire) [Skylex Radio Edit].flac
#EXTINF:-1,Alison Krauss and Union Station - My Opening Farewell
/app/music/Alison Krauss and Union Station - Paper Airplane (flac)/11 - Alison Krauss & Union Station - My Opening Farewell.flac
#EXTINF:-1,Color Therapy - Expect Delays (feat. Ulrich Schnauss)
/app/music/Color Therapy - Mr. Wolf Is Dead (2015) WEB FLAC/11 - Expect Delays (feat. Ulrich Schnauss).flac
#EXTINF:-1,Clark - Living Fantasy
/app/music/Clark - Death Peak (2017) [FLAC]/08 - Living Fantasy.flac
#EXTINF:-1,Autechre - NTS Session 1-005-Autechre-carefree counter dronal
/app/music/Autechre - 2018 - NTS Session 1/NTS Session 1-005-Autechre-carefree counter dronal.flac
#EXTINF:-1,Smokey Robinson - A Silent Partner In A Three-Way Affair
/app/music/Smokey Robinson - The Solo Albums Vol. 1 (2010) [FLAC]/03 - A Silent Partner In A Three-Way Affair.flac
#EXTINF:-1,Biosphere - Drifter
/app/music/Biosphere - The Petrified Forest (2017) - CD FLAC/01. Biosphere - Drifter.flac
#EXTINF:-1,Clark - My Machines (Clark Remix)
/app/music/Clark - Feast Beast (2013) [24 Bit WEB FLAC] [16-44]/1.17. Battles - My Machines (Clark Remix).flac
#EXTINF:-1,Plaid - Dancers
/app/music/Plaid - Polymer (2019) [WEB FLAC]/07 - Dancers.flac
#EXTINF:-1,Four Tet - 04 Tremper
/app/music/Four Tet - New Energy {CD} [FLAC] (2017)/04 Tremper.flac
#EXTINF:-1,Dead Voices On Air - 07. Dogger Doorlopende Split
/app/music/Dead Voices On Air - Frankie Pett En De Onderzeer Boten (2017) web/07. Dogger Doorlopende Split.flac
#EXTINF:-1,Proem - 04. Drawing Room Anguish
/app/music/Proem - 2018 Modern Rope (WEB)/04. Drawing Room Anguish.flac
#EXTINF:-1,Dead Voices On Air - Red Howls
/app/music/Dead Voices On Air - Ghohst Stories (FLAC)/01 - Red Howls.flac
#EXTINF:-1,Quaeschning and Ulrich Schnauss - Thirst
/app/music/Quaeschning and Ulrich Schnauss - Synthwaves (2017) {vista003, GER, CD} [FLAC]/06 - Thirst.flac
#EXTINF:-1,Various Artists - Dance of the Sugar-Plum Fairy
/app/music/Various Artists - The 50 Darkest Pieces of Classical Music (2011) - FLAC/CD 1/02 - Tchaikovsky - The Nutcracker - Dance of the Sugar-Plum Fairy.flac
#EXTINF:-1,Bedouin Soundclash - Money Worries (E-Clair Refix)
/app/music/Bedouin Soundclash - Sounding a Mosaic (2004) [FLAC] {SD1267}/14 - Money Worries (E-Clair Refix).flac
#EXTINF:-1,Biosphere - 05 Fluvialmorphologie
/app/music/Biosphere - Sound Installations -2000-2009 [FLAC]/Biosphere - Sound Installations -2000-2009- - 05 Fluvialmorphologie.flac
#EXTINF:-1,Dead Voices on Air - 05. on the silent wing
/app/music/Dead Voices on Air - [2010] The Silent Wing [FLAC 24bit]/05. on the silent wing.flac
#EXTINF:-1,Regina Spektor - Folding Chair
/app/music/Regina Spektor - Far (2009) - FLAC/04 - Folding Chair.flac
#EXTINF:-1,08 Album of Memory
/app/music/If I Had a Pair of Wings; Jamaican Doo Wop Vol. 1 [Death is Not the End, 2018] FLAC/08 Album of Memory.flac
#EXTINF:-1,Plaid - Drowned Sea
/app/music/Plaid - Polymer (2019) [WEB FLAC]/05 - Drowned Sea.flac
#EXTINF:-1,The Future Sound Of London - Old Empire
/app/music/The Future Sound Of London - My Kingdom (Re-imagined) (2018) FLAC/10 - Old Empire.flac
#EXTINF:-1,James - Crash
/app/music/James - Millionaires (Mercury Records, 1999) EAC-FLAC/01. James - Crash.flac
#EXTINF:-1,Ulrich Schnauss - 09. Ten Years
/app/music/Ulrich Schnauss - A Long Way To Fall - Rebound (2020) - WEB FLAC/09. Ten Years.flac
#EXTINF:-1,Tyler Bates & VA - O-O-H Child
/app/music/Tyler Bates & VA - Guardians of the Galaxy (Deluxe Edition) (2014) [FLAC]/Disc 1 (Awesome Mix Vol. 1)/11 - The Five Stairsteps - O-O-H Child.flac
#EXTINF:-1,Clark - The Galactic Tusk (Clark Remix)
/app/music/Clark - Feast Beast (2013) [24 Bit WEB FLAC] [16-44]/1.29. Feynmanns Rainbow - The Galactic Tusk (Clark Remix).flac
#EXTINF:-1,Alison Krauss and Union Station - Dust Bowl Children
/app/music/Alison Krauss and Union Station - Paper Airplane (flac)/2 - Alison Krauss & Union Station - Dust Bowl Children.flac
#EXTINF:-1,Jethro Tull - Only Solitaire
/app/music/Jethro Tull - War Child (1974) - FLAC/Disc 1- 2014 Steven Wilson Mix/08 - Only Solitaire.flac
#EXTINF:-1,Plaid - Recall
/app/music/Plaid - Polymer (2019) [WEB FLAC]/09 - Recall.flac
#EXTINF:-1,Clark - Let's Get Clinical (Clark Remix)
/app/music/Clark - Feast Beast (2013) [24 Bit WEB FLAC] [16-44]/1.21. Maximo Park - Let's Get Clinical (Clark Remix).flac
#EXTINF:-1,Aqualung - Thin Air
/app/music/Aqualung - Magnetic North (2010)/11 - Thin Air.flac
#EXTINF:-1,Tycho - Receiver
/app/music/Tycho - Epoch (Deluxe Version) (2019) [WEB FLAC16-44.1]/04 - Receiver.flac
#EXTINF:-1,Le Vent Du Nord - Les Larmes Aux Yeux
/app/music/Le Vent Du Nord - Dans Les Airs/08 - Les Larmes Aux Yeux.flac
#EXTINF:-1,Bach - French Suite No.4 In E Flat, BWV 815 6. Air
/app/music/Bach - The French Suites - Perhaia [flac]/23 - French Suite No.4 In E Flat, BWV 815 6. Air.flac
#EXTINF:-1,James - I Know What Im Here For
/app/music/James - Millionaires (Mercury Records, 1999) EAC-FLAC/03. James - I Know What Im Here For.flac
#EXTINF:-1,Biosphere - Departed Glories
/app/music/Biosphere - Departed Glories (2016) - FLAC WEB/09 - Departed Glories.flac
#EXTINF:-1,Ramones - Havana Affair
/app/music/Ramones - Transmission Impossible 2015 FLAC/CD 3/12 - Havana Affair.flac
#EXTINF:-1,Wumpscut - Burial On Demand
/app/music/Wumpscut - Women And Satan First (Concentrated Camp Edition) (2012) [FLAC WEB]/05 - Burial On Demand.flac
#EXTINF:-1,The Future Sound Of London - Water Garden
/app/music/The Future Sound Of London - My Kingdom (Re-imagined) (2018) FLAC/09 - Water Garden.flac
#EXTINF:-1,Clark - Red Light (Clark Remix)
/app/music/Clark - Feast Beast (2013) [24 Bit WEB FLAC] [16-44]/1.16. Massive Attack - Red Light (Clark Remix).flac
#EXTINF:-1,Ulrich Schnauss - 05. No Further Ahead Than Today (2019 Version)
/app/music/Ulrich Schnauss - No Further Ahead Than Tomorrow (2020) - WEB FLAC/05. No Further Ahead Than Today (2019 Version).flac
#EXTINF:-1,Plaid - 09-Min-Y-Llan-His-Hell_(Plaid_Remix)
/app/music/Plaid - Stem Sell (Plaid Remixes) [2021] (WEB - FLAC - Lossless)/09-Min-Y-Llan-His-Hell_(Plaid_Remix).flac
#EXTINF:-1,Biosphere - Bergsbotn II
/app/music/Biosphere - The Senja Recordings (2019) [FLAC]/09 - Bergsbotn II.flac
#EXTINF:-1,Dead Voices on Air - Form Wass
/app/music/Dead Voices on Air - CD Three, Never Too Much of Nothing - Tethera (2016) [WEB FLAC]/03 - Form Wass.flac
#EXTINF:-1,Plaid - Held
/app/music/Plaid - The Digging Remedy (2016) [FLAC]/11 - Held.flac
#EXTINF:-1,Plaid - 28-Rone.-Room_With_A_View_(Plaid_Remix)
/app/music/Plaid - Stem Sell (Plaid Remixes) [2021] (WEB - FLAC - Lossless)/28-Rone.-Room_With_A_View_(Plaid_Remix).flac
#EXTINF:-1,Proem - Dark Swole Waves
/app/music/Proem - Twelve Tails-(2021) @FLAC [16-48]/03 - Dark Swole Waves.flac
#EXTINF:-1,Dead Voices on Air - 02. Sprach
/app/music/Dead Voices on Air - Pieta (2012) [WEB-FLAC]/02. Sprach.flac
#EXTINF:-1,Plaid - Praze
/app/music/Plaid - Polymer (2019) [WEB FLAC]/13 - Praze.flac
#EXTINF:-1,Plaid - 08-Roel_Funcken-Textures_(Plaid_Remix)
/app/music/Plaid - Stem Sell (Plaid Remixes) [2021] (WEB - FLAC - Lossless)/08-Roel_Funcken-Textures_(Plaid_Remix).flac
#EXTINF:-1,Billie Holiday - The End Of A Love Affair
/app/music/Billie Holiday - Lady in Satin (flac)/12 - The End Of A Love Affair.flac
#EXTINF:-1,Plaid - Meds Fade
/app/music/Plaid - Polymer (2019) [WEB FLAC]/01 - Meds Fade.flac
#EXTINF:-1,Orbital - There Will Come A Time (Inst)
/app/music/Orbital - Monsters Exist (PledgeMusic Deluxe) (2018) (WEB) [FLAC]/16 - There Will Come A Time (Inst).flac
#EXTINF:-1,Ulrich Schnauss - 07. New Day Starts at Dawn (2019 Version)
/app/music/Ulrich Schnauss - No Further Ahead Than Tomorrow (2020) - WEB FLAC/07. New Day Starts at Dawn (2019 Version).flac
#EXTINF:-1,Dead Voices On Air - PJB
/app/music/Dead Voices On Air - DVoA-CzE (FLAC)/05 - PJB.flac
#EXTINF:-1,Ulrich Schnauss - 04. Thoughtless Motion (2019 Version)
/app/music/Ulrich Schnauss - No Further Ahead Than Tomorrow (2020) - WEB FLAC/04. Thoughtless Motion (2019 Version).flac
#EXTINF:-1,02. Brigden Fair
/app/music/The Wilderness of Manitoba [2017] The Tin Shop EP [Pheromone Recordings, WEB] [FLAC]/02. Brigden Fair.flac
#EXTINF:-1,Orbital - Hoo Hoo Ha Ha
/app/music/Orbital - Monsters Exist (PledgeMusic Deluxe) (2018) (WEB) [FLAC]/02 - Hoo Hoo Ha Ha.flac
#EXTINF:-1,Radiohead - 01 Airbag
/app/music/Radiohead - 5 Album Set (50999 972099 2 8, 2012)/Radiohead - OK Computer (1997)/01 Airbag.flac
#EXTINF:-1,Cheetah EP-002-Aphex Twin-CHEETAHT7b
/app/music/Aphex Twin (2016) Cheetah EP [WEB] [FLAC]/Cheetah EP-002-Aphex Twin-CHEETAHT7b.flac
#EXTINF:-1,The Future Sound of London - Wild Weather
/app/music/The Future Sound of London - (2016) Environment Six (FLAC)/09 - Wild Weather.flac
#EXTINF:-1,Plaid - Melifer
/app/music/Plaid - The Digging Remedy (2016) [FLAC]/05 - Melifer.flac
#EXTINF:-1,Four Tet - 04. Parallel 4
/app/music/Four Tet - Parallel (2020) - WEB FLAC/04. Parallel 4.flac
#EXTINF:-1,Dead Voices On Air - 04. Als Een God
/app/music/Dead Voices On Air - Frankie Pett En De Onderzeer Boten (2017) web/04. Als Een God.flac
#EXTINF:-1,Tycho - 06. For How Long (Harvey Sutherland Remix)
/app/music/Tycho - Weather Remixes (2020) - WEB FLAC/06. For How Long (Harvey Sutherland Remix).flac
#EXTINF:-1,Proem - Playing Against The Ghosts
/app/music/Proem - Twelve Tails-(2021) @FLAC [16-48]/02 - Playing Against The Ghosts.flac
#EXTINF:-1,Alison Krauss and Union Station - Miles to Go
/app/music/Alison Krauss and Union Station - Paper Airplane (flac)/8 - Alison Krauss & Union Station - Miles to Go.flac
#EXTINF:-1,Dead Voices On Air - Wistle Kjarra
/app/music/Dead Voices On Air - Flojt (2016) [FLAC 24bit] WEB/02 - Wistle Kjarra.flac
#EXTINF:-1,Ulrich Schnauss & Jonas Munk - 03. Solitary Falling
/app/music/Ulrich Schnauss & Jonas Munk - Eight Fragments Of An Illusion (2021) - WEB FLAC/03. Solitary Falling.flac
#EXTINF:-1,The Future Sound of London - Imagined Friends
/app/music/The Future Sound of London - (2016) Environment Six (FLAC)/15 - Imagined Friends.flac
#EXTINF:-1,Tycho - Epoch
/app/music/Tycho - Epoch (Deluxe Version) (2019) [WEB FLAC16-44.1]/05 - Epoch.flac
#EXTINF:-1,Locrian - An Index of Air
/app/music/Locrian - Infinite Dissolution (2015) - WEB FLAC/05 - An Index of Air.flac
#EXTINF:-1,Death Cab For Cutie - Pictures In An Exhibition [Live]
/app/music/Death Cab For Cutie - Something About Airplanes (2008 Re-Issue)/Disc 2 - Live At The Crocodile Cafe 1998/07 - Pictures In An Exhibition [Live].flac
#EXTINF:-1,Death Cab For Cutie - President of What
/app/music/Death Cab For Cutie - Something About Airplanes (2008 Re-Issue)/Disc 1 - Something About Airplanes/02 - President of What.flac
#EXTINF:-1,Johann Johannsson - The Stairs
/app/music/Johann Johannsson - The Theory of Everything (2014) [FLAC]/13 - The Stairs.flac
#EXTINF:-1,Biosphere - Just A Kiss
/app/music/Biosphere - The Petrified Forest (2017) - CD FLAC/05. Biosphere - Just A Kiss.flac
#EXTINF:-1,Ulrich Schnauss & Jonas Munk Weightless Memories (2010) {PEDS 02} [Web]/09 - In Odense...
/app/music/Ulrich Schnauss & Jonas Munk Weightless Memories (2010) {PEDS 02} [Web]/09 - In Odense....flac
#EXTINF:-1,Dead Voices on Air - 09. ge [bonus track]
/app/music/Dead Voices on Air - [2010] The Silent Wing [FLAC 24bit]/09. ge [bonus track].flac
#EXTINF:-1,Port Blue - 03. The Grand Staircase
/app/music/Port Blue - The Airship (2007)/03. The Grand Staircase.flac
#EXTINF:-1,Biosphere - 04 Microtunneling
/app/music/Biosphere - Sound Installations -2000-2009 [FLAC]/Biosphere - Sound Installations -2000-2009- - 04 Microtunneling.flac
#EXTINF:-1,Clark - Kiri's Glee
/app/music/Clark - Kiri Variations (2019) [WEB FLAC]/04 - Kiri's Glee.flac
#EXTINF:-1,Biosphere - Whole Forests Of Them Appearing
/app/music/Biosphere - Departed Glories (2016) - FLAC WEB/10 - Whole Forests Of Them Appearing.flac
#EXTINF:-1,Seba & Ulrich Schnauss - Snöflingor
/app/music/Seba & Ulrich Schnauss - Snöflingor EP [2017] [WEB_FLAC]/03. Seba & Ulrich Schnauss - Snöflingor.flac
#EXTINF:-1,Plaid - 07-Mary_Epworth-Gone_Rogue_(Plaid_Remix)
/app/music/Plaid - Stem Sell (Plaid Remixes) [2021] (WEB - FLAC - Lossless)/07-Mary_Epworth-Gone_Rogue_(Plaid_Remix).flac
#EXTINF:-1,05 Send Me
/app/music/If I Had a Pair of Wings; Jamaican Doo Wop Vol. 1 [Death is Not the End, 2018] FLAC/05 Send Me.flac
#EXTINF:-1,07 'Til the End of Time
/app/music/If I Had a Pair of Wings; Jamaican Doo Wop Vol. 1 [Death is Not the End, 2018] FLAC/07 'Til the End of Time.flac
#EXTINF:-1,Four Tet - Insect Near Piha Beach
/app/music/Four Tet - Sixteen Oceans (2020) {Text Records - TEXT051} [CD FLAC]/07 - Four Tet - Insect Near Piha Beach.flac
#EXTINF:-1,Clark - Ted (Bibio Remix)
/app/music/Clark - Feast Beast (2013) [24 Bit WEB FLAC] [16-44]/1.13. Clark - Ted (Bibio Remix).flac
#EXTINF:-1,The Future Sound of London - Plausibility
/app/music/The Future Sound of London - (2016) Environment Six (FLAC)/17 - Plausibility.flac
#EXTINF:-1,The Lumineers - 01-Flowers In Your Hair
/app/music/The Lumineers - The Lumineers (flac)/01-Flowers In Your Hair.flac
#EXTINF:-1,Wumpscut - Gabi Grausam (AirForge Remix)
/app/music/Wumpscut - Madman Szpital (Concentrated Camp Edition) (2013) [FLAC WEB]/25 - Gabi Grausam (AirForge Remix).flac
#EXTINF:-1,Dead Voices on Air - Three
/app/music/Dead Voices on Air - Mirror Carrier (2018) [WEB-FLAC16-44]/03. Dead Voices on Air - Three.flac
#EXTINF:-1,The Future Sound Of London - Path 7
/app/music/The Future Sound Of London - My Kingdom (Re-imagined) (2018) FLAC/01 - My Kingdom - Path 7.flac
#EXTINF:-1,Biosphere - Invariable Cowhandler
/app/music/Biosphere - Departed Glories (2016) - FLAC WEB/11 - Invariable Cowhandler.flac
#EXTINF:-1,Dead Voices On Air - 9. Stacja.Fjall
/app/music/Dead Voices On Air - Flojt (2016) [FLAC 24bit] WEB/09 - 9. Stacja.Fjall.flac
#EXTINF:-1,The Clarks - 12 Train
/app/music/The Clarks - Fast Moving Cars (2004) {Razor & Tie 7930182918-2} [FLAC-CD]/12 Train.flac
#EXTINF:-1,Massive Attack - Voodoo In My Blood
/app/music/Massive Attack - Ritual Spirit (2016) [WEB FLAC]/03 - Voodoo In My Blood.flac
#EXTINF:-1,Quaeschning and Ulrich Schnauss - Main Theme
/app/music/Quaeschning and Ulrich Schnauss - Synthwaves (2017) {vista003, GER, CD} [FLAC]/01 - Main Theme.flac
#EXTINF:-1,Biosphere - Fjølhøgget
/app/music/Biosphere - The Senja Recordings (2019) [FLAC]/07 - Fjølhøgget.flac
#EXTINF:-1,Plaid - 03-Gareth_Whitehead,_Detroit_Grand_Pubahs,_Raymond,_Lindsay_&_Kendal-The_Villain_(Plaid_Remix)
/app/music/Plaid - Stem Sell (Plaid Remixes) [2021] (WEB - FLAC - Lossless)/03-Gareth_Whitehead,_Detroit_Grand_Pubahs,_Raymond,_Lindsay_&_Kendal-The_Villain_(Plaid_Remix).flac
#EXTINF:-1,Autechre - NTS Session 1-003-Autechre-debris_funk
/app/music/Autechre - 2018 - NTS Session 1/NTS Session 1-003-Autechre-debris_funk.flac
#EXTINF:-1,Dead Voices On Air - 01 Walde
/app/music/Dead Voices On Air - Doggerland (2017) [FLAC] {WEB}/01 Walde.flac
#EXTINF:-1,Orbital - There Will Come A Time
/app/music/Orbital - Monsters Exist (PledgeMusic Deluxe) (2018) (WEB) [FLAC]/09 - There Will Come A Time.flac
#EXTINF:-1,Clark - Absence (Bibio Remix)
/app/music/Clark - Feast Beast (2013) [24 Bit WEB FLAC] [16-44]/1.12. Clark - Absence (Bibio Remix).flac
#EXTINF:-1,Ulrich Schnauss - 09. Negative Sunrise (2019 Version)
/app/music/Ulrich Schnauss - No Further Ahead Than Tomorrow (2020) - WEB FLAC/09. Negative Sunrise (2019 Version).flac
#EXTINF:-1,Port Blue - 05. The Axial Catwalk
/app/music/Port Blue - The Airship (2007)/05. The Axial Catwalk.flac
#EXTINF:-1,Four Tet - This Is for You
/app/music/Four Tet - Sixteen Oceans (2020) {Text Records - TEXT051} [CD FLAC]/15 - Four Tet - This Is for You.flac
#EXTINF:-1,Proem - Pine the Bear
/app/music/Proem - Until Here for Years (n5md, 2019) flac/06 - Pine the Bear.flac
#EXTINF:-1,Clark - Yarraville Bird Phone
/app/music/Clark - Kiri Variations (2019) [WEB FLAC]/07 - Yarraville Bird Phone.flac
#EXTINF:-1,Gary Numan/Gary Numan - Airplane
/app/music/Gary Numan/Gary Numan - The Pleasure Principle (1979) {Beggars Banquet BEGA 10, PBTHAL 12530} [FLAC 24-96]/01 - Airplane.flac
#EXTINF:-1,The Monkees - Last Train to Clarksville
/app/music/The Monkees - 2016 - The Monkees 50 {FLAC, R2 554390}/CD1/02 - Last Train to Clarksville.flac
#EXTINF:-1,Death Cab for Cutie - I Will Possess Your Heart
/app/music/Death Cab for Cutie - Narrow Stairs [Atlantic Records]/02 - I Will Possess Your Heart.flac
#EXTINF:-1,The Clarks - 04 Wait a Minute
/app/music/The Clarks - Fast Moving Cars (2004) {Razor & Tie 7930182918-2} [FLAC-CD]/04 Wait a Minute.flac
#EXTINF:-1,The Clarks - 07 Fast Moving Cars
/app/music/The Clarks - Fast Moving Cars (2004) {Razor & Tie 7930182918-2} [FLAC-CD]/07 Fast Moving Cars.flac
#EXTINF:-1,Death Cab for Cutie - Long Division
/app/music/Death Cab for Cutie - Narrow Stairs [Atlantic Records]/09 - Long Division.flac
#EXTINF:-1,80's Dance Classix Top 100 (2008) [FLAC]/CD5/19 - White Rabbit
/app/music/80's Dance Classix Top 100 (2008) [FLAC]/CD5/19 - Airplane Crashers - White Rabbit.flac
#EXTINF:-1,Plaid - Nurula
/app/music/Plaid - Polymer (2019) [WEB FLAC]/08 - Nurula.flac
#EXTINF:-1,Gridlock - 05 364 (One Day With Proem)
/app/music/Gridlock - Engram (12'' 2002)/05 364 (One Day With Proem).flac
#EXTINF:-1,Alabama 3 - Who the Fuck is John Sinclair
/app/music/Alabama 3 - 2011 - Shoplifting 4 Jesus [flac]/12 - Who the Fuck is John Sinclair.flac
#EXTINF:-1,Proem - A Good Soaking
/app/music/Proem - Twelve Tails-(2021) @FLAC [16-48]/12 - A Good Soaking.flac
#EXTINF:-1,Four Tet - Something in the Sadness
/app/music/Four Tet - Sixteen Oceans (2020) {Text Records - TEXT051} [CD FLAC]/10 - Four Tet - Something in the Sadness.flac
#EXTINF:-1,Clark - Bench
/app/music/Clark - Kiri Variations (2019) [WEB FLAC]/03 - Bench.flac
#EXTINF:-1,Proem - 08. Night Brain
/app/music/Proem - 2018 Modern Rope (WEB)/08. Night Brain.flac
#EXTINF:-1,Ulrich Schnauss & Jonas Munk Weightless Memories (2010) {PEDS 02} [Web]/04 - Sonnenblumenstrahl
/app/music/Ulrich Schnauss & Jonas Munk Weightless Memories (2010) {PEDS 02} [Web]/04 - Sonnenblumenstrahl.flac
#EXTINF:-1,Clark - Banished Hymnal
/app/music/Clark - Kiri Variations (2019) [WEB FLAC]/12 - Banished Hymnal.flac
#EXTINF:-1,Tycho - PCH
/app/music/Tycho - Simulcast (2020) [WEB FLAC]/06 - PCH.flac
#EXTINF:-1,80's Dance Classix Top 100 (2008) [FLAC]/CD3/04 - Our Darkness
/app/music/80's Dance Classix Top 100 (2008) [FLAC]/CD3/04 - Anne Clark - Our Darkness.flac
#EXTINF:-1,Four Tet - 14 Planet
/app/music/Four Tet - New Energy {CD} [FLAC] (2017)/14 Planet.flac
#EXTINF:-1,Dead Voices on Air - 05. Live in Saint Petersburg, Feb. 2012
/app/music/Dead Voices on Air - Pieta (2012) [WEB-FLAC]/05. Live in Saint Petersburg, Feb. 2012.flac
#EXTINF:-1,Orbital - Kinetic 2017
/app/music/Orbital - Monsters Exist (PledgeMusic Deluxe) (2018) (WEB) [FLAC]/19 - Kinetic 2017.flac
#EXTINF:-1,Amon Tobin - 04 Io
/app/music/Amon Tobin - 2015 - Dark Jovian [FLAC]/04 Io.flac
#EXTINF:-1,Tycho - Division (Heathered Pearls Remix)
/app/music/Tycho - Epoch (Deluxe Version) (2019) [WEB FLAC16-44.1]/15 - Division (Heathered Pearls Remix).flac
#EXTINF:-1,Orbital - Dressing Up In Other People's Clothes
/app/music/Orbital - Monsters Exist (PledgeMusic Deluxe) (2018) (WEB) [FLAC]/14 - Dressing Up In Other People's Clothes.flac
#EXTINF:-1,Dead Voices On Air - On Winters Gibbet
/app/music/Dead Voices On Air - Ghohst Stories (FLAC)/02 - On Winters Gibbet.flac
#EXTINF:-1,Biosphere - 09 Redfolks
/app/music/Biosphere - Sound Installations -2000-2009 [FLAC]/Biosphere - Sound Installations -2000-2009- - 09 Redfolks.flac
#EXTINF:-1,Dead Voices On Air - 01. Trophic Gehoord
/app/music/Dead Voices On Air - Frankie Pett En De Onderzeer Boten (2017) web/01. Trophic Gehoord.flac
#EXTINF:-1,Autechre - NTS Session 1-008-Autechre-four of seven
/app/music/Autechre - 2018 - NTS Session 1/NTS Session 1-008-Autechre-four of seven.flac
#EXTINF:-1,Four Tet - School
/app/music/Four Tet - Sixteen Oceans (2020) {Text Records - TEXT051} [CD FLAC]/01 - Four Tet - School.flac
#EXTINF:-1,Biosphere - 02 Naust
/app/music/Biosphere - Sound Installations -2000-2009 [FLAC]/Biosphere - Sound Installations -2000-2009- - 02 Naust.flac

View File

@ -102,21 +102,17 @@
<div class="admin-section">
<h2>Music Library Management</h2>
<!-- File Upload -->
<!-- Music Library Info -->
<div class="upload-section">
<h3>Add Music Files</h3>
<h3>Music Library</h3>
<div class="upload-info">
<p><strong>To add your own MP3 files:</strong></p>
<p>The music library is mounted from your local filesystem into the Liquidsoap container.</p>
<p><strong>To add music:</strong></p>
<ol>
<li>Copy your MP3/FLAC/OGG/WAV files to: <code>/home/glenn/Projects/Code/asteroid/music/incoming/</code></li>
<li>Click "Copy Files to Library" below</li>
<li>Files will be moved to the library and added to the database</li>
<li>Add files to your music library directory (set via <code>MUSIC_LIBRARY</code> env var)</li>
<li>Click "Scan Library" to index new tracks into the database</li>
</ol>
<p><em>Supported formats: MP3, FLAC, OGG, WAV</em></p>
</div>
<div class="upload-controls">
<button id="copy-files" class="btn btn-success">📁 Copy Files to Library</button>
<button id="open-incoming" class="btn btn-info">📂 Open Incoming Folder</button>
<p><em>Supported formats: MP3, FLAC, OGG, WAV, OPUS</em></p>
</div>
</div>
@ -163,19 +159,6 @@
</div>
</div>
<!-- Live Stream Monitor -->
<div class="admin-section">
<h2>📻 Live Stream Monitor</h2>
<div class="live-stream-monitor">
<input type="hidden" id="stream-base-url" lquery="(val stream-base-url)">
<p><strong>Now Playing:</strong> <span id="live-now-playing">Loading...</span></p>
<audio id="live-stream-audio" controls style="width: 100%; max-width: 600px;">
<source id="live-stream-source" lquery="(attr :src default-stream-url)" type="audio/aac">
Your browser does not support the audio element.
</audio>
</div>
</div>
<!-- Stream Queue Management -->
<div class="admin-section">
<h2>🎵 Stream Queue Management</h2>