@@ -438,11 +438,14 @@ func (s *Server) Start() error {
438438 for _ , adj := range s .Config .AutoDJs {
439439 if adj .Enabled {
440440 absMusicDir , _ := filepath .Abs (adj .MusicDir )
441- streamer , err := s .StreamerM .StartStreamer (adj .Name , adj .Mount , absMusicDir , adj .Loop , adj .Format , adj .Bitrate , adj .InjectMetadata , adj .Playlist , adj .MPDEnabled , adj .MPDPort , adj .MPDPassword , adj .Visible )
441+ streamer , err := s .StreamerM .StartStreamer (adj .Name , adj .Mount , absMusicDir , adj .Loop , adj .Format , adj .Bitrate , adj .InjectMetadata , adj .Playlist , adj .MPDEnabled , adj .MPDPort , adj .MPDPassword , adj .Visible , adj . LastPlaylist )
442442 if err != nil {
443443 logrus .WithError (err ).Errorf ("Failed to start AutoDJ %s" , adj .Name )
444444 } else {
445445 logrus .Infof ("AutoDJ %s started on %s" , adj .Name , adj .Mount )
446+ if adj .LastPlaylist != "" {
447+ streamer .LoadPlaylist (adj .LastPlaylist )
448+ }
446449 if adj .InjectMetadata {
447450 if st , ok := s .Relay .GetStream (adj .Mount ); ok {
448451 st .SetVisible (adj .Visible )
@@ -2415,7 +2418,7 @@ func (s *Server) handleAddAutoDJ(w http.ResponseWriter, r *http.Request) {
24152418 s .Config .SaveConfig ()
24162419
24172420 // Start it immediately
2418- streamer , err := s .StreamerM .StartStreamer (adj .Name , adj .Mount , adj .MusicDir , adj .Loop , adj .Format , adj .Bitrate , adj .InjectMetadata , nil , adj .MPDEnabled , adj .MPDPort , adj .MPDPassword , adj .Visible )
2421+ streamer , err := s .StreamerM .StartStreamer (adj .Name , adj .Mount , adj .MusicDir , adj .Loop , adj .Format , adj .Bitrate , adj .InjectMetadata , nil , adj .MPDEnabled , adj .MPDPort , adj .MPDPassword , adj .Visible , "" )
24192422 if err == nil {
24202423 if adj .InjectMetadata {
24212424 if st , ok := s .Relay .GetStream (adj .Mount ); ok {
@@ -2479,7 +2482,7 @@ func (s *Server) handleToggleAutoDJ(w http.ResponseWriter, r *http.Request) {
24792482 if adj .Enabled {
24802483 if existing == nil {
24812484 absMusicDir , _ := filepath .Abs (adj .MusicDir )
2482- streamer , err := s .StreamerM .StartStreamer (adj .Name , adj .Mount , absMusicDir , adj .Loop , adj .Format , adj .Bitrate , adj .InjectMetadata , adj .Playlist , adj .MPDEnabled , adj .MPDPort , adj .MPDPassword , adj .Visible )
2485+ streamer , err := s .StreamerM .StartStreamer (adj .Name , adj .Mount , absMusicDir , adj .Loop , adj .Format , adj .Bitrate , adj .InjectMetadata , adj .Playlist , adj .MPDEnabled , adj .MPDPort , adj .MPDPassword , adj .Visible , adj . LastPlaylist )
24832486 if err == nil {
24842487 if adj .InjectMetadata {
24852488 if st , ok := s .Relay .GetStream (adj .Mount ); ok {
@@ -2539,6 +2542,7 @@ func (s *Server) handlePlayerLoadPlaylist(w http.ResponseWriter, r *http.Request
25392542 for _ , adj := range s .Config .AutoDJs {
25402543 if adj .Mount == mount {
25412544 adj .Playlist = playlistCopy
2545+ adj .LastPlaylist = filename
25422546 s .Config .SaveConfig ()
25432547 break
25442548 }
@@ -2821,6 +2825,7 @@ func (s *Server) handlePlayerPlaylistAction(w http.ResponseWriter, r *http.Reque
28212825 streamer .RemoveFromPlaylist (idx )
28222826 }
28232827 playlistCopy := streamer .GetPlaylist ()
2828+ streamer .SavePlaylist ()
28242829
28252830 // Persist
28262831 for _ , adj := range s .Config .AutoDJs {
@@ -2831,7 +2836,7 @@ func (s *Server) handlePlayerPlaylistAction(w http.ResponseWriter, r *http.Reque
28312836 }
28322837 }
28332838
2834- http . Redirect ( w , r , "/admin#tab-streamer" , http .StatusSeeOther )
2839+ w . WriteHeader ( http .StatusOK )
28352840}
28362841
28372842func (s * Server ) handleUpdateAutoDJ (w http.ResponseWriter , r * http.Request ) {
@@ -2887,7 +2892,7 @@ func (s *Server) handleUpdateAutoDJ(w http.ResponseWriter, r *http.Request) {
28872892 // Restart streamer
28882893 s .StreamerM .StopStreamer (oldMount )
28892894 if adj .Enabled {
2890- streamer , err := s .StreamerM .StartStreamer (adj .Name , adj .Mount , adj .MusicDir , adj .Loop , adj .Format , adj .Bitrate , adj .InjectMetadata , adj .Playlist , adj .MPDEnabled , adj .MPDPort , adj .MPDPassword , adj .Visible )
2895+ streamer , err := s .StreamerM .StartStreamer (adj .Name , adj .Mount , adj .MusicDir , adj .Loop , adj .Format , adj .Bitrate , adj .InjectMetadata , adj .Playlist , adj .MPDEnabled , adj .MPDPort , adj .MPDPassword , adj .Visible , adj . LastPlaylist )
28912896 if err == nil {
28922897 if adj .InjectMetadata {
28932898 if st , ok := s .Relay .GetStream (adj .Mount ); ok {
0 commit comments