From 96086df15635e18d3d1e789ba3147be7a612a433 Mon Sep 17 00:00:00 2001
From: Agate <me@agate.blue>
Date: Wed, 15 Apr 2020 12:07:04 +0200
Subject: [PATCH] Fixed attachments URL not honoring media URL

---
 api/funkwhale_api/common/models.py |  4 ++--
 api/funkwhale_api/common/utils.py  | 11 +++++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/api/funkwhale_api/common/models.py b/api/funkwhale_api/common/models.py
index 35f64406e..1a31b2dcd 100644
--- a/api/funkwhale_api/common/models.py
+++ b/api/funkwhale_api/common/models.py
@@ -256,14 +256,14 @@ class Attachment(models.Model):
     @property
     def download_url_original(self):
         if self.file:
-            return federation_utils.full_url(self.file.url)
+            return utils.media_url(self.file.url)
         proxy_url = reverse("api:v1:attachments-proxy", kwargs={"uuid": self.uuid})
         return federation_utils.full_url(proxy_url + "?next=original")
 
     @property
     def download_url_medium_square_crop(self):
         if self.file:
-            return federation_utils.full_url(self.file.crop["200x200"].url)
+            return utils.media_url(self.file.crop["200x200"].url)
         proxy_url = reverse("api:v1:attachments-proxy", kwargs={"uuid": self.uuid})
         return federation_utils.full_url(proxy_url + "?next=medium_square_crop")
 
diff --git a/api/funkwhale_api/common/utils.py b/api/funkwhale_api/common/utils.py
index 6c4238fc4..b721bdf7b 100644
--- a/api/funkwhale_api/common/utils.py
+++ b/api/funkwhale_api/common/utils.py
@@ -134,6 +134,17 @@ def join_url(start, end):
     return start + end
 
 
+def media_url(path):
+    if settings.MEDIA_URL.startswith("http://") or settings.MEDIA_URL.startswith(
+        "https://"
+    ):
+        return join_url(settings.MEDIA_URL, path)
+
+    from funkwhale_api.federation import utils as federation_utils
+
+    return federation_utils.full_url(path)
+
+
 def spa_reverse(name, args=[], kwargs={}):
     return urls.reverse(name, urlconf=settings.SPA_URLCONF, args=args, kwargs=kwargs)
 
-- 
GitLab