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

  1.  
  2. __license__   = 'GPL v3'
  3. __copyright__ = '2009-2010, Darko Miletic <darko.miletic at gmail.com>'
  4.  
  5. '''
  6. glassrpske.com
  7. '''
  8.  
  9. import re
  10. from calibre.web.feeds.recipes import BasicNewsRecipe
  11.  
  12. class GlasSrpske(BasicNewsRecipe):
  13.     title                 = 'Glas Srpske'
  14.     __author__            = 'Darko Miletic'
  15.     description           = 'Latest news from republika srpska'
  16.     publisher             = 'GLAS SRPSKE'
  17.     category              = 'Novine, Dnevne novine, Vijesti, Novosti, Ekonomija, Sport, Crna Hronika, Banja Luka,, Republika Srpska, Bosna i Hercegovina'
  18.     oldest_article        = 2
  19.     max_articles_per_feed = 100
  20.     no_stylesheets        = True
  21.     encoding              = 'utf-8'
  22.     use_embedded_content  = False
  23.     masthead_url          = 'http://www.glassrpske.com/var/slike/glassrpske-logo.png'
  24.     language              = 'sr'
  25.     publication_type      = 'newspaper'    
  26.     INDEX                 = 'http://www.glassrpske.com'
  27.     extra_css             = '@font-face {font-family: "serif1";src:url(res:///opt/sony/ebook/FONT/tt0011m_.ttf)} body{font-family: serif1, serif} .article_description{font-family: serif1, serif} img{margin-bottom: 0.8em} '
  28.  
  29.     conversion_options = {
  30.                           'comment'          : description
  31.                         , 'tags'             : category
  32.                         , 'publisher'        : publisher
  33.                         , 'language'         : language
  34.                         }
  35.  
  36.     preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')]
  37.  
  38.     keep_only_tags = [dict(name='div', attrs={'class':'gl_cv paragraf'})]
  39.  
  40.     remove_tags = [dict(name=['object','link','base'])]
  41.  
  42.     feeds = [
  43.                (u'Novosti'   , u'http://www.glassrpske.com/vijest/2/novosti/lat/'   )
  44.               ,(u'Drustvo'   , u'http://www.glassrpske.com/vijest/3/drustvo/lat/'   )
  45.               ,(u'Biznis'    , u'http://www.glassrpske.com/vijest/4/ekonomija/lat/' )
  46.               ,(u'Kroz RS'   , u'http://www.glassrpske.com/vijest/5/krozrs/lat/'    )
  47.               ,(u'Hronika'   , u'http://www.glassrpske.com/vijest/6/hronika/lat/'   )
  48.               ,(u'Srbija'    , u'http://www.glassrpske.com/vijest/8/srbija/lat/'    )
  49.               ,(u'Region'    , u'http://www.glassrpske.com/vijest/18/region/lat/'   )
  50.               ,(u'Svijet'    , u'http://www.glassrpske.com/vijest/12/svijet/lat/'   )
  51.               ,(u'Kultura'   , u'http://www.glassrpske.com/vijest/9/kultura/lat/'   )
  52.               ,(u'Banja Luka', u'http://www.glassrpske.com/vijest/10/banjaluka/lat/')
  53.               ,(u'Jet Set'   , u'http://www.glassrpske.com/vijest/11/jetset/lat/'   )
  54.               ,(u'Muzika'    , u'http://www.glassrpske.com/vijest/19/muzika/lat/'   )
  55.               ,(u'Sport'     , u'http://www.glassrpske.com/vijest/13/sport/lat/'    )
  56.               ,(u'Kolumne'   , u'http://www.glassrpske.com/vijest/16/kolumne/lat/'  )
  57.               ,(u'Plus'      , u'http://www.glassrpske.com/vijest/7/plus/lat/'      )
  58.             ]
  59.  
  60.     def preprocess_html(self, soup):
  61.         return self.adeify_images(soup)
  62.  
  63.     def parse_index(self):
  64.         totalfeeds = []
  65.         lfeeds = self.get_feeds()
  66.         for feedobj in lfeeds:
  67.             feedtitle, feedurl = feedobj
  68.             self.report_progress(0, _('Fetching feed')+' %s...'%(feedtitle if feedtitle else feedurl))
  69.             articles = []
  70.             soup = self.index_to_soup(feedurl)
  71.             for item in soup.findAll('div', attrs={'class':'gl_rub'}):
  72.                 atag    = item.find('a')
  73.                 ptag    = item.find('p')
  74.                 url           = self.INDEX + atag['href']
  75.                 title         = self.tag_to_string(atag)
  76.                 description   = self.tag_to_string(ptag)
  77.                 date,sep,rest = self.tag_to_string(ptag).partition('|')
  78.                 articles.append({
  79.                                       'title'      :title
  80.                                      ,'date'       :date
  81.                                      ,'url'        :url
  82.                                      ,'description':description
  83.                                     })
  84.             totalfeeds.append((feedtitle, articles))
  85.         return totalfeeds
  86.  
  87.  
  88.