Skip to content

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.