mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 10:44:09 -04:00
...
This commit is contained in:
commit
8f979f5877
@ -1,39 +1,87 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = u'2010, Tomasz Dlugosz <tomek3d@gmail.com>'
|
__copyright__ = u'2010-2012, Tomasz Dlugosz <tomek3d@gmail.com>'
|
||||||
'''
|
'''
|
||||||
fronda.pl
|
fronda.pl
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
import re
|
from datetime import timedelta, date
|
||||||
|
|
||||||
class Fronda(BasicNewsRecipe):
|
class Fronda(BasicNewsRecipe):
|
||||||
title = u'Fronda.pl'
|
title = u'Fronda.pl'
|
||||||
publisher = u'Fronda.pl'
|
publisher = u'Fronda.pl'
|
||||||
description = u'Portal po\u015bwi\u0119cony - Infformacje'
|
description = u'Portal po\u015bwi\u0119cony - Informacje'
|
||||||
language = 'pl'
|
language = 'pl'
|
||||||
__author__ = u'Tomasz D\u0142ugosz'
|
__author__ = u'Tomasz D\u0142ugosz'
|
||||||
oldest_article = 7
|
oldest_article = 7
|
||||||
max_articles_per_feed = 100
|
max_articles_per_feed = 100
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
|
no_stylesheets = True
|
||||||
|
|
||||||
feeds = [(u'Infformacje', u'http://fronda.pl/news/feed')]
|
extra_css = '''
|
||||||
|
h1 {font-size:150%}
|
||||||
|
.body {text-align:left;}
|
||||||
|
'''
|
||||||
|
|
||||||
keep_only_tags = [dict(name='h2', attrs={'class':'news_title'}),
|
earliest_date = date.today() - timedelta(days=oldest_article)
|
||||||
dict(name='div', attrs={'class':'naglowek_tresc'}),
|
|
||||||
dict(name='div', attrs={'id':'czytaj'}) ]
|
|
||||||
|
|
||||||
remove_tags = [dict(name='a', attrs={'class':'print'})]
|
def date_cut(self,datestr):
|
||||||
|
# eg. 5.11.2012, 12:07
|
||||||
|
timestamp = datestr.split(',')[0]
|
||||||
|
parts = timestamp.split('.')
|
||||||
|
art_date = date(int(parts[2]),int(parts[1]),int(parts[0]))
|
||||||
|
return True if art_date < self.earliest_date else False
|
||||||
|
|
||||||
preprocess_regexps = [
|
def parse_index(self):
|
||||||
(re.compile(i[0], re.IGNORECASE | re.DOTALL), i[1]) for i in
|
genres = [
|
||||||
[ (r'<p><a href="http://fronda.pl/sklepy">.*</a></p>', lambda match: ''),
|
('ekonomia,4.html', 'Ekonomia'),
|
||||||
(r'<p><a href="http://fronda.pl/pasaz">.*</a></p>', lambda match: ''),
|
('filozofia,15.html', 'Filozofia'),
|
||||||
(r'<h3><strong>W.* lektury.*</a></p></div>', lambda match: '</div>'),
|
('historia,6.html', 'Historia'),
|
||||||
(r'<h3>Zobacz t.*?</div>', lambda match: '</div>'),
|
('kosciol,8.html', 'Kościół'),
|
||||||
(r'<p[^>]*> </p>', lambda match: ''),
|
('kultura,5.html', 'Kultura'),
|
||||||
(r'<p><span style=".*?"><br /></span></p> ', lambda match: ''),
|
('media,10.html', 'Media'),
|
||||||
(r'<a style=\'float:right;margin-top:3px;\' href="http://www.facebook.com/share.php?.*?</a>', lambda match: '')]
|
('nauka,9.html', 'Nauka'),
|
||||||
]
|
('polityka,11.html', 'Polityka'),
|
||||||
|
('polska,12.html', 'Polska'),
|
||||||
|
('prolife,3.html', 'Prolife'),
|
||||||
|
('religia,7.html', 'Religia'),
|
||||||
|
('rodzina,13.html', 'Rodzina'),
|
||||||
|
('swiat,14.html', 'Świat'),
|
||||||
|
('wydarzenie,16.html', 'Wydarzenie')
|
||||||
|
]
|
||||||
|
feeds = []
|
||||||
|
articles = {}
|
||||||
|
|
||||||
|
for url, genName in genres:
|
||||||
|
soup = self.index_to_soup('http://www.fronda.pl/c/'+ url)
|
||||||
|
articles[genName] = []
|
||||||
|
for item in soup.findAll('li'):
|
||||||
|
article_h = item.find('h2')
|
||||||
|
if not article_h:
|
||||||
|
continue
|
||||||
|
article_date = self.tag_to_string(item.find('b'))
|
||||||
|
if self.date_cut(article_date):
|
||||||
|
continue
|
||||||
|
article_a = article_h.find('a')
|
||||||
|
article_url = 'http://www.fronda.pl' + article_a['href']
|
||||||
|
article_title = self.tag_to_string(article_a)
|
||||||
|
articles[genName].append( { 'title' : article_title, 'url' : article_url, 'date' : article_date })
|
||||||
|
feeds.append((genName, articles[genName]))
|
||||||
|
return feeds
|
||||||
|
|
||||||
|
keep_only_tags = [
|
||||||
|
dict(name='div', attrs={'class':'yui-g'})
|
||||||
|
]
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
dict(name='div', attrs={'class':['related-articles',
|
||||||
|
'button right',
|
||||||
|
'pagination']}),
|
||||||
|
dict(name='h3', attrs={'class':'block-header article comments'}),
|
||||||
|
dict(name='ul', attrs={'class':'comment-list'}),
|
||||||
|
dict(name='ul', attrs={'class':'category'}),
|
||||||
|
dict(name='p', attrs={'id':'comments-disclaimer'}),
|
||||||
|
dict(name='div', attrs={'id':'comment-form'})
|
||||||
|
]
|
||||||
|
BIN
recipes/icons/prawica_net.png
Normal file
BIN
recipes/icons/prawica_net.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 609 B |
41
recipes/prawica_net.recipe
Normal file
41
recipes/prawica_net.recipe
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__author__ = 'teepel <teepel44@gmail.com>'
|
||||||
|
|
||||||
|
'''
|
||||||
|
http://prawica.net
|
||||||
|
'''
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
import re
|
||||||
|
|
||||||
|
class prawica_recipe(BasicNewsRecipe):
|
||||||
|
title = u'prawica.net'
|
||||||
|
__author__ = 'teepel <teepel44@gmail.com>'
|
||||||
|
language = 'pl'
|
||||||
|
description ='Wiadomości ze strony prawica.net'
|
||||||
|
INDEX='http://prawica.net/'
|
||||||
|
remove_empty_feeds= True
|
||||||
|
oldest_article = 1
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
remove_javascript=True
|
||||||
|
no_stylesheets=True
|
||||||
|
|
||||||
|
feeds = [(u'all', u'http://prawica.net/all/feed')]
|
||||||
|
|
||||||
|
|
||||||
|
keep_only_tags =[]
|
||||||
|
#this line should show title of the article, but it doesnt work
|
||||||
|
keep_only_tags.append(dict(name = 'h1', attrs = {'class' : 'print-title'}))
|
||||||
|
keep_only_tags.append(dict(name = 'div', attrs = {'class' : 'content'}))
|
||||||
|
|
||||||
|
|
||||||
|
remove_tags =[]
|
||||||
|
remove_tags.append(dict(name = 'div', attrs = {'class' : 'field field-type-viewfield field-field-autor2'}))
|
||||||
|
remove_tags.append(dict(name = 'div', attrs = {'class' : 'field field-type-viewfield field-field-publikacje-autora'}))
|
||||||
|
remove_tags.append(dict(name = 'div', attrs = {'id' : 'rate-widget-2 rate-widget clear-block rate-average rate-widget-fivestar rate-daa7512627f21dcf15e0af47e5279f0e rate-processed'}))
|
||||||
|
remove_tags_after =[(dict(name = 'div', attrs = {'class' : 'field-label-inline-first'}))]
|
||||||
|
|
||||||
|
def print_version(self, url):
|
||||||
|
return url.replace('http://prawica.net/', 'http://prawica.net/print/')
|
28
recipes/rybinski.recipe
Normal file
28
recipes/rybinski.recipe
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = u'2012, Tomasz Dlugosz <tomek3d@gmail.com>'
|
||||||
|
'''
|
||||||
|
rybinski.eu
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
|
class Rybinski(BasicNewsRecipe):
|
||||||
|
title = u'Rybinski.eu - economy of the XXI century'
|
||||||
|
description = u'Blog ekonomiczny dra hab. Krzysztofa Rybi\u0144skiego'
|
||||||
|
language = 'pl'
|
||||||
|
__author__ = u'Tomasz D\u0142ugosz'
|
||||||
|
oldest_article = 7
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
no_stylesheets = True
|
||||||
|
|
||||||
|
feeds = [(u'wpisy', u'http://www.rybinski.eu/?feed=rss2&lang=pl')]
|
||||||
|
|
||||||
|
keep_only_tags = [dict(name='div', attrs={'class':'post'})]
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
dict(name = 'div', attrs = {'class' : 'post-meta-1'}),
|
||||||
|
dict(name = 'div', attrs = {'class' : 'post-meta-2'}),
|
||||||
|
dict(name = 'div', attrs = {'class' : 'post-comments'})
|
||||||
|
]
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user