def get_feed_from_url(url): """ Download a rss 2.0 feed and returns a class which represents that feed. :param url: URL of the feed to download. :return: Feed """ rss = get_rss_feed_parser(url) if not is_rss_feed_valid(rss): raise LookupError("Sorry! We cannot parse the rss feed. Missing required element(s).") feed = Feed() feed.title = rss["channel"]["title"] feed.link = rss["channel"]["link"] feed.description = rss["channel"]["description"] feed.image = FeedItemImage( url=rss["channel"]["image"]["url"], title=rss["channel"]["image"]["title"], link=rss["channel"]["image"]["link"], width=rss["channel"]["image"]["width"], height=rss["channel"]["image"]["height"], ) feed.items = [] for item in rss["items"]: feed.items.append( FeedItem( title=item["title"], link=item["link"], guid=item["guid"], pub_date=datetime.fromtimestamp(mktime(item["published_parsed"])), ) ) return feed