Merge branch '1250-rss-w3c' into 'develop'

Resolve "The feed does not pass w3c validation"

Closes #1250

See merge request funkwhale/funkwhale!1229
environments/review-docs-devel-1399dq/deployments/6607
Agate 2020-10-22 15:06:28 +02:00
commit d2ec3ccec3
5 zmienionych plików z 12 dodań i 8 usunięć

Wyświetl plik

@ -818,7 +818,7 @@ def rss_serialize_item(upload):
data = { data = {
"title": [{"value": upload.track.title}], "title": [{"value": upload.track.title}],
"itunes:title": [{"value": upload.track.title}], "itunes:title": [{"value": upload.track.title}],
"guid": [{"cdata_value": str(upload.uuid), "isPermalink": "false"}], "guid": [{"cdata_value": str(upload.uuid), "isPermaLink": "false"}],
"pubDate": [{"value": rfc822_date(upload.creation_date)}], "pubDate": [{"value": rfc822_date(upload.creation_date)}],
"itunes:duration": [{"value": rss_duration(upload.duration)}], "itunes:duration": [{"value": rss_duration(upload.duration)}],
"itunes:explicit": [{"value": "no"}], "itunes:explicit": [{"value": "no"}],
@ -841,7 +841,7 @@ def rss_serialize_item(upload):
], ],
} }
if upload.track.description: if upload.track.description:
data["itunes:subtitle"] = [{"value": upload.track.description.truncate(255)}] data["itunes:subtitle"] = [{"value": upload.track.description.truncate(254)}]
data["itunes:summary"] = [{"cdata_value": upload.track.description.rendered}] data["itunes:summary"] = [{"cdata_value": upload.track.description.rendered}]
data["description"] = [{"value": upload.track.description.as_plain_text}] data["description"] = [{"value": upload.track.description.as_plain_text}]
@ -853,7 +853,7 @@ def rss_serialize_item(upload):
tagged_items = getattr(upload.track, "_prefetched_tagged_items", []) tagged_items = getattr(upload.track, "_prefetched_tagged_items", [])
if tagged_items: if tagged_items:
data["itunes:keywords"] = [ data["itunes:keywords"] = [
{"value": " ".join([ti.tag.name for ti in tagged_items])} {"value": ",".join([ti.tag.name for ti in tagged_items])}
] ]
return data return data
@ -903,7 +903,7 @@ def rss_serialize_channel(channel):
data["itunes:category"] = [node] data["itunes:category"] = [node]
if channel.artist.description: if channel.artist.description:
data["itunes:subtitle"] = [{"value": channel.artist.description.truncate(255)}] data["itunes:subtitle"] = [{"value": channel.artist.description.truncate(254)}]
data["itunes:summary"] = [{"cdata_value": channel.artist.description.rendered}] data["itunes:summary"] = [{"cdata_value": channel.artist.description.rendered}]
data["description"] = [{"value": channel.artist.description.as_plain_text}] data["description"] = [{"value": channel.artist.description.as_plain_text}]

Wyświetl plik

@ -26,6 +26,9 @@ class FunkwhaleAccountAdapter(DefaultAccountAdapter):
def get_login_redirect_url(self, request): def get_login_redirect_url(self, request):
return "noop" return "noop"
def get_signup_redirect_url(self, request):
return "noop"
def add_message(self, *args, **kwargs): def add_message(self, *args, **kwargs):
# disable message sending # disable message sending
return return

Wyświetl plik

@ -6,7 +6,7 @@ django-environ~=0.4
# Images # Images
Pillow~=7.0 Pillow~=7.0
django-allauth~=0.42 django-allauth~=0.42.0
psycopg2-binary~=2.8 psycopg2-binary~=2.8

Wyświetl plik

@ -300,13 +300,13 @@ def test_rss_item_serializer(factories):
expected = { expected = {
"title": [{"value": upload.track.title}], "title": [{"value": upload.track.title}],
"itunes:title": [{"value": upload.track.title}], "itunes:title": [{"value": upload.track.title}],
"itunes:subtitle": [{"value": description.truncate(255)}], "itunes:subtitle": [{"value": description.truncate(254)}],
"itunes:summary": [{"cdata_value": description.rendered}], "itunes:summary": [{"cdata_value": description.rendered}],
"description": [{"value": description.as_plain_text}], "description": [{"value": description.as_plain_text}],
"guid": [{"cdata_value": str(upload.uuid), "isPermalink": "false"}], "guid": [{"cdata_value": str(upload.uuid), "isPermaLink": "false"}],
"pubDate": [{"value": serializers.rfc822_date(upload.creation_date)}], "pubDate": [{"value": serializers.rfc822_date(upload.creation_date)}],
"itunes:duration": [{"value": serializers.rss_duration(upload.duration)}], "itunes:duration": [{"value": serializers.rss_duration(upload.duration)}],
"itunes:keywords": [{"value": "pop rock"}], "itunes:keywords": [{"value": "pop,rock"}],
"itunes:explicit": [{"value": "no"}], "itunes:explicit": [{"value": "no"}],
"itunes:episodeType": [{"value": "full"}], "itunes:episodeType": [{"value": "full"}],
"itunes:season": [{"value": upload.track.disc_number}], "itunes:season": [{"value": upload.track.disc_number}],

Wyświetl plik

@ -0,0 +1 @@
Make the generated RSS feed more conformant with w3c specification (#1250)