]> git.treefish.org Git - photosort.git/commitdiff
only accept alternative files with same meta time
authorAlexander Schmidt <alex@treefish.org>
Tue, 20 Oct 2020 09:27:14 +0000 (11:27 +0200)
committerAlexander Schmidt <alex@treefish.org>
Tue, 20 Oct 2020 09:27:14 +0000 (11:27 +0200)
src/migrator.py
src/misc.py

index 73650ce215d18841ed681a941218d74f75aca391..7bd32e6d93f5bc187c96c7ee402780645c63233f 100644 (file)
@@ -29,10 +29,11 @@ class Migrator:
         dst_file_path = os.path.join(dst_dir, src_file_name)
 
         if not os.path.exists(dst_file_path):
-            alt_dst_dir = misc.find_file(self._base_dst_dir,
-                                         src_file_name,
-                                         os.path.getsize(src_file_path),
-                                         exclude_dir=self._base_src_dir)
+            alt_dst_dir = misc.find_alt_file(self._base_dst_dir,
+                                             src_file_name,
+                                             os.path.getsize(src_file_path),
+                                             meta_time,
+                                             exclude_dir=self._base_src_dir)
             if alt_dst_dir:
                 dst_dir = alt_dst_dir
                 dst_file_path = os.path.join(dst_dir, src_file_name)
index 93690d10cd1596513ed947dbf50292b27bc0f8dd..5b331b5404b5c24453b88dd22ea1ac54f30f48b4 100644 (file)
@@ -20,15 +20,17 @@ def extract_meta_time(file_path):
     elif is_media_file(file_path, types=['video']):
         return _extract_video_timestamp(file_path)
 
-def find_file(dir_path, file_name, file_size, exclude_dir):
-    for root, dirs, files in os.walk(dir_path):
+def find_alt_file(base_dir, name, size, meta_time, exclude_dir):
+    for root, dirs, files in os.walk(base_dir):
         if root.startswith(exclude_dir):
             continue
-        for f in files:
-            if f == file_name:
-                full_path = os.path.join(root, f)
-                if os.path.getsize(full_path) == file_size:
-                    return root
+        for alt_name in files:
+            if alt_name == name:
+                full_path = os.path.join(root, alt_name)
+                if os.path.getsize(full_path) == size:
+                    alt_meta_time = extract_meta_time(full_path)
+                    if meta_time == alt_meta_time:
+                        return root
     return None
 
 def import_file(src_file_path, dst_file_path):