See #170: fixed several feed parsing issues, again 2
This commit is contained in:
parent
d591292a90
commit
21972d9630
|
@ -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):
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
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):
|
||||||
**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):
|
||||||
{
|
{
|
||||||
"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(
|
||||||
|
|
Loading…
Reference in New Issue