From be31802d4f2cb13c57e91aa7d4a1bd389d902b41 Mon Sep 17 00:00:00 2001 From: Allan Simonsen Date: Tue, 25 Oct 2016 16:13:40 +0200 Subject: [PATCH] Removed news recipes where website or rss feeds no longer exists. --- recipes/accountancyage.recipe | 36 -------- recipes/blues.recipe | 27 ------ recipes/computer_active.recipe | 61 ------------- recipes/epicurious.recipe | 61 ------------- recipes/icons/blues.png | Bin 607 -> 0 bytes recipes/icons/linuxdevices.png | Bin 270 -> 0 bytes recipes/icons/moneynews.png | Bin 182 -> 0 bytes recipes/icons/utne.png | Bin 820 -> 0 bytes recipes/juventudrebelde_english.recipe | 43 --------- recipes/linuxdevices.recipe | 95 -------------------- recipes/mac_video.recipe | 72 --------------- recipes/moneynews.recipe | 47 ---------- recipes/open_left.recipe | 23 ----- recipes/richmond_times_dispatch.recipe | 114 ------------------------ recipes/sinfest.recipe | 31 ------- recipes/statesman.recipe | 39 --------- recipes/utne.recipe | 53 ----------- recipes/winter_olympics.recipe | 116 ------------------------- 18 files changed, 818 deletions(-) delete mode 100644 recipes/accountancyage.recipe delete mode 100644 recipes/blues.recipe delete mode 100644 recipes/computer_active.recipe delete mode 100644 recipes/epicurious.recipe delete mode 100644 recipes/icons/blues.png delete mode 100644 recipes/icons/linuxdevices.png delete mode 100644 recipes/icons/moneynews.png delete mode 100644 recipes/icons/utne.png delete mode 100644 recipes/juventudrebelde_english.recipe delete mode 100644 recipes/linuxdevices.recipe delete mode 100644 recipes/mac_video.recipe delete mode 100644 recipes/moneynews.recipe delete mode 100644 recipes/open_left.recipe delete mode 100644 recipes/richmond_times_dispatch.recipe delete mode 100644 recipes/sinfest.recipe delete mode 100644 recipes/statesman.recipe delete mode 100644 recipes/utne.recipe delete mode 100644 recipes/winter_olympics.recipe diff --git a/recipes/accountancyage.recipe b/recipes/accountancyage.recipe deleted file mode 100644 index 3db45dce64..0000000000 --- a/recipes/accountancyage.recipe +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python2 - -__license__ = 'GPL v3' -__copyright__ = '2008-2009, Darko Miletic ' -''' -www.accountancyage.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class AccountancyAge(BasicNewsRecipe): - title = 'Accountancy Age' - __author__ = 'Darko Miletic' - description = 'business news' - publisher = 'accountancyage.com' - category = 'news, politics, finances' - oldest_article = 2 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - simultaneous_downloads = 1 - encoding = 'utf-8' - lang = 'en' - language = 'en' - - feeds = [ - (u'All News', u'http://feeds.accountancyage.com/rss/latest/accountancyage/all')] - - keep_only_tags = [ - dict(name='h1'), - dict(attrs={'class': 'article_content'}), - ] - - def get_article_url(self, article): - return article.get('guid', None) diff --git a/recipes/blues.recipe b/recipes/blues.recipe deleted file mode 100644 index 5ed7cef592..0000000000 --- a/recipes/blues.recipe +++ /dev/null @@ -1,27 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2011, Oskar Kunicki ' -''' -Changelog: -2011-11-27 -News from BluesRSS.info -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class BluesRSS(BasicNewsRecipe): - title = 'Blues News' - __author__ = 'Oskar Kunicki' - description = 'Blues news from around the world' - publisher = 'BluesRSS.info' - category = 'news, blues, USA,UK' - oldest_article = 5 - max_articles_per_feed = 100 - language = 'en' - cover_url = 'http://bluesrss.info/cover.jpg' - masthead_url = 'http://bluesrss.info/cover.jpg' - no_stylesheets = True - - remove_tags = [dict(name='div', attrs={'class': 'wp-pagenavi'})] - - feeds = [(u'News', u'http://bluesrss.info/feed/')] diff --git a/recipes/computer_active.recipe b/recipes/computer_active.recipe deleted file mode 100644 index c5d128cbb1..0000000000 --- a/recipes/computer_active.recipe +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env python2 -__license__ = 'GPL v3' -__author__ = 'DrMerry Based on v1.01 by Lorenzo Vigentini' -__copyright__ = 'For version 1.02, 1.03: DrMerry' -__version__ = 'v1.03' -__date__ = '11, July 2011' - -''' -http://www.computeractive.co.uk/ -''' - -from calibre.web.feeds.news import BasicNewsRecipe -import re - - -class computeractive(BasicNewsRecipe): - __author__ = 'DrMerry' - description = 'Computeractive publishes new downloads, reviews, news stories, step-by-step guides and answers to PC problems every day.' - cover_url = 'http://images.pcworld.com/images/common/header/header-logo.gif' - - title = 'Computer act!ve' - publisher = 'Incisive media' - category = 'PC, video, computing, product reviews, editing, cameras, production' - - language = 'en' - timefmt = '[%a, %d %b, %Y]' - - oldest_article = 7 - max_articles_per_feed = 25 - use_embedded_content = False - recursion = 10 - - remove_javascript = True - no_stylesheets = True - remove_empty_feeds = True - remove_tags_after = dict(name='div', attrs={'class': 'article_tags_block'}) - - keep_only_tags = [ - dict(name='div', attrs={'id': 'container_left'}) - ] - - remove_tags = [ - dict(name='div', attrs={'id': ['seeAlsoTags', 'commentsModule', 'relatedArticles', - 'mainLeft', 'mainRight', 'recent_comment_block_parent', 'reviewDetails']}), - dict(name='div', attrs={'class': ['buyIt', 'detailMpu', 'small_section', 'recent_comment_block_parent', - 'title_right_button_fix', 'section_title.title_right_button_fix', 'common_button']}), - dict(name='a', attrs={'class': 'largerImage'}) - ] - - preprocess_regexps = [ - (re.compile(r'(]*>|)', re.DOTALL | re.IGNORECASE), - lambda match: ''), - ] - - feeds = [ - (u'General content', - u'http://feeds.computeractive.co.uk/rss/latest/computeractive/all'), - (u'News', u'http://feeds.computeractive.co.uk/rss/latest/computeractive/news'), - ] - - diff --git a/recipes/epicurious.recipe b/recipes/epicurious.recipe deleted file mode 100644 index da65ad34cd..0000000000 --- a/recipes/epicurious.recipe +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env python2 - -__license__ = 'GPL v3' -__copyright__ = '2010, Starson17' -''' -www.epicurious.com -''' -import re -from calibre.web.feeds.news import BasicNewsRecipe - - -class Epicurious(BasicNewsRecipe): - title = u'Epicurious' - __author__ = 'Starson17' - description = 'Food and Recipes from Epicurious' - cover_url = 'http://up6.podbean.com/image-logos/21849_logo.jpg' - publisher = 'Epicurious' - tags = 'news, food, gourmet, recipes' - language = 'en' - use_embedded_content = False - no_stylesheets = True - remove_javascript = True - recursions = 3 - oldest_article = 14 - max_articles_per_feed = 20 - - keep_only_tags = [dict(name='div', attrs={'class': ['mainconsolewrapper', 'videoheader', 'content_unit', 'entry-content', 'see_more_block']}), - dict(name='div', attrs={'id': [ - 'headline', 'introBlock', 'ingredients', 'preparation', 'articleContent', 'in_categories_block']}) - ] - - remove_tags = [{'id': ['printShoppingList', 'addnoteLnk', 'btnUploadVideo', 'enlarge_image']}, - {'class': ['subLnk', 'sbmWrapper', 'detail_division', - 'entry-footer', 'comment-footer']}, - dict(name='div', attrs={'class': ['tagged', 'comments']}) - ] - - remove_tags_after = [dict(name='div', attrs={'class': 'entry-content'})] - - feeds = [ - (u'Recipes: Healthy dinner ', u'http://feeds.epicurious.com/healthy_recipes'), - (u'New Recipes ', u'http://feeds.epicurious.com/newrecipes'), - (u'Features ', u'http://feeds.epicurious.com/latestfeatures'), - (u'Blogs ', u'http://feeds.feedburner.com/epicurious/epiblog') - ] - - match_regexps = [ - r'http://www.epicurious.com/.*recipes/.*/views' - ] - - preprocess_regexps = [ - (re.compile(r'/\n', re.DOTALL | re.IGNORECASE), lambda match: '/'), - (re.compile(r'_116.jpg', re.DOTALL | re.IGNORECASE), lambda match: '.jpg'), - (re.compile('
', - re.DOTALL | re.IGNORECASE), lambda match: '') - ] - - def postprocess_html(self, soup, first_fetch): - for t in soup.findAll(['table', 'tr', 'td']): - t.name = 'div' - return soup diff --git a/recipes/icons/blues.png b/recipes/icons/blues.png deleted file mode 100644 index b9d8650dc24c2ea7b82280f6651f5759fbc0a6f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)!OeDk(VC=fnxx6e z^SBLmC*Y6#!8dpNP~X>P55|MEp2(VVZ+&aS5KVi~0!rFYwUAGle1HYhNaP_{5W5~Jy{LUhlfLz_@{H4I z_q}#6bbL1}via|56-8Mx<;_QtM4LyA=ALfiiplc}m`>nS@xo8?)NxH&Bv~>qSHIX^ z0AEC^+UCLw+5{k@1v?_Two(fVGtnlGCYx-^)kyGDcm|Y80qBb4B5MV}n58xeY{bQ^ z%Hqvt&gEESLP&Az$>Tu~`pmf|x?9^qtEF%yT$aVu=4U`m6f?)TLF6r0R>UxeMD#%9 t7m(swh-)eSAtcoWKtKyf@n1p!e*p?lIu%9P!?pkb002ovPDHLkV1nCk7aafq diff --git a/recipes/icons/linuxdevices.png b/recipes/icons/linuxdevices.png deleted file mode 100644 index 5cf1af60723be317d7386eb48377300b0525e089..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmV+p0rCEcP)FJL!4gbHr`oCBUDka(aprU@fDXdnXs034^0 UQO0b=Z2$lO07*qoM6N<$g3gF@j{pDw diff --git a/recipes/icons/moneynews.png b/recipes/icons/moneynews.png deleted file mode 100644 index 85185c7b3862e4be8a8dc2e41c18f8f1f20002e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHF4e$wZWnefbAaG7m@tmRIH7BQQ zK|%M5i=X%OJfAb?{o1wf_wN0E?%el#_x`_s{~rjlPxwp*YIN~*aSW-rm3)Bd+FtF1 z6V+^KHcf_c2PNLiDD+H!Z{{H3f6lhm=+V7vjuJ8N-#JR0d4JDQf~VG?O|R!5Te88t d>b4Ei3_I@|=bGzE>;js{;OXk;vd$@?2>{?RN@xH8 diff --git a/recipes/icons/utne.png b/recipes/icons/utne.png deleted file mode 100644 index cb24ed5695cd05c133fe13d015d515d49e2afe4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 820 zcmV-41Izr0P)Z2h3v(%V`hr-0g~d$z5lx3jRkxV6E-!OX+E z%*n;l&dbx()ZW$3>eHU?(_HZ_WJbt|NQ^|{r~^}|Nqy-w8^=w>w_-p zf-LHQDe-|N@_{Ayf+P2WA@_kH_JJYxfgtyRAozhG_<|w%f*|^XA^U?N{DUF=g(3Zg zBL0OU|Ais{ha&xlBL0aY{fi_2jwJt&B>$2m|A-m?h#3Eb8vcSD{ec_)fg1gQ8UKM7 z|A7_%e-{6K6aRe@|9}zugBtsS9{YkH^?)Gte<1IDAMJY|?0X;TdLQX}ALMx+*>WA- zY!Byc3GHwS?s5zDbqx1+4aWbfn*aa+0d!JMQvg8b*k%9#0QpHoK~#9!W55Kdsi|>( z&Y4*m?*2(YHb@}EW9tg~eq zjlCEcTr?T=ngbV`t6f}E)6wlD=VBbrKqT&*CG<^ ymtdns?WM(~9SbePA)ZT(^>xk8&2bBe2eJY4PD;EIM7AdY0000', - re.DOTALL | re.IGNORECASE), lambda match: ''), - (re.compile(r'

\s*http://www2.timesdispatch.*?

', - re.DOTALL | re.IGNORECASE), lambda match: ''), - (re.compile(r'

\s*', - re.DOTALL | re.IGNORECASE), lambda match: ''), - (re.compile(r'', re.DOTALL | re.IGNORECASE), - lambda match: ''), # strip


line break - (re.compile(r'.', re.DOTALL | - re.IGNORECASE), lambda match: ''), # strip
line break - (re.compile(r'\s*Richmond Times-Dispatch.*?', re.DOTALL | - re.IGNORECASE), lambda match: ''), # strip
line break - ] - - feeds = [ - ('News', 'http://www2.timesdispatch.com/list/feed/rss/news-archive'), - ('Breaking News', 'http://www2.timesdispatch.com/list/feed/rss/breaking-news'), - ('National News', 'http://www2.timesdispatch.com/list/feed/rss/national-news'), - ('Local News', 'http://www2.timesdispatch.com/list/feed/rss/local-news'), - ('Business', 'http://www2.timesdispatch.com/list/feed/rss/business'), - ('Local Business', 'http://www2.timesdispatch.com/list/feed/rss/local-business'), - ('Politics', 'http://www2.timesdispatch.com/list/feed/rss/politics'), - ('Virginia Politics', - 'http://www2.timesdispatch.com/list/feed/rss/virginia-politics'), - ('History', 'http://www2.timesdispatch.com/feed/rss/special_section/news/history'), - ('Sports', 'http://www2.timesdispatch.com/list/feed/rss/sports2'), - ('Health', 'http://www2.timesdispatch.com/feed/rss/lifestyles/health_med_fit/'), - ('Entertainment/Life', 'http://www2.timesdispatch.com/list/feed/rss/entertainment'), - ('Arts/Theatre', - 'http://www2.timesdispatch.com/feed/rss/entertainment/arts_theatre/'), - ('Movies', 'http://www2.timesdispatch.com/list/feed/rss/movies'), - ('Music', 'http://www2.timesdispatch.com/list/feed/rss/music'), - ('Dining & Food', 'http://www2.timesdispatch.com/list/feed/rss/dining'), - ('Home & Garden', 'http://www2.timesdispatch.com/list/feed/rss/home-and-garden/'), - ('Travel', 'http://www2.timesdispatch.com/feed/rss/travel/'), - ('Opinion', 'http://www2.timesdispatch.com/feed/rss/news/opinion/'), - ('Editorials', 'http://www2.timesdispatch.com/list/feed/rss/editorial-desk'), - ('Columnists and Blogs', - 'http://www2.timesdispatch.com/list/feed/rss/news-columnists-blogs'), - ('Opinion Columnists', - 'http://www2.timesdispatch.com/list/feed/rss/opinion-editorial-columnists'), - ('Letters to the Editor', - 'http://www2.timesdispatch.com/list/feed/rss/opinion-letters'), - ('Traffic', 'http://www2.timesdispatch.com/list/feed/rss/traffic'), - ('Drives', 'http://www2.timesdispatch.com/feed/rss/classifieds/transportation/'), - - ] - - def print_version(self, url): - article_num = re.sub(r'(^.*)\-([0-9]{4,10})\/$', r'\g<2>', url) - ap_pat = re.compile('http') - # print '\nDEBUG>>>>>>>>: article_num: ', article_num - # print 'DEBUG>>>>>>>>: ap_pat.search(article_num): ', - # ap_pat.search(article_num) - if ap_pat.search(article_num): # AP article, no print url - # print 'DEBUG>>>>>>>>: AP URL: ', url - return url - else: - printURL = 'http://www2.timesdispatch.com/member-center/share-this/print/?content=ar' + article_num - return printURL diff --git a/recipes/sinfest.recipe b/recipes/sinfest.recipe deleted file mode 100644 index e7be9e4bad..0000000000 --- a/recipes/sinfest.recipe +++ /dev/null @@ -1,31 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010, Nadid ' -''' -http://www.sinfest.net -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class SinfestBig(BasicNewsRecipe): - title = 'Sinfest' - __author__ = 'nadid' - description = 'Sinfest' - reverse_article_order = False - oldest_article = 5 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = True - encoding = 'utf-8' - publisher = 'Tatsuya Ishida/Museworks' - category = 'comic' - language = 'en' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - feeds = [(u'SinFest', u'http://henrik.nyh.se/scrapers/sinfest.rss')] - - def get_article_url(self, article): - return article.get('link') diff --git a/recipes/statesman.recipe b/recipes/statesman.recipe deleted file mode 100644 index 36f36a26ae..0000000000 --- a/recipes/statesman.recipe +++ /dev/null @@ -1,39 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1278049615(BasicNewsRecipe): - title = u'Statesman' - pubisher = 'http://www.statesman.com/' - description = 'Austin Texas Daily Newspaper' - category = 'News, Austin, Texas' - __author__ = 'rty' - oldest_article = 3 - - max_articles_per_feed = 100 - - feeds = [(u'News', - u'http://www.statesman.com/section-rss.do?source=news&includeSubSections=true'), - (u'Local', u'http://www.statesman.com/section-rss.do?source=local&includeSubSections=true'), - (u'Business', u'http://www.statesman.com/section-rss.do?source=business&includeSubSections=true'), - (u'Life', u'http://www.statesman.com/section-rss.do?source=life&includesubsection=true'), - (u'Editorial', u'http://www.statesman.com/section-rss.do?source=opinion&includesubsections=true'), - (u'Sports', u'http://www.statesman.com/section-rss.do?source=sports&includeSubSections=true') - ] - masthead_url = "http://www.statesman.com/images/cmg-logo.gif" - - remove_javascript = True - use_embedded_content = False - no_stylesheets = True - language = 'en' - encoding = 'utf-8' - conversion_options = {'linearize_tables': True} - remove_tags = [ - dict(name='div', attrs={'id': 'cxArticleOptions'}), - {'class': ['perma', 'comments', 'trail', 'share-buttons', - 'toggle_show_on']}, - ] - keep_only_tags = [ - dict(name='div', attrs={'class': 'cxArticleHeader'}), - dict(name='div', attrs={'id': ['cxArticleBodyText', - 'content']}), - ] diff --git a/recipes/utne.recipe b/recipes/utne.recipe deleted file mode 100644 index 946cf361d3..0000000000 --- a/recipes/utne.recipe +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env python2 - -__license__ = 'GPL v3' -__copyright__ = '2008, Darko Miletic ' -''' -utne.com -''' - -from calibre.ebooks.BeautifulSoup import BeautifulSoup -from calibre.web.feeds.news import BasicNewsRecipe - - -class Utne(BasicNewsRecipe): - title = u'Utne reader' - __author__ = 'Darko Miletic' - description = 'News' - oldest_article = 7 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - language = 'en' - - cover_url = 'http://www.utne.com/images/template/logo.gif' - - remove_tags = [ - dict(name='a', attrs={'id': 'ctl00_blankmaster_lnkBanner'}), dict( - name='object') - ] - - feeds = [ - - (u'Politics', u'http://www.utne.com/rss/Politics.xml'), - (u'Environment', u'http://www.utne.com/rss/Environment.xml'), - (u'Media', u'http://www.utne.com/rss/Media.xml'), - (u'Great writing', u'http://www.utne.com/rss/Great-Writing.xml'), - (u'Science & Technology', u'http://www.utne.com/rss/Science-Technology.xml'), - (u'Arts', u'http://www.utne.com/rss/Arts.xml') - ] - - def print_version(self, url): - raw = self.browser.open(url).read() - soup = BeautifulSoup(raw.decode('utf8', 'replace')) - print_link = soup.find( - 'a', {'id': 'ctl00_defaultmaster_Blog_tools1_lnkPrint'}) - if print_link is None: - return url - return print_link['href'] - - def preprocess_html(self, soup): - mtag = '' - soup.head.insert(0, mtag) - del(soup.body['onload']) - return soup diff --git a/recipes/winter_olympics.recipe b/recipes/winter_olympics.recipe deleted file mode 100644 index c533e656e6..0000000000 --- a/recipes/winter_olympics.recipe +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/env python2 - -__license__ = 'GPL v3' -__copyright__ = '2010, Starson17' -''' -www.nbcolympics.com -''' -from calibre.web.feeds.news import BasicNewsRecipe - - -class Olympics_2010(BasicNewsRecipe): - title = u'NBC Olympics 2010' - __author__ = 'Starson17' - description = 'Olympics 2010' - cover_url = 'http://www.digitaljournal.com/img/1/1/2/1/i/4/7/6/o/WinterOlympics2010-logo.jpg' - publisher = 'Olympics 2010' - tags = 'Olympics news' - language = 'en' - use_embedded_content = False - no_stylesheets = True - remove_javascript = True - # recursions = 3 - oldest_article = 7 - max_articles_per_feed = 10 - - keep_only_tags = [dict(name='div', attrs={'class': ['Article ', 'ArticleGallery']}), - ] - - remove_tags = [dict(name='div', attrs={'id': ['RelatedTagsBox', 'ShareBox']}), - dict(name='div', attrs={ - 'class': ['DateUtilities', 'PhotoGallery BoxRight', 'Frame', 'ToolBox']}), - ] - - # RSS feeds are at: http://www.nbcolympics.com/rss/index.html - feeds = [ - ('NBCOlympics.com - News', - 'http://www.nbcolympics.com/rss/newscenter/mostpopular.xml'), - ('NBCOlympics.com - News - Top Stories', - 'http://www.nbcolympics.com/rss/newscenter/topstories.xml'), - ('NBCOlympics.com - News - Latest Headlines', - 'http://www.nbcolympics.com/rss/newscenter/latestnews.xml'), - # ('NBCOlympics.com - Photos', 'http://www.nbcolympics.com/rss/photos/mostpopular.xml'), - # ('NBCOlympics.com - Photos - Editorial Picks', 'http://www.nbcolympics.com/rss/photos/editorialpicks.xml'), - # ('NBCOlympics.com - Photos - Latest Slideshows', 'http://www.nbcolympics.com/rss/photos/latestslideshows.xml'), - ('NBCOlympics.com - Team USA - Latest news', - 'http://www.nbcolympics.com/rss/countries/team-usa/index.xml'), - # ('NBCOlympics.com - Team USA - Latest Slideshows', 'http://www.nbcolympics.com/rss/countries/team-usa/photos/index.xml'), - # ('NBCOlympics.com - Team USA - Video', 'http://www.nbcolympics.com/rss/countries/team-usa/video/index.xml'), - # ('NBCOlympics.com - Alpine Skiing - Most Popular News', 'http://www.nbcolympics.com/rss/sport=AS/mostpopular.xml'), - # ('NBCOlympics.com - Alpine Skiing - Top News', 'http://www.nbcolympics.com/rss/sport=AS/topnews.xml'), - ('NBCOlympics.com - Alpine Skiing - Latest News', - 'http://www.nbcolympics.com/rss/sport=AS/latestnews.xml'), - # ('NBCOlympics.com - Biathlon - Most Popular News', 'http://www.nbcolympics.com/rss/sport=BT/mostpopular.xml'), - # ('NBCOlympics.com - Biathlon - Top News', 'http://www.nbcolympics.com/rss/sport=BT/topnews.xml'), - ('NBCOlympics.com - Biathlon - Latest News', - 'http://www.nbcolympics.com/rss/sport=BT/latestnews.xml'), - # ('NBCOlympics.com - Bobsled - Most Popular News', 'http://www.nbcolympics.com/rss/sport=BS/mostpopular.xml'), - # ('NBCOlympics.com - Bobsled - Top News', 'http://www.nbcolympics.com/rss/sport=BS/topnews.xml'), - ('NBCOlympics.com - Bobsled - Latest News', - 'http://www.nbcolympics.com/rss/sport=BS/latestnews.xml'), - # ('NBCOlympics.com - Cross-Country - Most Popular News', 'http://www.nbcolympics.com/rss/sport=CC/mostpopular.xml'), - # ('NBCOlympics.com - Cross-Country - Top News', 'http://www.nbcolympics.com/rss/sport=CC/topnews.xml'), - ('NBCOlympics.com - Cross-Country - Latest News', - 'http://www.nbcolympics.com/rss/sport=CC/latestnews.xml'), - # ('NBCOlympics.com - Curling - Most Popular News', 'http://www.nbcolympics.com/rss/sport=CU/mostpopular.xml'), - # ('NBCOlympics.com - Curling - Top News', 'http://www.nbcolympics.com/rss/sport=CU/topnews.xml'), - ('NBCOlympics.com - Curling - Latest News', - 'http://www.nbcolympics.com/rss/sport=CU/latestnews.xml'), - # ('NBCOlympics.com - Figure Skating - Most Popular News', 'http://www.nbcolympics.com/rss/sport=FS/mostpopular.xml'), - # ('NBCOlympics.com - Figure Skating - Top News', 'http://www.nbcolympics.com/rss/sport=FS/topnews.xml'), - ('NBCOlympics.com - Figure Skating - Latest News', - 'http://www.nbcolympics.com/rss/sport=FS/latestnews.xml'), - # ('NBCOlympics.com - Freestyle Skiing - Most Popular News', 'http://www.nbcolympics.com/rss/sport=FR/mostpopular.xml'), - # ('NBCOlympics.com - Freestyle Skiing - Top News', 'http://www.nbcolympics.com/rss/sport=FR/topnews.xml'), - ('NBCOlympics.com - Freestyle Skiing - Latest News', - 'http://www.nbcolympics.com/rss/sport=FR/latestnews.xml'), - # ('NBCOlympics.com - Hockey - Most Popular News', 'http://www.nbcolympics.com/rss/sport=IH/mostpopular.xml'), - # ('NBCOlympics.com - Hockey - Top News', 'http://www.nbcolympics.com/rss/sport=IH/topnews.xml'), - ('NBCOlympics.com - Hockey - Latest News', - 'http://www.nbcolympics.com/rss/sport=IH/latestnews.xml'), - # ('NBCOlympics.com - Luge - Most Popular News', 'http://www.nbcolympics.com/rss/sport=LG/mostpopular.xml'), - # ('NBCOlympics.com - Luge - Top News', 'http://www.nbcolympics.com/rss/sport=LG/topnews.xml'), - ('NBCOlympics.com - Luge - Latest News', - 'http://www.nbcolympics.com/rss/sport=LG/latestnews.xml'), - # ('NBCOlympics.com - Nordic Combined - Most Popular News', 'http://www.nbcolympics.com/rss/sport=NC/mostpopular.xml'), - # ('NBCOlympics.com - Nordic Combined - Top News', 'http://www.nbcolympics.com/rss/sport=NC/topnews.xml'), - ('NBCOlympics.com - Nordic Combined - Latest News', - 'http://www.nbcolympics.com/rss/sport=NC/latestnews.xml'), - # ('NBCOlympics.com - Short Track - Most Popular News', 'http://www.nbcolympics.com/rss/sport=ST/mostpopular.xml'), - # ('NBCOlympics.com - Short Track - Top News', 'http://www.nbcolympics.com/rss/sport=ST/topnews.xml'), - ('NBCOlympics.com - Short Track - Latest News', - 'http://www.nbcolympics.com/rss/sport=ST/latestnews.xml'), - # ('NBCOlympics.com - Skeleton - Most Popular News', 'http://www.nbcolympics.com/rss/sport=SN/mostpopular.xml'), - # ('NBCOlympics.com - Skeleton - Top News', 'http://www.nbcolympics.com/rss/sport=SN/topnews.xml'), - ('NBCOlympics.com - Skeleton - Latest News', - 'http://www.nbcolympics.com/rss/sport=SN/latestnews.xml'), - # ('NBCOlympics.com - Ski Jumping - Most Popular News', 'http://www.nbcolympics.com/rss/sport=SJ/mostpopular.xml'), - # ('NBCOlympics.com - Ski Jumping - Top News', 'http://www.nbcolympics.com/rss/sport=SJ/topnews.xml'), - ('NBCOlympics.com - Ski Jumping - Latest News', - 'http://www.nbcolympics.com/rss/sport=SJ/latestnews.xml'), - # ('NBCOlympics.com - Snowboarding - Most Popular News', 'http://www.nbcolympics.com/rss/sport=SB/mostpopular.xml'), - # ('NBCOlympics.com - Snowboarding - Top News', 'http://www.nbcolympics.com/rss/sport=SB/topnews.xml'), - ('NBCOlympics.com - Snowboarding - Latest News', - 'http://www.nbcolympics.com/rss/sport=SB/latestnews.xml'), - # ('NBCOlympics.com - Speed Skating - Most Popular News', 'http://www.nbcolympics.com/rss/sport=AS/mostpopular.xml'), - # ('NBCOlympics.com - Speed Skating - Top News', 'http://www.nbcolympics.com/rss/sport=AS/topnews.xml'), - ('NBCOlympics.com - Speed Skating - Latest News', - 'http://www.nbcolympics.com/rss/sport=AS/latestnews.xml'), - ] - - extra_css = ''' - h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} - h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;} - p{font-family:Arial,Helvetica,sans-serif;font-size:small;} - body{font-family:Helvetica,Arial,sans-serif;font-size:small;} - '''