From 6e5e21ba528f20e6d439577d499359ccfdf4ef2d Mon Sep 17 00:00:00 2001 From: veltlion <18196713+veltlion@users.noreply.github.com> Date: Tue, 17 Oct 2023 20:36:33 +0800 Subject: [PATCH] Fix thumbnail and add flac metadata capabilities (#380) * fix thumbnail * add flac cover capabilities --- media/file.py | 18 +++++++++++++++++- media/url.py | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/media/file.py b/media/file.py index ca9684a..554c790 100644 --- a/media/file.py +++ b/media/file.py @@ -157,6 +157,22 @@ class FileItem(BaseItem): as_flac_picture = mutagen.flac.Picture(base64.b64decode(pic_as_base64)) im = Image.open(BytesIO(as_flac_picture.data)) + elif ext == ".flac": + # title: 'title' + # artist: 'artist' + # album: 'album' + # cover artwork: tags.pictures + tags = mutagen.File(self.uri()) + if 'title' in tags: + self.title = tags['title'][0] + if 'artist' in tags: + self.artist = tags['artist'][0] + + if im is None: + for flac_picture in tags.pictures: + if flac_picture.type == 3: + im = Image.open(BytesIO(flac_picture.data)) + if im: self.thumbnail = self._prepare_thumbnail(im) except: @@ -167,7 +183,7 @@ class FileItem(BaseItem): @staticmethod def _prepare_thumbnail(im): - im.thumbnail((100, 100), Image.ANTIALIAS) + im.thumbnail((100, 100), Image.LANCZOS) buffer = BytesIO() im = im.convert('RGB') im.save(buffer, format="JPEG") diff --git a/media/url.py b/media/url.py index 082edec..589739b 100644 --- a/media/url.py +++ b/media/url.py @@ -228,7 +228,7 @@ class URLItem(BaseItem): self.thumbnail = self._prepare_thumbnail(im) def _prepare_thumbnail(self, im): - im.thumbnail((100, 100), Image.ANTIALIAS) + im.thumbnail((100, 100), Image.LANCZOS) buffer = BytesIO() im = im.convert('RGB') im.save(buffer, format="JPEG")