예제 #1
0
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)
    }
예제 #2
0
def list_sources():
    db = database.open('news.sources')
    for alias, data in db.items():
        print("%s: %s (%s)" % (alias, data['title'], data['link']))
예제 #3
0
def get_news(alias):
    return database.open('news.news:%s' % alias)
예제 #4
0
def get_url(alias):
    db = database.open('news.sources')
    data = db[alias]
    return data['href']