From 1a1878445c949eb4f992a88836c1ec6bd4334051 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Mon, 26 Aug 2019 14:08:00 +0200
Subject: [PATCH] Fixed album art not being retrieved from Ogg/Opus files

---
 api/funkwhale_api/music/metadata.py   |   4 ++++
 api/tests/music/test_metadata.py      |   9 ++++++++-
 api/tests/music/with_cover.opus       | Bin 0 -> 25696 bytes
 changes/changelog.d/opus-cover.bugfix |   1 +
 4 files changed, 13 insertions(+), 1 deletion(-)
 create mode 100644 api/tests/music/with_cover.opus
 create mode 100644 changes/changelog.d/opus-cover.bugfix

diff --git a/api/funkwhale_api/music/metadata.py b/api/funkwhale_api/music/metadata.py
index 6740bd4f39..4bdf04ddee 100644
--- a/api/funkwhale_api/music/metadata.py
+++ b/api/funkwhale_api/music/metadata.py
@@ -147,6 +147,10 @@ CONF = {
             "license": {},
             "copyright": {},
             "genre": {},
+            "pictures": {
+                "field": "metadata_block_picture",
+                "to_application": clean_ogg_pictures,
+            },
         },
     },
     "OggVorbis": {
diff --git a/api/tests/music/test_metadata.py b/api/tests/music/test_metadata.py
index 121fef4b2c..521850e9a6 100644
--- a/api/tests/music/test_metadata.py
+++ b/api/tests/music/test_metadata.py
@@ -142,7 +142,14 @@ def test_can_get_metadata_from_id3_mp3_file(field, value):
 
 
 @pytest.mark.parametrize(
-    "name", ["test.mp3", "with_other_picture.mp3", "sample.flac", "with_cover.ogg"]
+    "name",
+    [
+        "test.mp3",
+        "with_other_picture.mp3",
+        "sample.flac",
+        "with_cover.ogg",
+        "with_cover.opus",
+    ],
 )
 def test_can_get_pictures(name):
     path = os.path.join(DATA_DIR, name)
diff --git a/api/tests/music/with_cover.opus b/api/tests/music/with_cover.opus
new file mode 100644
index 0000000000000000000000000000000000000000..1b92b5cbb098e47c9722c01fa9caa0700c1284f9
GIT binary patch
literal 25696
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

literal 0
HcmV?d00001

diff --git a/changes/changelog.d/opus-cover.bugfix b/changes/changelog.d/opus-cover.bugfix
new file mode 100644
index 0000000000..648e280935
--- /dev/null
+++ b/changes/changelog.d/opus-cover.bugfix
@@ -0,0 +1 @@
+Fixed album art not being retrieved from Ogg/Opus files
-- 
GitLab