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

  1. __license__   = 'GPL v3'
  2. __copyright__ = '2008-2010, Darko Miletic <darko.miletic at gmail.com>'
  3. '''
  4. pagina12.com.ar
  5. '''
  6.  
  7. import re
  8. from calibre.web.feeds.news import BasicNewsRecipe
  9. from calibre.ebooks.BeautifulSoup import BeautifulSoup
  10.  
  11. class Pagina12(BasicNewsRecipe):
  12.     title                 = 'Pagina - 12'
  13.     __author__            = 'Darko Miletic'
  14.     description           = 'Noticias de Argentina y el resto del mundo'
  15.     publisher             = 'La Pagina S.A.'
  16.     category              = 'news, politics, Argentina'
  17.     oldest_article        = 2
  18.     max_articles_per_feed = 200
  19.     no_stylesheets        = True
  20.     encoding              = 'cp1252'
  21.     use_embedded_content  = False
  22.     language              = 'es_AR'
  23.     remove_empty_feeds    = True
  24.     publication_type      = 'newspaper'
  25.     masthead_url          = 'http://www.pagina12.com.ar/commons/imgs/logo-home.gif'
  26.     extra_css             = """
  27.                                body{font-family: Arial,Helvetica,sans-serif }
  28.                                img{margin-bottom: 0.4em; display:block}
  29.                                #autor{font-weight: bold}
  30.                                #fecha,#epigrafe{font-size: 0.9em; margin: 5px}
  31.                                #imagen{border: 1px solid black; margin: 0 0 1.25em 1.25em; width: 232px }
  32.                                .fgprincipal{font-size: large; font-weight: bold}
  33.                             """
  34.  
  35.     conversion_options = {
  36.                           'comment'   : description
  37.                         , 'tags'      : category
  38.                         , 'publisher' : publisher
  39.                         , 'language'  : language
  40.                         }
  41.  
  42.     remove_tags = [
  43.                      dict(name=['meta','link'])
  44.                     ,dict(name='div', attrs={'id':['volver','logo','logo_suple','fin','permalink']})
  45.                   ]
  46.     remove_attributes=['lang']
  47.  
  48.  
  49.     feeds = [
  50.               (u'Edicion impresa', u'http://www.pagina12.com.ar/diario/rss/principal.xml'   )
  51.              ,(u'Espectaculos'   , u'http://www.pagina12.com.ar/diario/rss/espectaculos.xml')
  52.              ,(u'Radar'          , u'http://www.pagina12.com.ar/diario/rss/radar.xml'       )
  53.              ,(u'Radar libros'   , u'http://www.pagina12.com.ar/diario/rss/libros.xml'      )
  54.              ,(u'Cash'           , u'http://www.pagina12.com.ar/diario/rss/cash.xml'        )
  55.              ,(u'Turismo'        , u'http://www.pagina12.com.ar/diario/rss/turismo.xml'     )
  56.              ,(u'Libero'         , u'http://www.pagina12.com.ar/diario/rss/libero.xml'      )
  57.              ,(u'NO'             , u'http://www.pagina12.com.ar/diario/rss/no.xml'          )
  58.              ,(u'Las/12'         , u'http://www.pagina12.com.ar/diario/rss/las12.xml'       )
  59.              ,(u'Soy'            , u'http://www.pagina12.com.ar/diario/rss/soy.xml'         )
  60.              ,(u'Futuro'         , u'http://www.pagina12.com.ar/diario/rss/futuro.xml'      )
  61.              ,(u'M2'             , u'http://www.pagina12.com.ar/diario/rss/m2.xml'          )
  62.              ,(u'Rosario/12'     , u'http://www.pagina12.com.ar/diario/rss/rosario.xml'     )
  63.             ]
  64.  
  65.     def print_version(self, url):
  66.         return url.replace('http://www.pagina12.com.ar/','http://www.pagina12.com.ar/imprimir/')
  67.  
  68.     def get_cover_url(self):
  69.         rawc = self.index_to_soup('http://www.pagina12.com.ar/diario/principal/diario/index.html',True)
  70.         rawc2 = re.sub(r'PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN','PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"',rawc)
  71.         soup = BeautifulSoup(rawc2,fromEncoding=self.encoding,smartQuotesTo=None)
  72.         for image in soup.findAll('img',alt=True):
  73.            if image['alt'].startswith('Tapa de la fecha'):
  74.               return image['src']
  75.         return None
  76.  
  77.     def preprocess_html(self, soup):
  78.         for item in soup.findAll(style=True):
  79.             del item['style']
  80.         for item in soup.findAll('span', attrs={'id':'seccion'}):
  81.             it = item.a
  82.             it.name='span'
  83.             del it['href']
  84.             del it['title']
  85.         for item in soup.findAll('p'):
  86.             it = item.find('h3')
  87.             if it:
  88.                it.name='span'
  89.         return soup
  90.