Skip to content
Snippets Groups Projects
Verified Commit 21972d96 authored by Eliot Berriot's avatar Eliot Berriot
Browse files

See #170: fixed several feed parsing issues, again 2

parent d591292a
No related branches found
No related tags found
No related merge requests found
...@@ -989,3 +989,5 @@ PODCASTS_THIRD_PARTY_VISIBILITY = env("PODCASTS_THIRD_PARTY_VISIBILITY", default ...@@ -989,3 +989,5 @@ PODCASTS_THIRD_PARTY_VISIBILITY = env("PODCASTS_THIRD_PARTY_VISIBILITY", default
PODCASTS_RSS_FEED_REFRESH_DELAY = env.int( PODCASTS_RSS_FEED_REFRESH_DELAY = env.int(
"PODCASTS_RSS_FEED_REFRESH_DELAY", default=60 * 60 * 24 "PODCASTS_RSS_FEED_REFRESH_DELAY", default=60 * 60 * 24
) )
# maximum items loaded through XML feed
PODCASTS_RSS_FEED_MAX_ITEMS = env.int("PODCASTS_RSS_FEED_MAX_ITEMS", default=250)
...@@ -366,8 +366,10 @@ def get_channel_from_rss_url(url): ...@@ -366,8 +366,10 @@ def get_channel_from_rss_url(url):
) )
) )
if parsed_feed.feed.get("rights"): if parsed_feed.feed.get("rights"):
track_defaults["copyright"] = parsed_feed.feed.rights track_defaults["copyright"] = parsed_feed.feed.rights[
for entry in entries: : music_models.MAX_LENGTHS["COPYRIGHT"]
]
for entry in entries[: settings.PODCASTS_RSS_FEED_MAX_ITEMS]:
logger.debug("Importing feed item %s", entry.id) logger.debug("Importing feed item %s", entry.id)
s = RssFeedItemSerializer(data=entry) s = RssFeedItemSerializer(data=entry)
if not s.is_valid(): if not s.is_valid():
...@@ -510,7 +512,9 @@ class RssFeedSerializer(serializers.Serializer): ...@@ -510,7 +512,9 @@ class RssFeedSerializer(serializers.Serializer):
**artist_kwargs, **artist_kwargs,
defaults={ defaults={
"attributed_to": service_actor, "attributed_to": service_actor,
"name": validated_data["title"], "name": validated_data["title"][
: music_models.MAX_LENGTHS["ARTIST_NAME"]
],
"content_category": "podcast", "content_category": "podcast",
}, },
) )
...@@ -695,12 +699,16 @@ class RssFeedItemSerializer(serializers.Serializer): ...@@ -695,12 +699,16 @@ class RssFeedItemSerializer(serializers.Serializer):
{ {
"disc_number": validated_data.get("itunes_season", 1), "disc_number": validated_data.get("itunes_season", 1),
"position": validated_data.get("itunes_episode", 1), "position": validated_data.get("itunes_episode", 1),
"title": validated_data["title"], "title": validated_data["title"][
: music_models.MAX_LENGTHS["TRACK_TITLE"]
],
"artist": channel.artist, "artist": channel.artist,
} }
) )
if "rights" in validated_data: if "rights" in validated_data:
track_defaults["rights"] = validated_data["rights"] track_defaults["rights"] = validated_data["rights"][
: music_models.MAX_LENGTHS["COPYRIGHT"]
]
if "published_parsed" in validated_data: if "published_parsed" in validated_data:
track_defaults["creation_date"] = datetime.datetime.fromtimestamp( track_defaults["creation_date"] = datetime.datetime.fromtimestamp(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment