From 72ceac81173d2b3b009dfb087fa0e49a59d3cb85 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 6 Nov 2009 08:05:29 -0700 Subject: [PATCH] New recipe for LWN by Oliver Niesner --- resources/images/news/lwn.png | Bin 0 -> 387 bytes resources/recipes/lwn.recipe | 55 ++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 resources/images/news/lwn.png create mode 100644 resources/recipes/lwn.recipe diff --git a/resources/images/news/lwn.png b/resources/images/news/lwn.png new file mode 100644 index 0000000000000000000000000000000000000000..0fc654add94f62e61f9b5bb4d957354f6c088a91 GIT binary patch literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zK-vS0-A-oPfdtD69Mgd`SU*F|v9*VRoHd>qOPA-)FAPy?S@$D%V}B z>Vj(~`%fwXBoofn5XDu#PIE#^}W>OYm7@S zo$=pVUJrCOgKCLuL`h0wNvc(HQ7VvPFfuT()HO8JH82Y?u&^>PvNAH&H88g_Fjy^c ol^;bzZhlH;S|y4GBP&A_D+4o#hIs#-pFmc4y85}Sb4q9e07u7#3IG5A literal 0 HcmV?d00001 diff --git a/resources/recipes/lwn.recipe b/resources/recipes/lwn.recipe new file mode 100644 index 0000000000..e8f8132686 --- /dev/null +++ b/resources/recipes/lwn.recipe @@ -0,0 +1,55 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2008, Kovid Goyal ' +''' +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')