diff --git a/recipes/foxnews.recipe b/recipes/foxnews.recipe index bab2a8218e..5a1c96228a 100644 --- a/recipes/foxnews.recipe +++ b/recipes/foxnews.recipe @@ -1,12 +1,15 @@ -__license__ = 'GPL v3' -__copyright__ = '2010-2011, Darko Miletic ' -''' -foxnews.com -''' - +#!/usr/bin/env python2 +# vim:fileencoding=utf-8 +from __future__ import unicode_literals, division, absolute_import, print_function from calibre.web.feeds.news import BasicNewsRecipe +def classes(classes): + q = frozenset(classes.split(' ')) + return dict( + attrs={'class': lambda x: x and frozenset(x.split()).intersection(q)}) + + class FoxNews(BasicNewsRecipe): title = 'FOX News' __author__ = 'Darko Miletic' @@ -18,34 +21,36 @@ class FoxNews(BasicNewsRecipe): no_stylesheets = True encoding = 'utf8' use_embedded_content = False + language = 'en' - publication_type = 'newsportal' remove_empty_feeds = True - extra_css = """ - body{font-family: Arial,sans-serif } - .caption{font-size: x-small} - .author,.dateline{font-size: small} - """ + extra_css = """ + body{font-family: Arial,sans-serif } + .caption{font-size: x-small} + .author,.dateline{font-size: small} + """ conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } + 'comment': description, + 'tags': category, + 'publisher': publisher, + 'language': language} remove_attributes = ['xmlns', 'lang'] - + ignore_duplicate_articles = {'title', 'url'} keep_only_tags = [ + dict(itemprop=['headline', 'articleBody']), dict(name='h1'), - dict(attrs={'class':'article-info article-body'.split()}), + classes('byline author date source article-info article-body featured-image'), ] - feeds = [ - - (u'Latest Headlines', u'http://feeds.foxnews.com/foxnews/latest'), - (u'National', u'http://feeds.foxnews.com/foxnews/national'), - (u'World', u'http://feeds.foxnews.com/foxnews/world'), - (u'Politics', u'http://feeds.foxnews.com/foxnews/politics'), - (u'Business', u'http://feeds.foxnews.com/foxnews/business'), - (u'SciTech', u'http://feeds.foxnews.com/foxnews/scitech'), - (u'Health', u'http://feeds.foxnews.com/foxnews/health'), - (u'Entertainment', u'http://feeds.foxnews.com/foxnews/entertainment') - ] + feeds = [(u'Latest Headlines', u'http://feeds.foxnews.com/foxnews/latest'), + (u'National', u'http://feeds.foxnews.com/foxnews/national'), + (u'World', u'http://feeds.foxnews.com/foxnews/world'), + (u'Politics', u'http://feeds.foxnews.com/foxnews/politics'), + (u'Opinion', u'http://feeds.foxnews.com/foxnews/opinion'), + (u'Science', u'http://feeds.foxnews.com/foxnews/science'), + (u'Technology', u'http://feeds.foxnews.com/foxnews/tech'), + (u'Health', u'http://feeds.foxnews.com/foxnews/health'), + (u'Lifestyle', u'http://feeds.foxnews.com/foxnews/section/lifestyle'), + (u'Travel', u'http://feeds.foxnews.com/foxnews/internal/travel/mixed')]