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

  1. from calibre.web.feeds.news import BasicNewsRecipe
  2. from calibre.ebooks.BeautifulSoup import Tag
  3.  
  4. class VrijNederlandRecipe(BasicNewsRecipe) :
  5.     __license__   = 'GPL v3'
  6.     __author__ = 'kwetal'
  7.     language = 'nl'
  8.     locale = 'nl'
  9.     version = 1
  10.  
  11.     title = u'Vrij Nederland'
  12.     publisher = u'Weekbladpers Tijdschriften'
  13.     category = u'News, Opinion'
  14.     description = u'Weekly opinion magazine from the Netherlands'
  15.  
  16.     oldest_article = 7
  17.     max_articles_per_feed = 100
  18.     use_embedded_content = False
  19.  
  20.     no_stylesheets = True
  21.     remove_javascript = True
  22.     # Does not seem to work
  23.     #extra_css = '''li.calibre2 {padding-bottom: 40px}'''
  24.  
  25.     conversion_options = {'publisher': publisher, 'tags': category, 'comments': description}
  26.  
  27.     feeds = []
  28.     feeds.append((u'Politiek', u'http://www.vn.nl/politiek.rss'))
  29.     feeds.append((u'Buitenland', u'http://www.vn.nl/buitenland.rss'))
  30.     feeds.append((u'Economie', u'http://www.vn.nl/economie.rss'))
  31.     feeds.append((u'Justitie', u'http://www.vn.nl/justitie.rss'))
  32.     feeds.append((u'Samenleving', u'http://www.vn.nl/samenleving.rss'))
  33.     feeds.append((u'Crime', u'http://www.vn.nl/crime.rss'))
  34.     feeds.append((u'Media', u'http://www.vn.nl/media.rss'))
  35.     feeds.append((u'De Republiek der Letteren', u'http://www.vn.nl/republiek.rss'))
  36.     feeds.append((u'Max van Weezel', u'http://www.vn.nl/vanweezel.rss'))
  37.     feeds.append((u'Ko Colijn', u'http://www.vn.nl/colijn.rss'))
  38.     feeds.append((u'Kees Kraaijeveld', u'http://www.vn.nl/kraaijeveld.rss'))
  39.     feeds.append((u'Frank Kalshoven', u'http://www.vn.nl/kalshoven.rss'))
  40.     feeds.append((u'Stephan Sanders', u'http://www.vn.nl/sanders.rss'))
  41.     feeds.append((u'Micha Wertheim', u'http://www.vn.nl/wertheim.rss'))
  42.     feeds.append((u'Arnon Grunberg', u'http://www.vn.nl/grunberg.rss'))
  43.     feeds.append((u'Carel Peeters', u'http://www.vn.nl/carelpeeters.rss'))
  44.  
  45.     keep_only_tags = [dict(name = 'div', attrs = {'class' : 'cl-column column-one'})]
  46.  
  47.     remove_tags = []
  48.     remove_tags.append(dict(name = 'div', attrs = {'class' : 'wpg-element guest-book-overview'}))
  49.     remove_tags.append(dict(name = 'div', attrs = {'class' : 'wpg-element forum-message-form'}))
  50.     remove_tags.append(dict(name = 'div', attrs = {'class' : 'mediaterms'}))
  51.     remove_tags.append(dict(name = 'div', attrs = {'class': 'label-term'}))
  52.     remove_tags.append(dict(name =  'div', attrs =  {'class': 'wpg-element Media-Collection-Element-Artikel-Lijst'}))
  53.     remove_tags.append(dict(name = 'object'))
  54.     remove_tags.append(dict(name = 'link'))
  55.     remove_tags.append(dict(name = 'meta'))
  56.  
  57.     def preprocess_html(self, soup):
  58.         # Just clean up the result a little
  59.         meta = soup.find('div', attrs = {'class': 'meta'})
  60.         if meta:
  61.             link = meta.find('span', attrs = {'class': 'link'})
  62.             if link:
  63.                 link.extract()
  64.             for seperator in meta.findAll('span', attrs = {'class': 'seperator'}):
  65.                 seperator.extract()
  66.  
  67.         # Their header is full of 'if IE6/7/8' tags. Just get rid of it altogether
  68.         theirHead = soup.head
  69.         theirHead.extract()
  70.         myHead = Tag(soup, 'head')
  71.         soup.insert(0, myHead)
  72.  
  73.         return soup
  74.  
  75.  
  76.  
  77.