|
|
|
@ -14,18 +14,23 @@ HEIRACHY = ( |
|
|
|
|
|
|
|
|
|
|
|
def create_backup_directory_name(backup_info, time_format="%Y-%m-%d_%H-%M-%S"): |
|
|
|
mod_info = backup_info.copy() |
|
|
|
utc_timestamp = backup_info["backup_time"] |
|
|
|
backup_datetime = datetime.datetime.utcfromtimestamp(utc_timestamp) |
|
|
|
|
|
|
|
try: |
|
|
|
new_time = backup_datetime.strftime(time_format) |
|
|
|
assert backup_datetime == datetime.datetime.strptime(new_time, time_format) |
|
|
|
backup_info["backup_time"] = new_time |
|
|
|
mod_info["backup_time"] = new_time |
|
|
|
except (ValueError, AssertionError): |
|
|
|
raise ConfigurationException("customization", "time_format", time_format) |
|
|
|
backup_directory_name = Path("") |
|
|
|
for part in HEIRACHY: |
|
|
|
data = backup_info[part] |
|
|
|
try: |
|
|
|
data = mod_info[part] |
|
|
|
except KeyError: |
|
|
|
if part in ("app_label"): |
|
|
|
data = mod_info["app_gui_label"] |
|
|
|
if len(data) == 0: |
|
|
|
data = "DEFAULT" |
|
|
|
backup_directory_name /= data |
|
|
|
@ -38,10 +43,12 @@ def find_backup_data(property_file: Path, backup_info): |
|
|
|
backup_root = property_file.parent |
|
|
|
try: |
|
|
|
apk_hash = backup_info["app_apk_md5"] |
|
|
|
apk_file = filter( |
|
|
|
lambda apk_file: apk_hash in apk_file.name, backup_root.glob("*.apk*") |
|
|
|
apk_file = next( |
|
|
|
filter( |
|
|
|
lambda apk_file: apk_hash in apk_file.name, backup_root.glob("*.apk*") |
|
|
|
) |
|
|
|
) |
|
|
|
except KeyError: |
|
|
|
except (KeyError, StopIteration): |
|
|
|
apk_file = None |
|
|
|
related_files = list(backup_root.glob(property_file.stem + "*")) |
|
|
|
if len(related_files) > 2: |
|
|
|
|