Rss
the_data_packet.generation.rss
¶
RSS feed generation and management for podcast episodes.
logger = get_logger(__name__)
module-attribute
¶
PodcastEpisode
dataclass
¶
Represents a podcast episode for RSS feed.
title: str
instance-attribute
¶
description: str
instance-attribute
¶
audio_url: str
instance-attribute
¶
pub_date: datetime
instance-attribute
¶
episode_number: Optional[int] = None
class-attribute
instance-attribute
¶
duration: Optional[str] = None
class-attribute
instance-attribute
¶
file_size: Optional[int] = None
class-attribute
instance-attribute
¶
guid: Optional[str] = None
class-attribute
instance-attribute
¶
author: Optional[str] = None
class-attribute
instance-attribute
¶
__init__(title: str, description: str, audio_url: str, pub_date: datetime, episode_number: Optional[int] = None, duration: Optional[str] = None, file_size: Optional[int] = None, guid: Optional[str] = None, author: Optional[str] = None) -> None
¶
__post_init__() -> None
¶
Generate GUID if not provided.
RSSGenerationResult
dataclass
¶
Result of RSS feed generation.
success: bool = False
class-attribute
instance-attribute
¶
rss_content: Optional[str] = None
class-attribute
instance-attribute
¶
local_path: Optional[Path] = None
class-attribute
instance-attribute
¶
s3_url: Optional[str] = None
class-attribute
instance-attribute
¶
error_message: Optional[str] = None
class-attribute
instance-attribute
¶
__init__(success: bool = False, rss_content: Optional[str] = None, local_path: Optional[Path] = None, s3_url: Optional[str] = None, error_message: Optional[str] = None) -> None
¶
RSSGenerator
¶
Generates and manages RSS feeds for podcast episodes.
config = config or get_config()
instance-attribute
¶
s3_storage: Optional[S3Storage] = None
instance-attribute
¶
__init__(config: Optional[Config] = None) -> None
¶
Initialize RSS generator.
generate_episode_from_articles(articles: List[Article], audio_url: str, episode_number: Optional[int] = None, duration: Optional[str] = None, file_size: Optional[int] = None, existing_episodes: Optional[List[PodcastEpisode]] = None) -> PodcastEpisode
¶
Generate a podcast episode from articles.
generate_rss_feed(episodes: List[PodcastEpisode], channel_title: Optional[str] = None, channel_description: Optional[str] = None, channel_link: Optional[str] = None, channel_image_url: Optional[str] = None, channel_email: Optional[str] = None) -> str
¶
Generate complete RSS feed XML.
load_existing_feed(rss_content: str) -> List[PodcastEpisode]
¶
Parse existing RSS feed and extract episodes.
update_rss_feed(new_episode: PodcastEpisode) -> RSSGenerationResult
¶
Update RSS feed with new episode.