Spaces:
Runtime error
Runtime error
'''Helper functions for MCP tools.''' | |
import logging | |
import feedparser | |
from findfeed import search | |
def get_feed(website_url: str) -> str: | |
'''Finds the RSS feed URI for a website given the website's url. | |
Args: | |
website_url: The url for the website to find the RSS feed for | |
Returns: | |
The website's RSS feed URI as a string | |
''' | |
logger = logging.getLogger(__name__ + '.get_content') | |
feeds = search(website_url) | |
if len(feeds) > 0: | |
return str(feeds[0].url) | |
else: | |
return f'No feed found for {website_url}' | |
def parse_feed(feed_uri: str) -> list: | |
'''Gets content from a remote RSS feed URI. | |
Args: | |
feed_uri: The RSS feed to get content from | |
Returns: | |
List of titles for the 10 most recent entries in the RSS feed. | |
''' | |
logger = logging.getLogger(__name__ + '.parse_feed') | |
feed = feedparser.parse(feed_uri) | |
logger.info('%s yieled %s entries', feed_uri, len(feed.entries)) | |
titles = [] | |
for entry in feed.entries: | |
logger.debug('Entry attributes: %s', list(entry.keys())) | |
if 'title' in entry: | |
titles.append(entry.title) | |
if len(titles) >= 10: | |
break | |
return titles | |