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

  1.  
  2. __license__   = 'GPL v3'
  3. __copyright__ = '2009-2010, Darko Miletic <darko.miletic at gmail.com>'
  4.  
  5. '''
  6. www.nzz.ch
  7. '''
  8.  
  9. from calibre.web.feeds.recipes import BasicNewsRecipe
  10.  
  11. class Nzz(BasicNewsRecipe):
  12.     title                 = 'NZZ Online'
  13.     __author__            = 'Darko Miletic'
  14.     description           = 'Laufend aktualisierte Nachrichten, Analysen und Hintergruende zu Politik, Wirtschaft, Kultur und Sport'
  15.     publisher             = 'NZZ AG'
  16.     category              = 'news, politics, nachrichten, Switzerland'
  17.     oldest_article        = 2
  18.     max_articles_per_feed = 100
  19.     no_stylesheets        = True
  20.     encoding              = 'utf-8'
  21.     use_embedded_content  = False
  22.     language              = 'de'
  23.     extra_css             = """
  24.                                body{font-family: Georgia,"Times New Roman",Times,serif }
  25.                                .artikel h3,.artikel h4,.bildLegende,.question,.autor{font-family: Arial,Verdana,Helvetica,sans-serif}
  26.                                .bildLegende{font-size: small}
  27.                                .autor{font-size: 0.9375em; color: #666666}
  28.                                .quote{font-size: large !important; 
  29.                                       font-style: italic; 
  30.                                       font-weight: normal !important; 
  31.                                       border-bottom: 1px dotted #BFBFBF; 
  32.                                       border-top: 1px dotted #BFBFBF; 
  33.                                       line-height: 1.25em}
  34.                                 .quelle{color: #666666; font-style: italic; white-space: nowrap}
  35.                             """
  36.  
  37.     conversion_options = {
  38.                              'comments'  : description
  39.                             ,'tags'      : category
  40.                             ,'language'  : language
  41.                             ,'publisher' : publisher
  42.                          }
  43.  
  44.     keep_only_tags = [dict(name='div', attrs={'class':'zone'})]
  45.     remove_tags_before = dict(name='p', attrs={'class':'dachzeile'})
  46.     remove_tags_after=dict(name='p', attrs={'class':'fussnote'})
  47.     remove_attributes=['width','height','lang']
  48.     remove_tags = [
  49.                      dict(name=['object','link','base','meta','iframe'])
  50.                     ,dict(attrs={'id':'content_rectangle_1'})
  51.                     ,dict(attrs={'class':['weiterfuehrendeLinks','fussnote','video']})                    
  52.                   ]
  53.  
  54.     feeds = [
  55.                (u'International' , u'http://www.nzz.ch/nachrichten/international?rss=true')
  56.               ,(u'Schweiz'       , u'http://www.nzz.ch/nachrichten/schweiz?rss=true')
  57.               ,(u'Wirtschaft'    , u'http://www.nzz.ch/nachrichten/wirtschaft/aktuell?rss=true')
  58.               ,(u'Finanzmaerkte' , u'http://www.nzz.ch/finanzen/nachrichten?rss=true')
  59.               ,(u'Zuerich'       , u'http://www.nzz.ch/nachrichten/zuerich?rss=true')
  60.               ,(u'Sport'         , u'http://www.nzz.ch/nachrichten/sport?rss=true')
  61.               ,(u'Panorama'      , u'http://www.nzz.ch/nachrichten/panorama?rss=true')
  62.               ,(u'Kultur'        , u'http://www.nzz.ch/nachrichten/kultur/aktuell?rss=true')
  63.               ,(u'Wissenschaft'  , u'http://www.nzz.ch/nachrichten/wissenschaft?rss=true')
  64.               ,(u'Medien'        , u'http://www.nzz.ch/nachrichten/medien?rss=true')
  65.               ,(u'Reisen'        , u'http://www.nzz.ch/magazin/reisen?rss=true')
  66.             ]
  67.  
  68.     def preprocess_html(self, soup):
  69.         for item in soup.findAll(style=True):
  70.             del item['style']
  71.         return self.adeify_images(soup)
  72.