diff --git a/src/meta_data_handler.py b/src/meta_data_handler.py index 70a285a..6e98fc1 100644 --- a/src/meta_data_handler.py +++ b/src/meta_data_handler.py @@ -17,8 +17,6 @@ raw_formats = ["CR2", "RAF", "RW2", "ERF", "NRW", "NEF", "ARW", "RWZ", "EIP", "SRF", "SRW", "J6I", "FFF", "MRW", "MFW", "RWL", "X3F", "PEF", "IIQ", "CXI", "NKSC", "MDC"] -key_words = ["DateTime", "Make"] - def is_file_video(path:str): mime = magic.Magic(mime=True) @@ -36,15 +34,14 @@ def is_file_picture(path:str): def handle_raw(image:str): image_creation_time = os.path.getctime(filename=image) - print(image_creation_time) + # print(image_creation_time) def handle_image(image:str): img = Image.open(image) values = [] - for tag, text in img.getexif().items(): - if tag in ExifTags.TAGS: values.append([ExifTags.TAGS[tag], str(text)]) - return filter_date_and_make(meta_tags=filter_data(values=values), image_path=image) + for tag, text in img.getexif().items(): values.append([ExifTags.TAGS[tag], str(text)]) if tag in ExifTags.TAGS else {} + return filter_date_and_make(values, image_path=image) def handle_video(video:str): @@ -52,7 +49,7 @@ def handle_video(video:str): def get_image_meta_data(image_path): - image_extension = str(image_path).split("/")[-1].split(".")[1].upper() + image_extension = str(image_path).split(os.sep)[-1].split('.')[1].upper() # TODO: Sort out videos using mime type of file # mime = MimeTypes(file_path=image_path) @@ -61,12 +58,13 @@ def get_image_meta_data(image_path): elif image_extension in raw_formats: return handle_raw(image=image_path) -def filter_date_and_make(meta_tags:list, image_path): - make = meta_tags[0][1] - image_name = str(image_path).split("/")[-1] +def filter_date_and_make(meta_tags:list, image_path:str): + make = next((tag[1] for tag in meta_tags if tag[0] == 'Make'), None) + date_time = next((tag[1] for tag in meta_tags if tag[0] == 'DateTime'), None) - date_time = meta_tags[1][1].split(" ") - date, time = date_time[0].split(":"), date_time[1] + date_time = date_time.split(' ') # 'YYYY:MM:DD H:M:S' + image_name = str(image_path).split(os.sep)[-1] + date, time = date_time[0].split(':'), date_time[1] year, month, day = date[0], date[1], date[2] exif_data_dict = { @@ -82,14 +80,6 @@ def filter_date_and_make(meta_tags:list, image_path): return ExifData(exif_data_dict) -def filter_data(values): - """Filters the data according to the meta tags from the keyword list""" - value_return = [] - for value in values: - value_return.append(value) if value[0] in key_words else {} - return value_return - - def get_meta_data(images: list): exif_data_list = [] for image in images: diff --git a/tests/test_meta_data_handler.py b/tests/test_meta_data_handler.py index 0335113..a335c74 100644 --- a/tests/test_meta_data_handler.py +++ b/tests/test_meta_data_handler.py @@ -3,9 +3,6 @@ import os from src.meta_data_handler import get_meta_data from src.meta_data_handler import get_image_meta_data -from src.meta_data_handler import filter_data -from src.meta_data_handler import filter_date_and_make -from src.meta_data_handler import is_file_video from src.scan_folder import recursive_scan_folder TEST_IMAGES = "tests/test_files"