]> git.treefish.org Git - photosort.git/blob - src/misc.py
initial commit
[photosort.git] / src / misc.py
1 import mimetypes
2 import os
3 import shutil
4
5 def walk_media_files(dir_path):
6     for root, dirs, files in os.walk(dir_path):
7         for f in files:
8             file_path = os.path.join(root, f)
9             if _is_media_file(file_path):
10                 yield (f, file_path)
11
12 def extract_timestamp(file_path):
13     return os.path.getmtime(file_path)
14
15 def find_file(dir_path, file_name, file_size):
16     for root, dirs, files in os.walk(dir_path):
17         for f in files:
18             if f == file_name:
19                 full_path = os.path.join(root, f)
20                 if os.path.getsize(full_path) == file_size:
21                     return root
22     return None
23
24 def import_file(src_file_path, dst_file_path, move=False):
25     if move:
26         shutil.move(src_file_path, dst_file_path)
27     else:
28         shutil.copyfile(src_file_path, dst_file_path)
29     shutil.copystat(src_file_path, dst_file_path)
30
31 def _is_media_file(file_path):
32     if not os.path.isfile(file_path):
33         return False
34     mime_type = mimetypes.guess_type(file_path)[0]
35     if not mime_type:
36         return False
37     if not mime_type.split('/')[0] in ['image', 'video']:
38         return False
39     return True