[podcasts] Try to clean up lookups
This commit is contained in:
@ -40,20 +40,20 @@ def fetch_metadata_from_rss(uri: str) -> dict[str, Any]:
|
||||
|
||||
podcast_data = {
|
||||
"podcast_name": feed.feed.get("title", "Unknown Podcast"),
|
||||
"podcast_description": feed.feed.get("description", ""),
|
||||
"podcast_link": feed.feed.get("link", ""),
|
||||
# "podcast_description": feed.feed.get("description", ""),
|
||||
# "podcast_link": feed.feed.get("link", ""),
|
||||
"podcast_producer": podcast_publisher or podcast_owner or podcast_other
|
||||
}
|
||||
|
||||
for entry in feed.entries:
|
||||
if target_guid in target_guid:
|
||||
logger.info("🎧 Episode found in RSS feed", extra=log_context)
|
||||
podcast_data["episode_name"] = entry.title
|
||||
podcast_data["title"] = entry.title
|
||||
podcast_data["episode_num"] = entry.guid
|
||||
podcast_data["episode_pub_date"] = entry.get("published", None)
|
||||
podcast_data["episode_description"] = entry.get("description", None)
|
||||
podcast_data["episode_url"] = entry.enclosures[0].href if entry.get("enclosures") else None
|
||||
podcast_data["episode_runtime_seconds"] = parse_duration(entry.get("itunes_duration", None))
|
||||
podcast_data["pub_date"] = entry.get("published", None)
|
||||
podcast_data["run_time_seconds"] = parse_duration(entry.get("itunes_duration", None))
|
||||
# podcast_data["description"] = entry.get("description", None)
|
||||
# podcast_data["episode_url"] = entry.enclosures[0].href if entry.get("enclosures") else None
|
||||
return podcast_data
|
||||
else:
|
||||
logger.info("Episode not found in RSS feed.")
|
||||
@ -112,24 +112,7 @@ def parse_mopidy_uri(uri: str) -> dict[str, Any]:
|
||||
|
||||
def get_or_create_podcast(post_data: dict) -> PodcastEpisode:
|
||||
logger.info("Looking up podcast", extra={"post_data": post_data, "media_type": "Podcast"})
|
||||
|
||||
mopidy_uri = post_data.get("mopidy_uri", "")
|
||||
parsed_data = parse_mopidy_uri(mopidy_uri)
|
||||
producer_name = parsed_data.get("podcast_producer", post_data.get("artist", ""))
|
||||
podcast_name = parsed_data.get("podcast_name", post_data.get("album", ""))
|
||||
episode_name = parsed_data.get("episode_title", parsed_data.get("episode_filename", ""))
|
||||
run_time_seconds = parsed_data.get("episode_runtime_seconds", post_data.get("run_time", 2700))
|
||||
|
||||
episode_dict = {
|
||||
}
|
||||
|
||||
return PodcastEpisode.find_or_create(
|
||||
title=episode_name,
|
||||
podcast_name=podcast_name,
|
||||
podcast_description=parsed_data.get("podcast_description", ""),
|
||||
pub_date=parsed_data.get("pub_date", ""),
|
||||
number=parsed_data.get("episode_num", 0),
|
||||
mopidy_uri=mopidy_uri,
|
||||
producer_name=producer_name,
|
||||
run_time_seconds=run_time_seconds
|
||||
)
|
||||
return PodcastEpisode.find_or_create(**parsed_data)
|
||||
|
||||
Reference in New Issue
Block a user