Skip to content

Commit

Permalink
Renames link to asset to asset_url to avoid confusion with the link k…
Browse files Browse the repository at this point in the history
…ey used for the website
  • Loading branch information
vpetersson committed Dec 30, 2023
1 parent dff9ffe commit 89adf6d
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 10 deletions.
6 changes: 4 additions & 2 deletions podcast_config.example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,16 @@ episodes:
- title: "Episode 1"
description: "This is the *first* episode. You can also include [links](https://foobar.com)."
publication_date: "2023-02-01T10:00:00"
link: "https://assets.allsamplefiles.com/mp4/ns/60s/sample-file-quad-hd.mp4"
asset_url: "https://assets.allsamplefiles.com/mp4/ns/60s/sample-file-quad-hd.mp4"
episode: 1
season: 1
episode_type: "trailer"
itunes_image: http://example.com/images/episode1.jpg
link: http://example.com/episode1
- title: "Episode 2"
description: "This is the second episode."
publication_date: "2023-02-08T11:00:00"
link: "https://assets.allsamplefiles.com/mp4/ns/60s/sample-file-hd.mp4"
asset_url: "https://assets.allsamplefiles.com/mp4/ns/60s/sample-file-hd.mp4"
episode: 2
season: 1
episode_type: "full"
25 changes: 18 additions & 7 deletions rss_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ def generate_rss(config, output_file_path):
)
continue

file_info = get_file_info(episode["link"])
file_info = get_file_info(episode["asset_url"])
item = ET.SubElement(channel, "item")
ET.SubElement(item, "pubDate").text = convert_iso_to_rfc2822(
episode["publication_date"]
Expand All @@ -154,11 +154,11 @@ def generate_rss(config, output_file_path):
ET.SubElement(item, "description").text = format_description(
episode["description"]
)
ET.SubElement(item, "guid").text = episode["link"]
ET.SubElement(item, "guid").text = episode["asset_url"]
ET.SubElement(
item,
"enclosure",
url=episode["link"],
url=episode["asset_url"],
type=file_info["content-type"],
length=str(file_info["content-length"]),
)
Expand All @@ -171,19 +171,30 @@ def generate_rss(config, output_file_path):
itunes_duration = ET.SubElement(item, "itunes:duration")
itunes_duration.text = str(file_info["duration"])

# New iTunes-specific tags
if "episode" in episode:
# iTunes-specific tags
if episode.get("episode") is not None:
itunes_episode = ET.SubElement(item, "itunes:episode")
itunes_episode.text = str(episode["episode"])

if "season" in episode:
if episode.get("season") is not None:
itunes_season = ET.SubElement(item, "itunes:season")
itunes_season.text = str(episode["season"])

if "episode_type" in episode:
if episode.get("episode_type") is not None:
itunes_episode_type = ET.SubElement(item, "itunes:episodeType")
itunes_episode_type.text = episode["episode_type"]

# Add link if available, if not, use global
link = ET.SubElement(item, "link")
link.text = episode.get("link", metadata["link"])

# Use episode specific artwork if available
itunes_image_url = episode.get("itunes_image", metadata["itunes_image"])

# Creating the 'itunes:image' element with the determined URL
itunes_image = ET.SubElement(item, "itunes:image")
itunes_image.set("href", itunes_image_url)

tree = ET.ElementTree(rss)
tree.write(output_file_path, encoding="UTF-8", xml_declaration=True)

Expand Down
2 changes: 1 addition & 1 deletion tests/test_rss_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ def test_date_conversion(self):

def test_file_info_retrieval(self):
for episode in self.config["episodes"]:
file_info = get_file_info(episode["link"])
file_info = get_file_info(episode["asset_url"])
self.assertIsInstance(file_info["content-length"], str)
self.assertIsInstance(file_info["content-type"], str)

Expand Down

0 comments on commit 89adf6d

Please sign in to comment.