Example #1
0
def add_sources(urls):
    """
    Add multiple sources.

    Args:
        | urls (list)   -- list of urls to look for feeds, or
                           the feed urls themselves.
    """
    for url in urls:
        feed_url = feed.find_feed(url)
        source = Source(ext_url=feed_url)
        db.session.add(source)
    db.session.commit()
Example #2
0
def add_source(url):
    """
    Add a new source.

    Args:
        | url (str)     -- where to look for the feed,
                           or the feed itself.
    """
    feed_url = feed.find_feed(url)
    if not Source.query.filter_by(ext_url=feed_url).count():
        source = Source(ext_url=feed_url)
        db.session.add(source)
        db.session.commit()
Example #3
0
def remove_source(url, delete_articles=False):
    """
    Remove a source.

    Args:
        | url (str)                 -- where to look for the feed,
                                       or the feed itself.
        | delete_articles (bool)    -- whether or not to delete articles
                                       from this source.
    """
    feed_url = feed.find_feed(url)
    source = Source.query.filter_by(ext_url=feed_url).first()

    if source:
        # If specified, delete articles associated with
        # this source.
        if delete_articles:
            for article in source.articles:
                db.session.delete(article)

        db.session.delete(source)

        db.session.commit()