From 310efb213aba3cb5cad857f8460d681d1b454de2 Mon Sep 17 00:00:00 2001 From: Scheianu Ionut Date: Mon, 12 May 2025 10:21:32 +0300 Subject: [PATCH] updted to delet unused files --- app/app.py | 55 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/app/app.py b/app/app.py index b76d0d2..38168f6 100755 --- a/app/app.py +++ b/app/app.py @@ -296,6 +296,7 @@ def periodic_playlist_check(): Logger.info("Checking for playlist updates...") download_playlist_files_from_server() # Download playlist from the server create_updated_playlist() # Create the updated playlist with local file paths + delete_old_logs_and_unused_files() # Delete old logs and unused media files Logger.info("Playlist check complete.") except Exception as e: Logger.error(f"Error during playlist check: {e}") @@ -307,25 +308,53 @@ def start_playlist_check_thread(): thread.start() # Function to delete log files older than 2 days -def delete_old_logs(log_folder='./logs', days=2): +def delete_old_logs_and_unused_files(log_folder='./logs', resurse_folder='./static/resurse', days=2): + """Delete old log files and unused media files.""" Logger.info("Checking for old log files to delete...") if not os.path.exists(log_folder): Logger.warning(f"Log folder does not exist: {log_folder}") + else: + now = time.time() + cutoff = now - (days * 86400) # Convert days to seconds + + for file_name in os.listdir(log_folder): + file_path = os.path.join(log_folder, file_name) + if os.path.isfile(file_path): + file_modified_time = os.path.getmtime(file_path) + if file_modified_time < cutoff: + try: + os.remove(file_path) + Logger.info(f"Deleted old log file: {file_path}") + except Exception as e: + Logger.error(f"Failed to delete log file {file_path}: {e}") + + Logger.info("Checking for unused media files to delete...") + if not os.path.exists(resurse_folder): + Logger.warning(f"Resurse folder does not exist: {resurse_folder}") return - now = time.time() - cutoff = now - (days * 86400) # Convert days to seconds + # Load the updated playlist to determine which files are in use + updated_playlist_file = './updated_playlist.json' + used_files = set() + if os.path.exists(updated_playlist_file): + with open(updated_playlist_file, 'r') as file: + updated_playlist = json.load(file) + for media in updated_playlist: + file_name = os.path.basename(media.get('url', '')) + used_files.add(file_name) - for file_name in os.listdir(log_folder): - file_path = os.path.join(log_folder, file_name) - if os.path.isfile(file_path): - file_modified_time = os.path.getmtime(file_path) - if file_modified_time < cutoff: - try: - os.remove(file_path) - Logger.info(f"Deleted old log file: {file_path}") - except Exception as e: - Logger.error(f"Failed to delete log file {file_path}: {e}") + # Always keep playlist.json + used_files.add('playlist.json') + + # Delete files in the resurse folder that are not in the updated playlist + for file_name in os.listdir(resurse_folder): + file_path = os.path.join(resurse_folder, file_name) + if os.path.isfile(file_path) and file_name not in used_files: + try: + os.remove(file_path) + Logger.info(f"Deleted unused media file: {file_path}") + except Exception as e: + Logger.error(f"Failed to delete media file {file_path}: {e}") if __name__ == '__main__': initialize_playlist() # Check and download playlist on startup