#!/usr/bin/env python # vim:fileencoding=utf-8 # License: GPLv3 Copyright: 2016, Kovid Goyal from calibre.web.feeds.recipes import BasicNewsRecipe def classes(classes): q = frozenset(classes.split(' ')) return dict(attrs={ 'class': lambda x: x and frozenset(x.split()).intersection(q)}) class NationalPost(BasicNewsRecipe): title = 'National Post' __author__ = 'Kovid Goyal' description = 'Canadian national newspaper' timefmt = ' [%d %b, %Y]' language = 'en_CA' no_stylesheets = True oldest_article = 1.5 use_embedded_content = False recipe_specific_options = { 'days': { 'short': 'Oldest article to download from this news source. In days ', 'long': 'For example, 0.5, gives you articles from the past 12 hours', 'default': str(oldest_article) } } def __init__(self, *args, **kwargs): BasicNewsRecipe.__init__(self, *args, **kwargs) d = self.recipe_specific_options.get('days') if d and isinstance(d, str): self.oldest_article = float(d) keep_only_tags = [ dict(itemprop='headline'), classes('featured-image'), dict(itemprop='articleBody'), ] feeds = ['http://nationalpost.com/rss']