home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/env python
-
- __license__ = 'GPL v3'
- __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
- '''
- lwn.net
- '''
-
- from calibre.web.feeds.news import BasicNewsRecipe
-
- class LWN(BasicNewsRecipe):
- title = u'lwn'
- __author__ = 'Oliver Niesner'
- description = 'Linux Weekly News'
- oldest_article = 54
- language = _('English')
- max_articles_per_feed = 100
- needs_subscription = True
- language = 'en'
- remove_javascript = True
- simultaneous_downloads= 1
- delay = 1
- LOGIN = 'https://lwn.net/login'
-
- def get_browser(self):
- br = BasicNewsRecipe.get_browser()
- if self.username is not None and self.password is not None:
- br.open(self.LOGIN)
- br.select_form(name='loginform')
- br['Username'] = self.username
- br['Password'] = self.password
- br.submit()
- return br
-
- remove_tags = [
- dict(name='td', attrs={'class':'LeftColumn'}),
- dict(name='td', attrs={'class':'NavLink'}),
- dict(name='div', attrs={'class':'FormattedComment'}),
- dict(name='td', attrs={'class':'MCTopBanner'}),
- dict(name='div', attrs={'class':'CommentBox'})
- ]
-
- feeds = [
- (u'lwn' , u'http://lwn.net/headlines/newrss' ),
- ]
-
-
-
- def postprocess_html(self, soup, first):
- for tag in soup.findAll(name=['table', 'tr', 'td']):
- tag.name = 'div'
- return soup
-
- def print_version(self, url):
- return url.replace ('rss', '?format=printable')
-