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)
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):