mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-09-29 15:31:08 -04:00
105 lines
6.1 KiB
Plaintext
105 lines
6.1 KiB
Plaintext
import re
|
|
from calibre.web.feeds.recipes import BasicNewsRecipe
|
|
|
|
class RichmondTimesDispatch(BasicNewsRecipe):
|
|
title = u'Richmond Times-Dispatch'
|
|
description = "The Richmond Times-Dispatch is the primary daily newspaper in Richmond, \
|
|
the capital of Virginia, United States, as well as the Virginia cities of Petersburg, \
|
|
Chester. Hopewell, Colonial Heights, Charlottesville, Lynchburg, Waynesboro, \
|
|
and is also a default paper for rural regions of the state. \
|
|
The RTD has published in some form for more than 150 years."
|
|
__author__ = '_reader'
|
|
__date__ = '17 October 2012'
|
|
__version__ = '1.6'
|
|
cover_url = 'http://static2.dukecms.com/va_tn/timesdispatch_com/site-media/img/icons/logo252x97.png'
|
|
masthead_url = 'http://static2.dukecms.com/va_tn/timesdispatch_com/site-media/img/icons/logo252x97.png'
|
|
language = 'en'
|
|
oldest_article = 1.5 #days
|
|
max_articles_per_feed = 100
|
|
ignore_duplicate_articles = { 'title', 'url' }
|
|
needs_subscription = False
|
|
publisher = 'timesdispatch.com'
|
|
category = 'news, commentary'
|
|
tags = 'news'
|
|
publication_type = 'newspaper'
|
|
no_stylesheets = True
|
|
use_embedded_content= False
|
|
encoding = None
|
|
simultaneous_downloads = 20
|
|
recursions = 0
|
|
remove_javascript = True
|
|
remove_empty_feeds = True
|
|
auto_cleanup = False
|
|
|
|
conversion_options = {
|
|
'comments' : description,
|
|
'tags' : tags,
|
|
'language' : language,
|
|
'publisher' : publisher,
|
|
'authors' : publisher,
|
|
'smarten_punctuation' : True
|
|
}
|
|
|
|
remove_tags_before = dict(id='hnews hentry item')
|
|
|
|
remove_tags_after = dict(name='hr')
|
|
|
|
remove_tags = [
|
|
dict(name='div', attrs={'id':['mg_hd', 'mg_ft', 'sr_b', 'comments_left', 'comments_right']})
|
|
,dict(name='div', attrs={'class':['bottom_social','article_bottom']})
|
|
,dict(name='table', attrs={'class':['ap-mediabox-table', 'ap-htmltable-table', 'ap-photogallery-table', 'ap-htmlfragment-table']})
|
|
]
|
|
|
|
|
|
preprocess_regexps = [
|
|
(re.compile(r'<table class="ap-story-table hnews hentry item".*?<td class="ap-story-td">', re.DOTALL|re.IGNORECASE), lambda match: ''),
|
|
(re.compile(r'<p>\s*http://www2.timesdispatch.*?</p>', re.DOTALL|re.IGNORECASE), lambda match: ''),
|
|
(re.compile(r'<p>\s*<img src="http://static2.dukecms.*?</p>', re.DOTALL|re.IGNORECASE), lambda match: ''),
|
|
(re.compile(r'<p>\s*<a href="http://www2.timesdispatch.*?</p>', re.DOTALL|re.IGNORECASE), lambda match: ''),
|
|
(re.compile(r'<hr.*?>', re.DOTALL|re.IGNORECASE), lambda match: ''), #strip <hr /> line break
|
|
(re.compile(r'<a\s*rel="item-license.*?Use</a>.', re.DOTALL|re.IGNORECASE), lambda match: ''), #strip <hr /> line break
|
|
(re.compile(r'<small>\s*Richmond Times-Dispatch.*?</small>', re.DOTALL|re.IGNORECASE), lambda match: ''), #strip <hr /> 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
|