From 0b3555d4c1ea1ea713e46e1456e84d2fd3c233ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LeLuCh=20B0=D0=B9?= Date: Sun, 21 Mar 2021 18:53:52 +0700 Subject: [PATCH] Skip files with the same hash --- legendary/utils/savegame_helper.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/legendary/utils/savegame_helper.py b/legendary/utils/savegame_helper.py index d7b36e8..c6a365d 100644 --- a/legendary/utils/savegame_helper.py +++ b/legendary/utils/savegame_helper.py @@ -55,7 +55,7 @@ class SaveGameHelper: epic_id: str = '', cloud_folder: str = '', include_filter: list = None, exclude_filter: list = None, - manifest_dt: datetime = None): + manifest_dt: datetime = None, ok_files: dict = None, ok_chunks: set = None): """ :param input_folder: Folder to be packaged into chunks/manifest :param app_name: App name for savegame being stored @@ -104,6 +104,10 @@ class SaveGameHelper: cur_buffer = None for _file in sorted(files, key=str.casefold): + if ok_files: + if ok_file_manifest := ok_files.get(_file, None): + m.file_manifest_list.elements.append(ok_file_manifest) + continue s = os.stat(_file) f = FileManifest() # get relative path for manifest @@ -146,6 +150,9 @@ class SaveGameHelper: f.hash = fhash.digest() m.file_manifest_list.elements.append(f) + if ok_chunks: + m.chunk_data_list.elements.extend(ok_chunks) + # write remaining chunk if it exists if cur_chunk: cur_chunk.data = cur_buffer.getvalue()