home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_3883 < prev    next >
Encoding:
Text File  |  2010-01-14  |  5.9 KB  |  91 lines

  1. #!/usr/bin/env python
  2. # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
  3. from __future__ import with_statement
  4.  
  5. __license__   = 'GPL v3'
  6. __copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
  7. __docformat__ = 'restructuredtext en'
  8.  
  9.  
  10.  
  11. from calibre.web.feeds.news import BasicNewsRecipe
  12.  
  13. class LeTemps(BasicNewsRecipe):
  14.      title          = u'Le Temps'
  15.      oldest_article = 7
  16.      max_articles_per_feed = 100
  17.      __author__ = 'Sujata Raman'
  18.      no_stylesheets = True
  19.      remove_javascript = True
  20.      recursions = 1
  21.      encoding = 'UTF-8'
  22.      match_regexps = [r'http://www.letemps.ch/Page/Uuid/[-0-9a-f]+\|[1-9]']
  23.      language = 'fr'
  24.  
  25.      keep_only_tags = [dict(name='div', attrs={'id':'content'}),
  26.                         dict(name='div', attrs={'class':'story'})
  27.                       ]
  28.      remove_tags    = [dict(name='div', attrs={'id':['footer','sub']}),
  29.                        dict(name='div', attrs={'class':['box additional','box function','right','box links','follow']})]
  30.  
  31.  
  32.      extra_css      = '''h1{font-family:"Georgia","Times New Roman",Times,serif;font-size:large;}
  33.                          .headline{font-family:"Georgia","Times New Roman",Times,serif;font-size:large;color:#990000;}
  34.                          .summary_gal{color:#777777;font-family:"Georgia","Times New Roman",Times,serif;font-size:x-small;}
  35.                          #capt{color:#1B1B1B;font-family:"Georgia","Times New Roman",Times,serif;font-size:x-small;}
  36.                          #content{font-family:"Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;}
  37.                          h2 {font-size: 24px; line-height: 25px; margin-bottom: 14px; text-transform:uppercase;}
  38.                          .author {font-size:x-small; margin: 0 0 5px 0; color:#797971; font-family:"Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;}
  39.                          .lead {font-family:"Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;font-weight: bold; margin: 10px 0;font-size:small;}
  40.                          p {margin: 0 0 10px 0;}
  41.                          h3{font-size:small;font-weight:bold;}
  42.                          .heading{color:#940026;font-size:x-small;}
  43.                          .description{font-size:x-small;font-family:"Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;color:#797971; }
  44.                          a {color:#1B1B1B; font-size:small;}
  45.                          .linkbox{font-size:x-small;color:#1B1B1B;font-family:"Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;} '''
  46.  
  47.      feeds          = [
  48.                               (u'Actualit\xe9', 'http://www.letemps.ch/rss/site/'),
  49.                               ('Monde', 'http://www.letemps.ch/rss/site/actualite/monde'),
  50.                               (u'Suisse & R\xe9gions', 'http://www.letemps.ch/rss/site/actualite/suisse_regions'),
  51.                               ('Sciences & Environnement', 'http://www.letemps.ch/rss/site/actualite/sciences_environnement'),
  52.                               (u'Soci\xe9t\xe9', 'http://www.letemps.ch/rss/site/actualite/societe'),
  53.                               ('Economie & Finance', 'http://www.letemps.ch/rss/site/economie_finance'),
  54.                               ('Economie & Finance - Finance', 'http://www.letemps.ch/rss/site/economie_finance/finance'),
  55.                               ('Economie & Finance - Fonds de placement', 'http://www.letemps.ch/rss/site/economie_finance/fonds_placement'),
  56.                               (u'Economie & Finance - Carri\xe9res', 'http://www.letemps.ch/rss/site/economie_finance/carrieres'),
  57.                               ('Culture', 'http://www.letemps.ch/rss/site/culture'),
  58.                               (u'Culture - Cin\xe9ma', 'http://www.letemps.ch/rss/site/culture/cinema'),
  59.                               ('Culture - Musiques', 'http://www.letemps.ch/rss/site/culture/musiques'),
  60.                               (u'Culture - Sc\xe9nes', 'http://www.letemps.ch/rss/site/culture/scenes'),
  61.                               ('Culture - Arts plastiques', 'http://www.letemps.ch/rss/site/culture/arts_plastiques'),
  62.                               ('Livres', 'http://www.letemps.ch/rss/site/culture/livres'),
  63.                               ('Opinions', 'http://www.letemps.ch/rss/site/opinions'),
  64.                               ('Opinions - Editoriaux', 'http://www.letemps.ch/rss/site/opinions/editoriaux'),
  65.                               (u'Opinions - Invit\xe9s', 'http://www.letemps.ch/rss/site/opinions/invites'),
  66.                               ('Opinions - Chroniques', 'http://www.letemps.ch/rss/site/opinions/chroniques'),
  67.                               ('LifeStyle', 'http://www.letemps.ch/rss/site/lifestyle'),
  68.                               ('LifeStyle - Luxe', 'http://www.letemps.ch/rss/site/lifestyle/luxe'),
  69.                               ('LifeStyle - Horlogerie & Joaillerie', 'http://www.letemps.ch/rss/site/lifestyle/horlogerie_joaillerie'),
  70.                               ('LifeStyle - Design', 'http://www.letemps.ch/rss/site/lifestyle/design'),
  71.                               ('LifeStyle - Voyages', 'http://www.letemps.ch/rss/site/lifestyle/voyages'),
  72.                               ('LifeStyle - Gastronomie', 'http://www.letemps.ch/rss/site/lifestyle/gastronomie'),
  73.                               ('LifeStyle - Architecture & Immobilier', 'http://www.letemps.ch/rss/site/lifestyle/architecture_immobilier'),
  74.                               ('LifeStyle - Automobile', 'http://www.letemps.ch/rss/site/lifestyle/automobile'),
  75.                               ('Sports', 'http://www.letemps.ch/rss/site/actualite/sports'),
  76.                              ]
  77.  
  78.      def postprocess_html(self, soup, first):
  79.         for tag in soup.findAll('div', attrs = {'class':'box pagination'}):
  80.             tag.extract()
  81.         if not first:
  82.             h = soup.find('h1')
  83.             if h is not None:
  84.                 h.extract()
  85.         return soup
  86.  
  87.    #  def print_version(self, url):
  88.    #         return url.replace('Page', 'Facet/print')
  89.  
  90.  
  91.