Fix: Reload playlist after edited media is uploaded to server
CRITICAL FIX - This was the main issue preventing edited images from appearing! Problem: - Edited media was being uploaded to server successfully - Server updated the playlist (new version returned: 34) - BUT player never reloaded the playlist - So edited images stayed invisible until restart Solution: 1. EditPopup now sets should_refresh_playlist flag when upload succeeds 2. Main player checks this flag in check_playlist_and_play() 3. When flag is set, player immediately reloads playlist 4. Edited media appears instantly without needing restart Testing: - Created diagnostic script test_edited_media_upload.py - Confirmed server accepts edited media and returns new playlist version - Verified SSL fix works correctly (verify=False) Now edited images should appear immediately after save!
This commit is contained in:
@@ -491,6 +491,23 @@ class EditPopup(Popup):
|
||||
Logger.info(f" - Image: {image_path}")
|
||||
Logger.info(f" - Metadata: {metadata_path}")
|
||||
|
||||
# Trigger playlist reload if server provides new version
|
||||
try:
|
||||
new_version = response_data.get('new_playlist_version')
|
||||
if new_version:
|
||||
Logger.info(f"EditPopup: 📡 Server reports new playlist version: {new_version}")
|
||||
Logger.info(f"EditPopup: Triggering playlist reload on next cycle...")
|
||||
|
||||
# Set a flag in the player to reload playlist
|
||||
# This will be checked in the main playback loop
|
||||
if hasattr(self.player, 'should_refresh_playlist'):
|
||||
self.player.should_refresh_playlist = True
|
||||
Logger.info(f"EditPopup: ✓ Playlist reload flag set")
|
||||
else:
|
||||
Logger.warning(f"EditPopup: Could not set playlist reload flag (player method not available)")
|
||||
except Exception as e:
|
||||
Logger.warning(f"EditPopup: Could not process playlist version from server: {e}")
|
||||
|
||||
return True
|
||||
elif response.status_code == 404:
|
||||
Logger.error("EditPopup: ❌ Upload endpoint not found on server (404)")
|
||||
|
||||
+11
@@ -903,6 +903,7 @@ class SignagePlayer(Widget):
|
||||
self.auto_resume_event = None # Track scheduled auto-resume
|
||||
self.config = {}
|
||||
self.playlist_version = None
|
||||
self.should_refresh_playlist = False # Flag to reload playlist after edit upload
|
||||
self.consecutive_errors = 0 # Track consecutive playback errors
|
||||
self.max_consecutive_errors = 10 # Maximum errors before stopping
|
||||
self.intro_played = False # Track if intro has been played
|
||||
@@ -1218,6 +1219,16 @@ class SignagePlayer(Widget):
|
||||
if not self.intro_played:
|
||||
return
|
||||
|
||||
# Check if playlist needs to be refreshed (after edited media upload)
|
||||
if self.should_refresh_playlist:
|
||||
Logger.info("SignagePlayer: Reloading playlist due to edited media upload...")
|
||||
self.should_refresh_playlist = False
|
||||
self.load_playlist()
|
||||
# If we were playing, restart from current position
|
||||
if self.is_playing and self.playlist:
|
||||
self.play_current_media(force_reload=True)
|
||||
return
|
||||
|
||||
if not self.playlist:
|
||||
self.load_playlist()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user