10
10
from calibre.web.feeds.news import BasicNewsRecipe
12
12
class ESPN(BasicNewsRecipe):
15
15
description = 'Sports news'
16
16
__author__ = 'Kovid Goyal'
17
17
language = _('English')
19
19
needs_subscription = True
20
20
remove_tags = [dict(name='font', attrs={'class':'footer'}), dict(name='hr', noshade='noshade')]
21
21
remove_tags_before = dict(name='font', attrs={'class':'date'})
22
22
center_navbar = False
23
html2lrf_options = ['--base-font-size', '0']
25
24
feeds = [('Top Headlines', 'http://sports.espn.go.com/espn/rss/news'),
26
25
'http://sports.espn.go.com/espn/rss/nfl/news',
27
26
'http://sports.espn.go.com/espn/rss/nba/news',
39
38
'http://sports.espn.go.com/espn/rss/bassmaster/news',
40
39
'http://sports.espn.go.com/espn/rss/oly/news',
41
40
'http://sports.espn.go.com/espn/rss/horse/news']
43
42
def get_browser(self):
44
43
br = BasicNewsRecipe.get_browser()
45
44
br.set_handle_refresh(False)
46
45
if self.username is not None and self.password is not None:
47
46
br.open('http://espn.com')
49
48
br.form.find_control(name='username', type='text').value = self.username
50
49
br.form['password'] = self.password
52
51
br.set_handle_refresh(True)
55
54
def print_version(self, url):
56
55
if 'eticket' in url:
57
56
return url.partition('&')[0].replace('story?', 'print?')
58
57
match = re.search(r'story\?(id=\d+)', url)
60
59
return 'http://sports.espn.go.com/espn/print?'+match.group(1)+'&type=story'
64
63
def preprocess_html(self, soup):
65
64
for div in soup.findAll('div'):
66
65
if div.has_key('style') and 'px' in div['style']:
71
70
def postprocess_html(self, soup, first_fetch):
72
71
for div in soup.findAll('div', style=True):
73
72
div['style'] = div['style'].replace('center', 'left')
b'\\ No newline at end of file'