From 332c80aa54f73aa25fb31a5e2dd0482560bff384 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 6 Jan 2011 17:35:00 -0700 Subject: [PATCH] New London Day by Being --- resources/recipes/new_london_day.recipe | 74 +++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 resources/recipes/new_london_day.recipe diff --git a/resources/recipes/new_london_day.recipe b/resources/recipes/new_london_day.recipe new file mode 100644 index 0000000000..bc8c44e40e --- /dev/null +++ b/resources/recipes/new_london_day.recipe @@ -0,0 +1,74 @@ +__license__ = 'GPL 3' +__copyright__ = '2009, Kovid Goyal ' +__docformat__ = 'restructuredtext en' + +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1294342201(BasicNewsRecipe): + title = u'New London Day' + __author__ = 'Being' + description = 'State, local and business news from New London, CT' + language = 'en_GB' + oldest_article = 1 + max_articles_per_feed = 200 + + use_embedded_content = False + no_stylesheets = True + remove_javascript = True + remove_tags_before = dict(id='article') + remove_tags_after = dict(id='article') + remove_tags = [dict(attrs={'class':['articleTools', 'post-tools', 'side_tool', 'nextArticleLink clearfix']}), + dict(id=['footer', 'toolsRight', 'articleInline', 'navigation', 'archive', 'side_search', 'blog_sidebar', 'side_tool', 'side_index']), + dict(name=['script', 'noscript', 'style'])] + remove_tags_after = [ {'class':['photo_article',]} ] + remove_tags = [{'id':["moduleArticleTools","content-bottom","rail","articleRelates module","toolSet","relatedrailcontent","div-wrapper","beta","atp-comments","footer"]}, + {'class':["clearfix","relatedTitle","articleRelates module","asset-footer","tools","comments","featurePromo","featurePromo fp-topjobs brownBackground","clearfix fullSpan brownBackground","curvedContent"]}, + dict(name='font',attrs={'id':["cr-other-headlines"]})] + extra_css = ''' + h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} + h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;} + .byline {font-family:Arial,Helvetica,sans-serif; font-size:xx-small;} + .date {font-family:Arial,Helvetica,sans-serif; font-size:xx-small;} + p{font-family:Arial,Helvetica,sans-serif;font-size:small;} + .copyright {font-family:Arial,Helvetica,sans-serif;font-size:xx-small;text-align:center} + .story{font-family:Arial,Helvetica,sans-serif;font-size:small;} + .entry-asset asset hentry{font-family:Arial,Helvetica,sans-serif;font-size:small;} + .pagebody{font-family:Arial,Helvetica,sans-serif;font-size:small;} + .maincontentcontainer{font-family:Arial,Helvetica,sans-serif;font-size:small;} + .story-body{font-family:Arial,Helvetica,sans-serif;font-size:small;} + body{font-family:Helvetica,Arial,sans-serif;font-size:small;} + ''' + + feeds = [ + (u'All News', u'http://www.theday.com/section/rss'), + (u'Breaking News', u'http://www.theday.com/section/rss01'), + (u'Police and Courts', u'http://www.theday.com/section/rss02'), + (u'State News', u'http://www.theday.com/section/rss03'), + (u'Local Business', u'http://www.theday.com/section/rss04'), + (u'Entertainment', u'http://www.theday.com/section/rss05'), + (u'Opinion', u'http://www.theday.com/section/rss06'), + (u'Casinos', u'http://www.theday.com/section/rss12'), + (u'Defense and Military', u'http://www.theday.com/section/rss14'), + (u'Ann Baldelli Ruminations', u'http://www.theday.com/section/rss20'), + (u'Paul Choiniere Ruminations', u'http://www.theday.com/section/rss21'), + (u'Michael Costanza Omnivore', u'http://www.theday.com/section/rss23'), + (u'Rebecca Dangelo Reel Life', u'http://www.theday.com/section/rss25'),] + + def print_version(self, url): + return url.replace('/index.html', '/print.html') + + def get_article_url(self, article): + return article.get('feedburner_origlink', article.get('guid', article.get('link'))) + + + def postprocess_html(self, soup, first_fetch): + for t in soup.findAll(['table', 'tr', 'td']): + t.name = 'div' + + for tag in soup.findAll('form', dict(attrs={'name':["comments_form"]})): + tag.extract() + for tag in soup.findAll('font', dict(attrs={'id':["cr-other-headlines"]})): + tag.extract() + + return soup +