diff --git a/requirements.txt b/requirements.txt index 8b2e6e8..5a8b4cb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,3 +4,4 @@ idna==3.3 pyTelegramBotAPI==4.5.0 requests==2.27.1 urllib3==1.26.9 +feedparser==6.0.2 \ No newline at end of file diff --git a/rss.py b/rss.py new file mode 100644 index 0000000..8389972 --- /dev/null +++ b/rss.py @@ -0,0 +1,35 @@ +import feedparser + + +class FeedItem(): + def __init__(self, url: str, title: str, description: str) -> None: + self.url = url + self.title = title + self.description = description + +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: dict) -> FeedItem: + if 'title' in item: + title = item['title'] + if 'link' in item: + url = item['link'] + if 'summary' in item: + description = item['summary'] + return FeedItem(url, title, description) + + 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 +