Read The climate Daily on your iPad or Kindle in no time. Click download to load the free ebook on your reader.

Check out all the available public recipes or write your own with these quick start guides. ReadBeam is built on calibre, so everything in the docs and the fora applies here as well.

Download for free »

paper.li page about climate

Language: en

Requires Subscription: No, it's available as free ebook

Schedule Every morning

			  __license__   = 'GPL v3'
__copyright__ = '2010, Hiroshi Miura <miurahr@linux.com>'
'''
paperli
'''

from calibre.web.feeds.news import BasicNewsRecipe
from calibre import strftime

class paperli_topics(BasicNewsRecipe):
    # Customize this recipe and change paperli_tag and title below to
    # download news on your favorite tag
    paperli_tag = 'climate'
    title          = u'The #climate Daily - paperli'
#-------------------------------------------------------------
    __author__     = 'Hiroshi Miura'
    oldest_article = 7
    max_articles_per_feed = 100
    description    = 'paper.li page about '+ paperli_tag
    publisher      = 'paper.li'
    category       = 'paper.li'
    language       = 'en'
    encoding       = 'utf-8'
    remove_javascript = True
    masthead_title = u'The '+ paperli_tag +' Daily'
    timefmt        = '[%y/%m/%d]'
    base_url     = 'http://paper.li'
    index          = base_url+'/tag/'+paperli_tag


    def parse_index(self):
        # get topics
        topics = []
        soup   = self.index_to_soup(self.index)
        topics_lists = soup.find('div',attrs={'class':'paper-nav-bottom'})
        for item in topics_lists.findAll('li', attrs={'class':""}):
            itema = item.find('a',href=True)
            topics.append({'title': itema.string, 'url': itema['href']})

        #get feeds
        feeds = []
        for topic in topics:
            newsarticles = []
            soup   = self.index_to_soup(''.join([self.base_url, topic['url'] ]))
            topstories = soup.findAll('div',attrs={'class':'yui-u'})
            for itt in topstories:
                itema = itt.find('a',href=True,attrs={'class':'ts'})
                if itema is not None:
                    itemd = itt.find('div',text=True, attrs={'class':'text'})
                    newsarticles.append({
                                      'title'      :itema.string
                                     ,'date'     :strftime(self.timefmt)
                                     ,'url'        :itema['href']
                                     ,'description':itemd.string
                                    })
            feeds.append((topic['title'], newsarticles))
        return feeds