mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 18:24:30 -04:00
Sync to trunk.
This commit is contained in:
commit
c3a100fc59
@ -1,40 +1,10 @@
|
|||||||
import re
|
|
||||||
from lxml.html import parse
|
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
class Counterpunch(BasicNewsRecipe):
|
class Counterpunch(BasicNewsRecipe):
|
||||||
'''
|
title = u'Counterpunch'
|
||||||
Parses counterpunch.com for articles
|
oldest_article = 7
|
||||||
'''
|
max_articles_per_feed = 100
|
||||||
title = 'Counterpunch'
|
auto_cleanup = True
|
||||||
description = 'Daily political opinion from www.Counterpunch.com'
|
|
||||||
language = 'en'
|
|
||||||
__author__ = 'O. Emmerson'
|
|
||||||
keep_only_tags = [dict(name='td', attrs={'width': '522'})]
|
|
||||||
max_articles_per_feed = 10
|
|
||||||
|
|
||||||
def parse_index(self):
|
feeds = [(u'Counterpunch', u'http://www.counterpunch.org/category/article/feed/')]
|
||||||
feeds = []
|
|
||||||
title, url = 'Counterpunch', 'http://www.counterpunch.com'
|
|
||||||
articles = self.parse_page(url)
|
|
||||||
if articles:
|
|
||||||
feeds.append((title, articles))
|
|
||||||
return feeds
|
|
||||||
|
|
||||||
def parse_page(self, url):
|
|
||||||
parsed_page = parse(url).getroot()
|
|
||||||
articles = []
|
|
||||||
unwanted_text = re.compile('Website\ of\ the|I\ urge\ you|Subscribe\ now|DONATE|\@asis\.com|donation\ button|click\ over\ to\ our')
|
|
||||||
parsed_articles = [a for a in parsed_page.cssselect("html>body>table tr>td>p[class='style2']") if not unwanted_text.search(a.text_content())]
|
|
||||||
for art in parsed_articles:
|
|
||||||
try:
|
|
||||||
author = art.text
|
|
||||||
title = art.cssselect("a")[0].text + ' by {0}'.format(author)
|
|
||||||
art_url = 'http://www.counterpunch.com/' + art.cssselect("a")[0].attrib['href']
|
|
||||||
articles.append({'title': title, 'url': art_url})
|
|
||||||
except Exception as e:
|
|
||||||
e
|
|
||||||
#print('Handler Error: ', e, 'title :', a.text_content())
|
|
||||||
pass
|
|
||||||
return articles
|
|
||||||
|
|
||||||
|
@ -1227,7 +1227,9 @@ class IdentifiersEdit(QLineEdit): # {{{
|
|||||||
val[k] = v
|
val[k] = v
|
||||||
ids = sorted(val.iteritems(), key=keygen)
|
ids = sorted(val.iteritems(), key=keygen)
|
||||||
txt = ', '.join(['%s:%s'%(k.lower(), v) for k, v in ids])
|
txt = ', '.join(['%s:%s'%(k.lower(), v) for k, v in ids])
|
||||||
self.setText(txt.strip())
|
# Use clear + insert instead of setText so that undo works
|
||||||
|
self.clear()
|
||||||
|
self.insert(txt.strip())
|
||||||
self.setCursorPosition(0)
|
self.setCursorPosition(0)
|
||||||
return property(fget=fget, fset=fset)
|
return property(fget=fget, fset=fset)
|
||||||
|
|
||||||
@ -1319,7 +1321,7 @@ class ISBNDialog(QDialog) : # {{{
|
|||||||
self.line_edit.setStyleSheet('QLineEdit { background-color: %s }'%col)
|
self.line_edit.setStyleSheet('QLineEdit { background-color: %s }'%col)
|
||||||
|
|
||||||
def text(self):
|
def text(self):
|
||||||
return unicode(self.line_edit.text())
|
return check_isbn(unicode(self.line_edit.text()))
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user