mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-10-31 10:37:00 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/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')
 |