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

  1. #!/usr/bin/python
  2. # encoding: utf-8
  3.  
  4. from calibre.web.feeds.news import BasicNewsRecipe
  5.  
  6. class AdvancedUserRecipe1290663986(BasicNewsRecipe):
  7.     title          = u'Animal Pol\u00EDtico'
  8.     publisher      = u'Animal Pol\u00EDtico'
  9.     category       = u'News, Mexico'
  10.     description    = u'Noticias Pol\u00EDticas'
  11.     __author__     = 'leamsi'
  12.     masthead_url   = 'http://www.animalpolitico.com/wp-content/themes/animal_mu/images/logo.png'
  13.     oldest_article = 1
  14.     max_articles_per_feed = 100
  15.     language       = 'es_MX'
  16.  
  17.     #feeds          = [(u'Animal Politico', u'http://www.animalpolitico.com/feed/')]
  18.  
  19.     remove_tags_before = dict(name='div', id='main')
  20.     remove_tags = [dict(name='div', attrs={'class':'fb-like-button'})]
  21.     keep_only_tags = [dict(name='h1', attrs={'class':'entry-title'}),
  22.                       dict(name='div', attrs={'class':'entry-content'})]
  23.     remove_javascript = True
  24.     INDEX = 'http://www.animalpolitico.com/'
  25.  
  26.     def generic_parse(self, soup):
  27.         articles = []
  28.         for entry in soup.findAll(lambda tag: tag.name == 'li' and tag.has_key('class') and tag['class'].find('hentry') != -1): #soup.findAll('li', 'hentry'):
  29.             article_url  = entry.a['href'] + '?print=yes'
  30.             article_title= entry.find('h3', 'entry-title')
  31.             article_title= self.tag_to_string(article_title)
  32.             article_date = entry.find('span', 'the-time')
  33.             article_date = self.tag_to_string(article_date)
  34.             article_desc = self.tag_to_string(entry.find('p'))
  35.  
  36.             #print 'Article:',article_title, article_date,article_url
  37.             #print entry['class']
  38.  
  39.             articles.append({'title' : article_title,
  40.                 'date' : article_date,
  41.                 'description' : article_desc,
  42.                 'url'  : article_url})
  43.             # Avoid including the multimedia stuff.
  44.             if entry['class'].find('last') != -1:
  45.                 break
  46.  
  47.         return articles
  48.  
  49.     def plumaje_parse(self, soup):
  50.         articles = []
  51.         blogs_soup = soup.find(lambda tag: tag.name == 'ul' and tag.has_key('class') and tag['class'].find('bloglist-fecha') != -1)
  52.         for entry in blogs_soup.findAll('li'):
  53.             article_title = entry.p
  54.             article_url   = article_title.a['href'] + '?print=yes'
  55.             article_date  = article_title.nextSibling
  56.             article_title = self.tag_to_string(article_title)
  57.             article_date  = self.tag_to_string(article_date).replace(u'Last Updated: ', '')
  58.             article_desc  = self.tag_to_string(entry.find('h4'))
  59.  
  60.             #print 'Article:',article_title, article_date,article_url
  61.             articles.append({'title' : article_title,
  62.                 'date' : article_date,
  63.                 'description' : article_desc,
  64.                 'url'  : article_url})
  65.  
  66.         return articles
  67.  
  68.     def boca_parse(self, soup):
  69.         articles = []
  70.         for entry in soup.findAll(lambda tag: tag.name == 'div' and tag.has_key('class') and tag['class'].find('hentry') != -1): #soup.findAll('li', 'hentry'):
  71.             article_title= entry.find('h2', 'entry-title')
  72.             article_url  = article_title.a['href'] + '?print=yes'
  73.             article_title= self.tag_to_string(article_title)
  74.             article_date = entry.find('span', 'entry-date')
  75.             article_date = self.tag_to_string(article_date)
  76.             article_desc = self.tag_to_string(entry.find('div', 'entry-content'))
  77.  
  78.             #print 'Article:',article_title, article_date,article_url
  79.             #print entry['class']
  80.  
  81.             articles.append({'title' : article_title,
  82.                 'date' : article_date,
  83.                 'description' : article_desc,
  84.                 'url'  : article_url})
  85.             # Avoid including the multimedia stuff.
  86.             if entry['class'].find('last') != -1:
  87.                 break
  88.  
  89.         return articles
  90.  
  91.  
  92.  
  93.  
  94.     def parse_index(self):
  95.         gobierno_soup = self.index_to_soup(self.INDEX+'gobierno/')
  96.         congreso_soup = self.index_to_soup(self.INDEX+'congreso/')
  97.         seguridad_soup = self.index_to_soup(self.INDEX+'seguridad/')
  98.         comunidad_soup = self.index_to_soup(self.INDEX+'comunidad/')
  99.         plumaje_soup = self.index_to_soup(self.INDEX+'plumaje/')
  100.         la_boca_del_lobo_soup = self.index_to_soup(self.INDEX+'category/la-boca-del-lobo/')
  101.  
  102.         gobierno_articles = self.generic_parse(gobierno_soup)
  103.         congreso_articles = self.generic_parse(congreso_soup)
  104.         seguridad_articles = self.generic_parse(seguridad_soup)
  105.         comunidad_articles = self.generic_parse(comunidad_soup)
  106.         plumaje_articles = self.plumaje_parse(plumaje_soup)
  107.         la_boca_del_lobo_articles = self.boca_parse(la_boca_del_lobo_soup)
  108.  
  109.  
  110.         return [ (u'Gobierno', gobierno_articles), (u'Congreso', congreso_articles), (u'Seguridad', seguridad_articles),
  111.              (u'Comunidad', comunidad_articles), (u'Plumaje', plumaje_articles), (u'La Boca del Lobo', la_boca_del_lobo_articles), ]
  112.