From 5b08cea6ded3a7bf61445cad70e65d2dfc8c9ed3 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Tue, 11 Apr 2023 15:00:18 +0200 Subject: [PATCH] Delete animated covers properly --- src/preferences.py | 28 ++++++++++++++++++++++++++++ src/window.py | 3 +++ 2 files changed, 31 insertions(+) diff --git a/src/preferences.py b/src/preferences.py index 1bfb63e..1e7a95f 100644 --- a/src/preferences.py +++ b/src/preferences.py @@ -346,6 +346,9 @@ class PreferencesWindow(Adw.PreferencesWindow): deleted_covers_dir = ( self.parent_widget.cache_dir / "cartridges" / "deleted_covers" ) + deleted_animated_covers_dir = ( + self.parent_widget.cache_dir / "cartridges" / "deleted_animated_covers" + ) for game_id in self.removed_games: data = get_games(self.parent_widget, [game_id])[game_id] @@ -360,6 +363,14 @@ class PreferencesWindow(Adw.PreferencesWindow): / "covers" / f"{game_id}.tiff", ) + if (deleted_animated_covers_dir / f"{game_id}.gif").is_file(): + move( + deleted_animated_covers_dir / f"{game_id}.gif", + self.parent_widget.data_dir + / "cartridges" + / "animated_covers" + / f"{game_id}.gif", + ) self.parent_widget.update_games(self.removed_games) self.removed_games = [] self.toast.dismiss() @@ -370,6 +381,11 @@ class PreferencesWindow(Adw.PreferencesWindow): ) deleted_covers_dir.mkdir(parents=True, exist_ok=True) + deleted_animated_covers_dir = ( + self.parent_widget.cache_dir / "cartridges" / "deleted_animated_covers" + ) + deleted_animated_covers_dir.mkdir(parents=True, exist_ok=True) + for game in get_games(self.parent_widget).values(): if "removed" not in game: self.removed_games.append(game["game_id"]) @@ -383,8 +399,20 @@ class PreferencesWindow(Adw.PreferencesWindow): / f'{game["game_id"]}.tiff' ) + animated_cover_path = ( + self.parent_widget.data_dir + / "cartridges" + / "animated_covers" + / f'{game["game_id"]}.gif' + ) + if cover_path.is_file(): move(cover_path, deleted_covers_dir / f'{game["game_id"]}.tiff') + if animated_cover_path.is_file(): + move( + animated_cover_path, + deleted_animated_covers_dir / f'{game["game_id"]}.gif', + ) self.parent_widget.update_games(self.parent_widget.games) if self.parent_widget.stack.get_visible_child() == self.parent_widget.overview: diff --git a/src/window.py b/src/window.py index d088f2f..3abfd7b 100644 --- a/src/window.py +++ b/src/window.py @@ -113,6 +113,9 @@ class CartridgesWindow(Adw.ApplicationWindow): (self.data_dir / "cartridges" / "covers" / f"{game_id}.tiff").unlink( missing_ok=True ) + ( + self.data_dir / "cartridges" / "animated_covers" / f"{game_id}.gif" + ).unlink(missing_ok=True) rmtree(self.cache_dir / "cartridges" / "deleted_covers", True)