home *** CD-ROM | disk | FTP | other *** search
/ Chip 2011 November / CHIP_2011_11.iso / Programy / Narzedzia / Calibre / calibre-0.8.18.msi / file_280 / ad.recipe < prev    next >
Text File  |  2011-09-09  |  4KB  |  87 lines

  1. import re
  2. from calibre.web.feeds.news import BasicNewsRecipe
  3.  
  4. class ADRecipe(BasicNewsRecipe):
  5.     __license__  = 'GPL v3'
  6.     __author__ = 'kwetal'
  7.     language = 'nl'
  8.     country = 'NL'
  9.     version = 1
  10.  
  11.     title = u'AD'
  12.     publisher = u'de Persgroep Publishing Nederland NV'
  13.     category = u'News, Sports, the Netherlands'
  14.     description = u'News and Sports from the Netherlands'
  15.  
  16.     oldest_article = 1.2
  17.     max_articles_per_feed = 100
  18.     use_embedded_content = False
  19.  
  20.     remove_empty_feeds = True
  21.     no_stylesheets = True
  22.     remove_javascript = True
  23.  
  24.     keep_only_tags = []
  25.     keep_only_tags.append(dict(name = 'div', attrs = {'id': 'art_box2'}))
  26.     keep_only_tags.append(dict(name = 'p', attrs = {'class': 'gen_footnote3'}))
  27.  
  28.     remove_tags = []
  29.     remove_tags.append(dict(name = 'div', attrs = {'class': 'gen_clear'}))
  30.     remove_tags.append(dict(name = 'div', attrs = {'class': re.compile(r'gen_spacer.*')}))
  31.  
  32.     remove_attributes = ['style']
  33.  
  34.     # feeds from http://ad.nl/ad/nl/1401/home/integration/nmc/frameset/ad_footer/rssFeeds.dhtml
  35.     feeds = []
  36.     feeds.append((u'Binnenland', u'http://www.ad.nl/nieuws/binnenland/rss.xml'))
  37.     feeds.append((u'Buitenland', u'http://www.ad.nl/nieuws/buitenland/rss.xml'))
  38.     feeds.append((u'Bizar', u'http://www.ad.nl/nieuws/bizar/rss.xml'))
  39.     feeds.append((u'Gezondheid & Wetenschap', u'http://www.ad.nl/nieuws/gezondheidwetenschap/rss.xml'))
  40.     feeds.append((u'Economie', u'http://www.ad.nl/nieuws/economie/rss.xml'))
  41.     feeds.append((u'Nederlands Voetbal', u'http://www.ad.nl/sportwereld/nederlandsvoetbal/rss.xml'))
  42.     feeds.append((u'Buitenlands Voetbal', u'http://www.ad.nl/sportwereld/buitenlandsvoetbal/rss.xml'))
  43.     feeds.append((u'Champions League/Europa League', u'http://www.ad.nl/sportwereld/championsleagueeuropaleague/rss.xml'))
  44.     feeds.append((u'Wielrennen', u'http://www.ad.nl/sportwereld/wielrennen/rss.xml'))
  45.     feeds.append((u'Tennis', u'http://www.ad.nl/sportwereld/tennis/rss.xml'))
  46.     feeds.append((u'Formule 1', u'http://www.ad.nl/sportwereld/formule1/rss.xml'))
  47.     feeds.append((u'Meer Sport', u'http://www.ad.nl/sportwereld/meersport/rss.xml'))
  48.     feeds.append((u'Celebs', u'http://www.ad.nl/showbizz/celebs/rss.xml'))
  49.     feeds.append((u'Film', u'http://www.ad.nl/showbizz/film/rss.xml'))
  50.     feeds.append((u'Muziek', u'http://www.ad.nl/showbizz/muziek/rss.xml'))
  51.     feeds.append((u'TV', u'http://www.ad.nl/showbizz/tv/rss.xml'))
  52.     feeds.append((u'Kunst & Literatuur', u'http://www.ad.nl/showbizz/kunstenliteratuur/rss.xml'))
  53.     feeds.append((u'Jouw Wereld', u'http://www.ad.nl/you/rss.xml'))
  54.     feeds.append((u'Consument', u'http://www.ad.nl/consument/rss.xml'))
  55.     feeds.append((u'Autowereld', u'http://www.ad.nl/autowereld/rss.xml'))
  56.     feeds.append((u'Reiswereld', u'http://www.ad.nl/reiswereld/rss.xml'))
  57.     feeds.append((u'Internet', u'http://www.ad.nl/digitaal/internet/rss.xml'))
  58.     feeds.append((u'Games', u'http://www.ad.nl/digitaal/games/rss.xml'))
  59.     feeds.append((u'Multimedia', u'http://www.ad.nl/digitaal/multimedia/rss.xml'))
  60.     feeds.append((u'Planet Watch', u'http://www.ad.nl/planetwatch/rss.xml'))
  61.  
  62.     extra_css = '''
  63.                 body {font-family: verdana, arial, helvetica, geneva, sans-serif;}
  64.                 div.captionEmbeddedMasterObject {font-size: x-small; font-style: italic; color: #696969;}
  65.                 .gen_footnote3 {font-size: small; color: #666666; margin-top: 0.6em;}
  66.                 '''
  67.  
  68.     conversion_options = {'comments': description, 'tags': category, 'language': 'en',
  69.                           'publisher': publisher}
  70.  
  71.     def print_version(self, url):
  72.         parts = url.split('/')
  73.         print_url = 'http://' + parts[2] + '/' + parts[3] + '/' + parts[4] + '/' + parts[5] + '/' \
  74.                 + parts[10] + '/' + parts[7] + '/print/' + parts[8] + '/' + parts[9] + '/' + parts[13]
  75.  
  76.         return print_url
  77.  
  78.     def preprocess_html(self, soup):
  79.         for br in soup.findAll('br'):
  80.             prev = br.findPreviousSibling(True)
  81.             if hasattr(prev, 'name') and prev.name == 'br':
  82.                 next = br.findNextSibling(True)
  83.                 if hasattr(next, 'name') and next.name == 'br':
  84.                     br.extract()
  85.  
  86.         return soup
  87.