From 547c4ea55476345818a005deb1149451ac0690fe Mon Sep 17 00:00:00 2001 From: Agate Date: Thu, 6 Aug 2020 10:53:04 +0200 Subject: [PATCH] Don't download file as attachment for podcast --- api/funkwhale_api/audio/serializers.py | 4 +++- api/funkwhale_api/music/models.py | 5 ++++- api/tests/audio/test_serializers.py | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/api/funkwhale_api/audio/serializers.py b/api/funkwhale_api/audio/serializers.py index d6d75a58f..be67539e0 100644 --- a/api/funkwhale_api/audio/serializers.py +++ b/api/funkwhale_api/audio/serializers.py @@ -829,7 +829,9 @@ def rss_serialize_item(upload): "enclosure": [ { # we enforce MP3, since it's the only format supported everywhere - "url": federation_utils.full_url(upload.get_listen_url(to="mp3")), + "url": federation_utils.full_url( + upload.get_listen_url(to="mp3", download=False) + ), "length": upload.size or 0, "type": "audio/mpeg", } diff --git a/api/funkwhale_api/music/models.py b/api/funkwhale_api/music/models.py index 121c0f3ff..f95a8bb3b 100644 --- a/api/funkwhale_api/music/models.py +++ b/api/funkwhale_api/music/models.py @@ -890,10 +890,13 @@ class Upload(models.Model): def listen_url(self): return self.track.listen_url + "?upload={}".format(self.uuid) - def get_listen_url(self, to=None): + def get_listen_url(self, to=None, download=True): url = self.listen_url if to: url += "&to={}".format(to) + if not download: + url += "&download=false" + return url @property diff --git a/api/tests/audio/test_serializers.py b/api/tests/audio/test_serializers.py index 0d1c91cc5..1667dfe2c 100644 --- a/api/tests/audio/test_serializers.py +++ b/api/tests/audio/test_serializers.py @@ -314,7 +314,9 @@ def test_rss_item_serializer(factories): "link": [{"value": federation_utils.full_url(upload.track.get_absolute_url())}], "enclosure": [ { - "url": federation_utils.full_url(upload.get_listen_url("mp3")), + "url": federation_utils.full_url( + upload.get_listen_url("mp3", download=False) + ), "length": upload.size, "type": "audio/mpeg", }