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()
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()
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()