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

  1. __license__   = 'GPL v3'
  2. __copyright__ = '2008-2011, Darko Miletic <darko.miletic at gmail.com>'
  3. '''
  4. lanacion.com.ar
  5. '''
  6.  
  7. from calibre.web.feeds.news import BasicNewsRecipe
  8.  
  9. class Lanacion(BasicNewsRecipe):
  10.     title                 = 'La Nacion'
  11.     __author__            = 'Darko Miletic'
  12.     description           = "lanacion.com - Informacion actualizada las 24 horas, con noticias de Argentina y del mundo"
  13.     publisher             = 'La Nacion S.A.'
  14.     category              = 'news, politics, Argentina'
  15.     oldest_article        = 1
  16.     max_articles_per_feed = 100
  17.     use_embedded_content  = False
  18.     no_stylesheets        = True
  19.     language              = 'es_AR'
  20.     publication_type      = 'newspaper'
  21.     remove_empty_feeds    = True
  22.     masthead_url          = 'http://www.lanacion.com.ar/_ui/desktop/imgs/layout/logos/ln-home.gif'
  23.     extra_css             = """
  24.                                 h1{font-family: TheSans,Arial,sans-serif}
  25.                                 body{font-family: Arial,sans-serif}
  26.                                 img{display: block}
  27.                                 .firma,.fecha{font-size: small}
  28.                                 .epigrafe-columna{font-size: x-small}
  29.                             """
  30.  
  31.  
  32.     conversion_options = {
  33.                           'comment'  : description
  34.                         , 'tags'     : category
  35.                         , 'publisher': publisher
  36.                         , 'language' : language
  37.                         }
  38.  
  39.     remove_tags = [
  40.                      dict(name=['iframe','embed','object','meta','link'])
  41.                     ,dict(attrs={'id':['herramientas','relacionadas','ampliar']})
  42.                   ]
  43.                   
  44.     remove_tags_before = dict(attrs={'id':'encabezado'})
  45.     remove_tags_after  = dict(attrs={'id':'relacionadas'})
  46.  
  47.     feeds          = [
  48.                          (u'Politica'             , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=30'  )
  49.                         ,(u'Deportes'             , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=131' )
  50.                         ,(u'Economia'             , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=272' )
  51.                         ,(u'Informacion General'  , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=21'  )
  52.                         ,(u'Cultura'              , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=1'   )
  53.                         ,(u'Opinion'              , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=28'  )                        
  54.                         ,(u'Espectaculos'         , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=120' )
  55.                         ,(u'Exterior'             , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=7'   )
  56.                         ,(u'Ciencia&Salud'        , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=498' )
  57.                         ,(u'Revista'              , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=494' )
  58.                         ,(u'Enfoques'             , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=421' )
  59.                         ,(u'Comercio Exterior'    , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=347' )
  60.                         ,(u'Tecnologia'           , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=432' )
  61.                         ,(u'Arquitectura'         , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=366' )
  62.                         ,(u'Turismo'              , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=504' )
  63.                         ,(u'Al volante'           , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=371' )
  64.                         ,(u'El Campo'             , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=337' )
  65.                         ,(u'Moda y Belleza'       , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=1312')
  66.                         ,(u'Inmuebles Comerciales', u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=1363')
  67.                         ,(u'Countries'            , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=1348')
  68.                         ,(u'adnCultura'           , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=6734')
  69.                         ,(u'The WSJ Americas'     , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=6373')
  70.                         ,(u'Comunidad'            , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=1344')
  71.                         ,(u'Management'           , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=7380')
  72.                         ,(u'Bicentenario'         , u'http://servicios.lanacion.com.ar/herramientas/rss/categoria_id=7276')
  73.                      ]
  74.  
  75.                      
  76.     def get_article_url(self, article):
  77.         link = BasicNewsRecipe.get_article_url(self,article)
  78.         if link.startswith('http://blogs.lanacion') and not link.endswith('/'):
  79.            return self.browser.open_novisit(link).geturl()
  80.         if link.rfind('galeria=') > 0:
  81.            return None        
  82.         return link
  83.  
  84.     def get_cover_url(self):
  85.         soup = self.index_to_soup('http://www.lanacion.com.ar/edicion-impresa')
  86.         atap = soup.find(attrs={'class':'tapa'})
  87.         if atap:
  88.            li = atap.find('img')
  89.            if li:
  90.               return li['src']
  91.         return None
  92.         
  93.     def preprocess_html(self, soup):
  94.         for item in soup.findAll(style=True):
  95.             del item['style']
  96.         for item in soup.findAll('a'):
  97.             limg = item.find('img')
  98.             if item.string is not None:
  99.                str = item.string
  100.                item.replaceWith(str)
  101.             else:
  102.                if limg:
  103.                   item.name = 'div'
  104.                   item.attrs = []
  105.                else:
  106.                    str = self.tag_to_string(item)
  107.                    item.replaceWith(str)
  108.         for item in soup.findAll('img'):
  109.             if not item.has_key('alt'):
  110.                item['alt'] = 'image'            
  111.         return soup
  112.