import feedparser class FeedItem: def __init__(self, url: str, title: str, description: str, date: str) -> None: self.url = url self.title = title self.description = description self.date = date class Feed: def __init__(self, url: str, items: list[FeedItem]) -> None: self.url = url self.items = items class RssReader: def get_feed(self, url: str) -> Feed: f = feedparser.parse(url) items = self.__get_items(f.entries) return Feed(url, items) def __convert_to_feed_item(self, item: feedparser.util.FeedParserDict) -> FeedItem: title = item.get('title', '') url = item.get('link', '') description = item.get('summary', '') date = item.get('published', '') return FeedItem(url, title, description, date) def __get_items(self, items: list) -> list: list_items = [] for item in items: list_items.append(self.__convert_to_feed_item(item)) return list_items