def add_source(alias, url): """Adds a new feed to the sources list.""" if '://' not in url: url = 'http://' + url # Verify if it has a valid RSS feed: result = feedparser.parse(url) if result['bozo']: raise ValueError("This URL doesn't seem to point to a valid feed.") if result['status'] >= 400: raise ValueError("This feed seems to be unavailable: %s" % result['status']) feed = result['feed'] href = result['href'] title = feed['title'] link = feed['link'] # Effectively adds the source to the database: db = database.open('news.sources') db[alias] = { 'title': title, 'link': link, 'href': href, 'subtitle': feed.get('subtitle', None), 'language': feed.get('language', None) }
def list_sources(): db = database.open('news.sources') for alias, data in db.items(): print("%s: %s (%s)" % (alias, data['title'], data['link']))
def get_news(alias): return database.open('news.news:%s' % alias)
def get_url(alias): db = database.open('news.sources') data = db[alias] return data['href']