From 7ba6e53d92ecc5a3ac56a2c035a232189d019573 Mon Sep 17 00:00:00 2001 From: Rebecca Date: Thu, 3 Oct 2019 19:57:07 -0400 Subject: [PATCH 1/2] Added mp3 support --- gallery/file_modules/__init__.py | 4 +++- gallery/file_modules/mp3.py | 12 ++++++++++++ gallery/templates/view_file.html | 6 ++++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 gallery/file_modules/mp3.py diff --git a/gallery/file_modules/__init__.py b/gallery/file_modules/__init__.py index 3ac7f11..46ff754 100644 --- a/gallery/file_modules/__init__.py +++ b/gallery/file_modules/__init__.py @@ -62,6 +62,7 @@ def generate_thumbnail(self): from gallery.file_modules.ogg import OggFile from gallery.file_modules.pdf import PDFFile from gallery.file_modules.txt import TXTFile +from gallery.file_modules.mp3 import MP3File file_mimetype_relation = { "image/jpeg": JPEGFile, @@ -77,7 +78,8 @@ def generate_thumbnail(self): "video/webm": WebMFile, "video/ogg": OggFile, "application/pdf": PDFFile, - "text/plain": TXTFile + "text/plain": TXTFile, + "audio/mpeg": MP3File } diff --git a/gallery/file_modules/mp3.py b/gallery/file_modules/mp3.py new file mode 100644 index 0000000..bb4a2d9 --- /dev/null +++ b/gallery/file_modules/mp3.py @@ -0,0 +1,12 @@ +from gallery.file_modules import FileModule +from gallery.util import DEFAULT_THUMBNAIL_NAME + +class MP3File(FileModule): + def __init__(self, file_path, dir_path): + FileModule.__init__(self, file_path, dir_path) + self.mime_type = "audio/mpeg" + + self.generate_thumbnail() + + def generate_thumbnail(self): + self.thumbnail_uuid = DEFAULT_THUMBNAIL_NAME + ".jpg" diff --git a/gallery/templates/view_file.html b/gallery/templates/view_file.html index 0864e77..828a794 100644 --- a/gallery/templates/view_file.html +++ b/gallery/templates/view_file.html @@ -64,6 +64,12 @@ {% elif file.mimetype == "application/pdf" or file.mimetype == "text/plain" %} + + {% elif file.mimetype.split('/')[0] == "audio" %} + + {% else %} Text Data {% endif %} From 769caff95a1b42e98626db62521a79a918fbcae5 Mon Sep 17 00:00:00 2001 From: Rebecca Date: Thu, 3 Oct 2019 20:58:27 -0400 Subject: [PATCH 2/2] Added wav support, added default thumbnail --- gallery/file_modules/__init__.py | 4 +++- gallery/file_modules/mp3.py | 12 +++++++++--- gallery/file_modules/wav.py | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 gallery/file_modules/wav.py diff --git a/gallery/file_modules/__init__.py b/gallery/file_modules/__init__.py index 46ff754..39917ab 100644 --- a/gallery/file_modules/__init__.py +++ b/gallery/file_modules/__init__.py @@ -63,6 +63,7 @@ def generate_thumbnail(self): from gallery.file_modules.pdf import PDFFile from gallery.file_modules.txt import TXTFile from gallery.file_modules.mp3 import MP3File +from gallery.file_modules.wav import WAVFile file_mimetype_relation = { "image/jpeg": JPEGFile, @@ -79,7 +80,8 @@ def generate_thumbnail(self): "video/ogg": OggFile, "application/pdf": PDFFile, "text/plain": TXTFile, - "audio/mpeg": MP3File + "audio/mpeg": MP3File, + "audio/x-wav": WAVFile } diff --git a/gallery/file_modules/mp3.py b/gallery/file_modules/mp3.py index bb4a2d9..6fb4c9b 100644 --- a/gallery/file_modules/mp3.py +++ b/gallery/file_modules/mp3.py @@ -1,5 +1,8 @@ +import os +from wand.image import Image + from gallery.file_modules import FileModule -from gallery.util import DEFAULT_THUMBNAIL_NAME +from gallery.util import hash_file class MP3File(FileModule): def __init__(self, file_path, dir_path): @@ -7,6 +10,9 @@ def __init__(self, file_path, dir_path): self.mime_type = "audio/mpeg" self.generate_thumbnail() - + def generate_thumbnail(self): - self.thumbnail_uuid = DEFAULT_THUMBNAIL_NAME + ".jpg" + self.thumbnail_uuid = hash_file(self.file_path) + ".jpg" + + with Image(filename="thumbnails/reedphoto.jpg") as bg: + bg.save(filename=os.path.join(self.dir_path, self.thumbnail_uuid)) diff --git a/gallery/file_modules/wav.py b/gallery/file_modules/wav.py new file mode 100644 index 0000000..71d251f --- /dev/null +++ b/gallery/file_modules/wav.py @@ -0,0 +1,18 @@ +import os +from wand.image import Image + +from gallery.file_modules import FileModule +from gallery.util import hash_file + +class WAVFile(FileModule): + def __init__(self, file_path, dir_path): + FileModule.__init__(self, file_path, dir_path) + self.mime_type = "audio/x-wav" + + self.generate_thumbnail() + + def generate_thumbnail(self): + self.thumbnail_uuid = hash_file(self.file_path) + ".jpg" + + with Image(filename="thumbnails/reedphoto.jpg") as bg: + bg.save(filename=os.path.join(self.dir_path, self.thumbnail_uuid))