Fixed format checks for loading exif data
This commit is contained in:
parent
e8fb3b378c
commit
184e3d9558
1 changed files with 23 additions and 8 deletions
|
|
@ -3,7 +3,6 @@ import io
|
||||||
import os
|
import os
|
||||||
import glob
|
import glob
|
||||||
import datetime
|
import datetime
|
||||||
import copy
|
|
||||||
import yaml
|
import yaml
|
||||||
import logging
|
import logging
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
@ -47,6 +46,16 @@ def pull_usercomment_dict(filepath):
|
||||||
|
|
||||||
|
|
||||||
def extract_with_priority(key, best_dict, backup_dict):
|
def extract_with_priority(key, best_dict, backup_dict):
|
||||||
|
"""
|
||||||
|
Extracts a value from one of two dictionaries, prioritising one over the other.
|
||||||
|
Second dictionary is used only if the key doesn't exist in the first.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
key: Key to search for
|
||||||
|
best_dict: Ideal dictionary to use
|
||||||
|
backup_dict: Fallback dictionary
|
||||||
|
|
||||||
|
"""
|
||||||
if key in best_dict:
|
if key in best_dict:
|
||||||
return best_dict[key]
|
return best_dict[key]
|
||||||
elif key in backup_dict:
|
elif key in backup_dict:
|
||||||
|
|
@ -75,7 +84,7 @@ def capture_from_dict(capture_dict):
|
||||||
capture.split_file_path(capture.file)
|
capture.split_file_path(capture.file)
|
||||||
capture.temporary = capture_dict['temporary']
|
capture.temporary = capture_dict['temporary']
|
||||||
|
|
||||||
if capture.format in EXIF_FORMATS:
|
if capture.format.upper() in EXIF_FORMATS:
|
||||||
md_exif = pull_usercomment_dict(capture.file)
|
md_exif = pull_usercomment_dict(capture.file)
|
||||||
else:
|
else:
|
||||||
md_exif = {}
|
md_exif = {}
|
||||||
|
|
@ -236,10 +245,11 @@ class CaptureObject(object):
|
||||||
Args:
|
Args:
|
||||||
filepath (str): String of the full file path, including file format extension
|
filepath (str): String of the full file path, including file format extension
|
||||||
"""
|
"""
|
||||||
self.filefolder, self.filename = os.path.split(
|
self.filefolder, self.filename = os.path.split(filepath) # Split the full file path into a folder and a filename
|
||||||
filepath) # Split the full file path into a folder and a filename
|
|
||||||
self.basename = os.path.splitext(self.filename)[0] # Split the filename out from it's file extension
|
self.basename = os.path.splitext(self.filename)[0] # Split the filename out from it's file extension
|
||||||
self.metadataname = "{}.yaml".format(self.basename)
|
|
||||||
|
if not self.format:
|
||||||
|
self.format = self.filename.split('.')[-1]
|
||||||
|
|
||||||
def lock(self):
|
def lock(self):
|
||||||
"""Set locked flag to True."""
|
"""Set locked flag to True."""
|
||||||
|
|
@ -275,10 +285,10 @@ class CaptureObject(object):
|
||||||
Add a new tag to the ``tags`` list attribute.
|
Add a new tag to the ``tags`` list attribute.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
tag (list): List of tags to be added
|
tags (list): List of tags to be added
|
||||||
"""
|
"""
|
||||||
for tag in tags:
|
for tag in tags:
|
||||||
if not tag in self.tags:
|
if tag not in self.tags:
|
||||||
self.tags.append(tag)
|
self.tags.append(tag)
|
||||||
|
|
||||||
self.save_metadata()
|
self.save_metadata()
|
||||||
|
|
@ -293,6 +303,8 @@ class CaptureObject(object):
|
||||||
if tag in self.tags:
|
if tag in self.tags:
|
||||||
self.tags = [new_tag for new_tag in self.tags if new_tag != tag]
|
self.tags = [new_tag for new_tag in self.tags if new_tag != tag]
|
||||||
|
|
||||||
|
self.save_metadata()
|
||||||
|
|
||||||
# HANDLE METADATA
|
# HANDLE METADATA
|
||||||
|
|
||||||
def put_metadata(self, data: dict) -> None:
|
def put_metadata(self, data: dict) -> None:
|
||||||
|
|
@ -311,7 +323,10 @@ class CaptureObject(object):
|
||||||
"""
|
"""
|
||||||
global EXIF_FORMATS
|
global EXIF_FORMATS
|
||||||
|
|
||||||
if self.format in EXIF_FORMATS and self.file_exists:
|
print(self.format)
|
||||||
|
print(EXIF_FORMATS)
|
||||||
|
|
||||||
|
if self.format.upper() in EXIF_FORMATS and self.file_exists:
|
||||||
logging.debug("Writing exif data to capture file")
|
logging.debug("Writing exif data to capture file")
|
||||||
# Extract current Exif data
|
# Extract current Exif data
|
||||||
exif_dict = piexif.load(self.file)
|
exif_dict = piexif.load(self.file)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue