home *** CD-ROM | disk | FTP | other *** search
/ Chip 2011 November / CHIP_2011_11.iso / Programy / Narzedzia / Calibre / calibre-0.8.18.msi / file_280 / strategy-business.recipe < prev    next >
Encoding:
Text File  |  2011-09-09  |  4.5 KB  |  84 lines

  1. from calibre.web.feeds.news import BasicNewsRecipe
  2.  
  3. class StrategyBusinessRecipe(BasicNewsRecipe):
  4.     __license__  = 'GPL v3'
  5.     __author__ = 'kwetal'
  6.     language = 'en'
  7.     version = 1
  8.  
  9.     title = u'Strategy+Business'
  10.     publisher = u' Booz & Company'
  11.     category = u'Business'
  12.     description = (u'Business magazine for senior business executives and the people who influence them.'
  13.             'Go to http://www.strategy-business.com/registration to sign up for a free account')
  14.  
  15.     oldest_article = 13 * 7 # 3 months
  16.     max_articles_per_feed = 100
  17.     use_embedded_content = False
  18.     remove_empty_feeds = True
  19.     needs_subscription = True
  20.  
  21.     no_stylesheets = True
  22.     remove_javascript = True
  23.  
  24.     def get_browser(self):
  25.         br = BasicNewsRecipe.get_browser(self)
  26.         br.open('http://www.strategy-business.com/registration')
  27.         for i, f in enumerate(br.forms()):
  28.             if 'gatekeeper_edit' in f.name:
  29.                 br.select_form(name=f.name)
  30.                 for c in f.controls:
  31.                     if c.name.endswith('_email'):
  32.                         br[c.name] = self.username
  33.                     elif c.name.endswith('_password'):
  34.                         br[c.name] = self.password
  35.                 raw = br.submit().read()
  36.                 if 'You have been logged in' not in raw:
  37.                     raise ValueError('Failed to login, check your username and password')
  38.         return br
  39.  
  40.  
  41.     extra_css = '''
  42.                 body{font-family:verdana,arial,helvetica,geneva,sans-serif ;}
  43.                 a {text-decoration: none; color: blue;}
  44.                 h1 {margin: 0em; padding: 0em;}
  45.                 h2 {font-size: medium; font-weight: bold;}
  46.                 #sb-date {font-size: xx-small; color: #696969}
  47.                 #category {font-style: italic; font-size: small; color: black; margin: 0em; padding: 0em;}
  48.                 #byline {font-size: small; color: #666666}
  49.                 div.profiles {font-size: small; font-style: italic; color: #696969}
  50.                 div.profiles h2 {font-size: medium; font-style: normal; font-weight: bold; color: black}
  51.                 '''
  52.  
  53.     feeds = []
  54.     feeds.append((u'Finance', u'http://feeds.feedburner.com/StrategyBusiness-Finance?format=xml'))
  55.     feeds.append((u'Global Perspective', u'http://feeds.feedburner.com/StrategyBusiness-GlobalPerspective?format=xml'))
  56.     feeds.append((u'Innovation', u'http://feeds.feedburner.com/StrategyBusiness-Innovation?format=xml'))
  57.     feeds.append((u'Marketing And Sales', u'http://feeds.feedburner.com/StrategyBusiness-MarketingAndSales?format=xml'))
  58.     feeds.append((u'Operations And Manufacturing', u'http://feeds.feedburner.com/StrategyBusiness-OperationsAndManufacturing?format=xml'))
  59.     feeds.append((u'Organizations And People', u'http://feeds.feedburner.com/StrategyBusiness-OrganizationsAndPeople?format=xml'))
  60.     feeds.append((u'Strategy And Leadership', u'http://feeds.feedburner.com/StrategyBusiness-StrategyAndLeadership?format=xml'))
  61.     feeds.append((u'Sustainability', u'http://feeds.feedburner.com/StrategyBusiness-Sustainability?format=xml'))
  62.     feeds.append((u'Auto, Airlines And Transport', u'http://feeds.feedburner.com/StrategyBusiness-AutoAirlinesAndTransport?format=xml'))
  63.     feeds.append((u'Consumer Products', u'http://feeds.feedburner.com/StrategyBusiness-ConsumerProducts?format=xml'))
  64.     feeds.append((u'Energy', u'http://feeds.feedburner.com/StrategyBusiness-Energy?format=xml'))
  65.     feeds.append((u'Health Care', u'http://feeds.feedburner.com/StrategyBusiness-HealthCare?format=xml'))
  66.     feeds.append((u'Technology', u'http://feeds.feedburner.com/StrategyBusiness-Technology?format=xml'))
  67.     feeds.append((u'Thought Leaders', u'http://feeds.feedburner.com/StrategyBusiness-ThoughtLeaders?format=xml'))
  68.     feeds.append((u'Business Literature', u'http://feeds.feedburner.com/StrategyBusiness-BusinessLiterature?format=xml'))
  69.     feeds.append((u'Recent Research', u'http://feeds.feedburner.com/StrategyBusiness-RecentResearch?format=xml'))
  70.  
  71.  
  72.     keep_only_tags = []
  73.     keep_only_tags.append(dict(name = 'div', attrs = {'id': 'sb-column2'}))
  74.  
  75.     remove_tags = []
  76.     remove_tags.append(dict(name = 'img', attrs = {'class': 'content1'}))
  77.     remove_tags.append(dict(name = 'img', attrs = {'src': '/media/image/end_of_story.gif'}))
  78.     remove_tags.append(dict(name = 'div', attrs = {'class': 'sb-adarea468'}))
  79.     remove_tags.append(dict(name = 'div', attrs = {'id': 'sb-paging'}))
  80.     remove_tags.append(dict(name = 'div', attrs = {'id': 'textsize'}))
  81.  
  82.     def print_version(self, url):
  83.         return url + '?pg=all'
  84.