From 82d4c5a612c2f99cc75afd5c66bd4555556a5091 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 3 Jan 2008 19:49:52 +0000 Subject: [PATCH] Add CNN and Dilbert feeds --- src/libprs500/ebooks/lrf/web/__init__.py | 6 +- src/libprs500/ebooks/lrf/web/profiles/cnn.py | 63 ++++++++++++++++++ .../ebooks/lrf/web/profiles/dilbert.py | 39 +++++++++++ src/libprs500/gui2/images.qrc | 2 + src/libprs500/gui2/images/news/cnn.png | Bin 0 -> 758 bytes src/libprs500/gui2/images/news/dilbert.png | Bin 0 -> 2395 bytes 6 files changed, 108 insertions(+), 2 deletions(-) create mode 100644 src/libprs500/ebooks/lrf/web/profiles/cnn.py create mode 100644 src/libprs500/ebooks/lrf/web/profiles/dilbert.py create mode 100644 src/libprs500/gui2/images/news/cnn.png create mode 100644 src/libprs500/gui2/images/news/dilbert.png diff --git a/src/libprs500/ebooks/lrf/web/__init__.py b/src/libprs500/ebooks/lrf/web/__init__.py index a110ca5d4d..2452d7b4d1 100644 --- a/src/libprs500/ebooks/lrf/web/__init__.py +++ b/src/libprs500/ebooks/lrf/web/__init__.py @@ -23,9 +23,11 @@ from libprs500.ebooks.lrf.web.profiles.zeitde import ZeitNachrichten from libprs500.ebooks.lrf.web.profiles.faznet import FazNet from libprs500.ebooks.lrf.web.profiles.wsj import WallStreetJournal from libprs500.ebooks.lrf.web.profiles.barrons import Barrons -from libprs500.ebooks.lrf.web.profiles.portfolio import Portfolio +from libprs500.ebooks.lrf.web.profiles.portfolio import Portfolio +from libprs500.ebooks.lrf.web.profiles.dilbert import Dilbert +from libprs500.ebooks.lrf.web.profiles.cnn import CNN -builtin_profiles = [Barrons, BBC, Economist, FazNet, Newsweek, NewYorkReviewOfBooks, NYTimes, \ +builtin_profiles = [Barrons, BBC, CNN, Dilbert, Economist, FazNet, Newsweek, NewYorkReviewOfBooks, NYTimes, \ Portfolio, SpiegelOnline, WallStreetJournal, ZeitNachrichten, \ ] diff --git a/src/libprs500/ebooks/lrf/web/profiles/cnn.py b/src/libprs500/ebooks/lrf/web/profiles/cnn.py new file mode 100644 index 0000000000..d3e151c318 --- /dev/null +++ b/src/libprs500/ebooks/lrf/web/profiles/cnn.py @@ -0,0 +1,63 @@ +## Copyright (C) 2007 Kovid Goyal kovid@kovidgoyal.net +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License along +## with this program; if not, write to the Free Software Foundation, Inc., +## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +''' +Profile to download CNN +''' +import re +from libprs500.ebooks.lrf.web.profiles import DefaultProfile + +class CNN(DefaultProfile): + + title = 'CNN' + max_recursions = 2 + timefmt = ' [%d %b %Y]' + html_description = True + no_stylesheets = True + oldest_article = 15 + + preprocess_regexps = [(re.compile(i[0], re.IGNORECASE | re.DOTALL), i[1]) for i in [ + (r'.*?.*?', lambda match : ''), + (r'', lambda match : ''), + (r'<\!\-\-Article End\-\->.*?', lambda match : ''), + (r'()
    .*?
', lambda match : match.group(1)), # drop story highlights + (r'

(.*?)

(.*?)

', lambda match : '

' + match.group(1) + '

' + match.group(2) + '

'), # sports uses h2 for main title and h1 for subtitle (???) switch these around + (r'.*?', lambda match : ''), # drop 'watch more' links + (r'(
).*?(||', lambda match : ''), # drop table formatting + (r'
.*?
', lambda match : ''), # drop extra business links + (r'.*?', lambda match : '') # drop business 'to top' link + ] ] + + def print_version(self, url): + return 'http://www.printthis.clickability.com/pt/printThis?clickMap=printThis&fb=Y&url=' + url + + def get_feeds(self): + return [ + ('Top News', 'http://rss.cnn.com/rss/cnn_topstories.rss'), + ('World', 'http://rss.cnn.com/rss/cnn_world.rss'), + ('U.S.', 'http://rss.cnn.com/rss/cnn_us.rss'), + ('Sports', 'http://rss.cnn.com/rss/si_topstories.rss'), + ('Business', 'http://rss.cnn.com/rss/money_latest.rss'), + ('Politics', 'http://rss.cnn.com/rss/cnn_allpolitics.rss'), + ('Law', 'http://rss.cnn.com/rss/cnn_law.rss'), + ('Technology', 'http://rss.cnn.com/rss/cnn_tech.rss'), + ('Science & Space', 'http://rss.cnn.com/rss/cnn_space.rss'), + ('Health', 'http://rss.cnn.com/rss/cnn_health.rss'), + ('Entertainment', 'http://rss.cnn.com/rss/cnn_showbiz.rss'), + ('Education', 'http://rss.cnn.com/rss/cnn_education.rss'), + ('Offbeat', 'http://rss.cnn.com/rss/cnn_offbeat.rss'), + ('Most Popular', 'http://rss.cnn.com/rss/cnn_mostpopular.rss') + ] diff --git a/src/libprs500/ebooks/lrf/web/profiles/dilbert.py b/src/libprs500/ebooks/lrf/web/profiles/dilbert.py new file mode 100644 index 0000000000..56025205bd --- /dev/null +++ b/src/libprs500/ebooks/lrf/web/profiles/dilbert.py @@ -0,0 +1,39 @@ +## Copyright (C) 2007 Kovid Goyal kovid@kovidgoyal.net +## Costomized to Dilbert by S. Dorscht and "Stenis" +## Version 0.02 +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License along +## with this program; if not, write to the Free Software Foundation, Inc., +## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +''' +Fetch Dilbert. +''' + + +from libprs500.ebooks.lrf.web.profiles import DefaultProfile + +import re + +class Dilbert(DefaultProfile): + + title = 'Dilbert' + timefmt = ' [%d %b %Y]' + max_recursions = 1 + max_articles_per_feed = 6 + html_description = True + no_stylesheets = True + + def get_feeds(self): + return [ ('Dilbert', 'http://feeds.feedburner.com/tapestrydilbert') ] + diff --git a/src/libprs500/gui2/images.qrc b/src/libprs500/gui2/images.qrc index 4ea40a0dd0..c431f6a3bf 100644 --- a/src/libprs500/gui2/images.qrc +++ b/src/libprs500/gui2/images.qrc @@ -36,12 +36,14 @@ images/mimetypes/zip.svg images/news.svg images/news/bbc.png + images/news/cnn.png images/news/newsweek.png images/news/nytimes.png images/news/economist.png images/news/zeitde.png images/news/spiegelde.png images/news/faznet.png + images/news/dilbert.png images/next.svg images/page.svg images/plus.svg diff --git a/src/libprs500/gui2/images/news/cnn.png b/src/libprs500/gui2/images/news/cnn.png new file mode 100644 index 0000000000000000000000000000000000000000..1bcd6b0cb68932fd5c75c9cbfbee3920b5b2ec61 GIT binary patch literal 758 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