diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 73f6fb2..f2d4434 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,7 +2,7 @@ pytest:
image: python:3.12-alpine
script:
- sh tests/start_tests_gitlab.sh
- - sed -i "s#/builds/DasMoorhuhn/autopicture-v3/src#${CI_PROJECT_DIR}#g" coverage.xml
+ # - sed -i "s#/builds/DasMoorhuhn/autopicture-v3/src#${CI_PROJECT_DIR}#g" coverage.xml
coverage: '/Code coverage: \d+(?:\.\d+)?/'
artifacts:
name: "$CI_JOB_NAME"
diff --git a/requirements.txt b/requirements.txt
index 52779a4..0563f9b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,6 +4,7 @@ python-magic==0.4.*
progressbar==2.5
virtualenv==20.25.*
requests==2.31.*
+filetype>=1.0.7
pytest==7.4.*
pytest-cov==4.1.*
pytest-factoryboy==2.5.*
\ No newline at end of file
diff --git a/src/meta_data_handler.py b/src/meta_data_handler.py
index 14c2252..590c012 100644
--- a/src/meta_data_handler.py
+++ b/src/meta_data_handler.py
@@ -1,17 +1,28 @@
import magic
import sys
-
+import filetype
from PIL import Image
from PIL import ExifTags
sys.path.append("../")
from src.exif_data import ExifData
+from src.mime_types import MimeTypes
video_formats = ["MP4", "MOV", "M4V", "MKV", "AVI", "WMV", "AVCHD", "WEBM", "MPEG"]
picture_formats = ["JPG", "JPEG", "PNG", "TIFF"]
key_words = ["DateTime", "Make"]
+def check_file_type(path:str):
+ # file_type = magic.from_file(mime=True, filename=path)
+ file_type = ""
+ if filetype.is_image(path):
+ file_type = "image"
+ elif filetype.is_video(path):
+ file_type = "video"
+ return MimeTypes(file_type)
+
+
def is_file_video(path:str):
mime = magic.Magic(mime=True)
file = mime.from_file(path)
@@ -30,6 +41,7 @@ def get_image_meta_data(image_path):
image_extension = str(image_path).split("/")[-1].split(".")
# TODO: Sort out videos
if is_file_video(path=image_path): return False
+ # if not is_file_picture(path=image_path): return False
img = Image.open(f"{image_path}")
values = []
for tag, text in img.getexif().items():
diff --git a/src/mime_types.py b/src/mime_types.py
new file mode 100644
index 0000000..fd2fad9
--- /dev/null
+++ b/src/mime_types.py
@@ -0,0 +1,14 @@
+class MimeTypes:
+ def __init__(self, file_type):
+ self.image = False
+ self.video = False
+ self.unsupported_file_type = False
+ self.__proceed(file_type)
+
+ def __proceed(self, file_type):
+ if file_type == "image":
+ self.image = True
+ elif file_type == "video":
+ self.video = True
+ else:
+ self.unsupported_file_type = True
diff --git a/tests/test_mime_types.py b/tests/test_mime_types.py
new file mode 100644
index 0000000..f07890d
--- /dev/null
+++ b/tests/test_mime_types.py
@@ -0,0 +1,24 @@
+import unittest
+
+from src.mime_types import MimeTypes
+
+
+class TestMimeTypes(unittest.TestCase):
+ def test_mime_type_image(self):
+ mime_type = MimeTypes(file_type="image")
+ assert mime_type.image
+ assert not mime_type.video
+ assert not mime_type.unsupported_file_type
+
+ def test_mime_type_video(self):
+ mime_type = MimeTypes(file_type="video")
+ assert not mime_type.image
+ assert mime_type.video
+ assert not mime_type.unsupported_file_type
+
+ def test_mime_type_unsupported_file_type(self):
+ mime_type = MimeTypes(file_type="not_a_valid_file_type")
+ assert not mime_type.image
+ assert not mime_type.video
+ assert mime_type.unsupported_file_type
+