From 96086df15635e18d3d1e789ba3147be7a612a433 Mon Sep 17 00:00:00 2001 From: Agate 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)