mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
43 lines
2.2 KiB
Plaintext
43 lines
2.2 KiB
Plaintext
from calibre.web.feeds.news import BasicNewsRecipe
|
|
|
|
|
|
class tvn24(BasicNewsRecipe):
|
|
title = u'TVN24'
|
|
oldest_article = 7
|
|
max_articles_per_feed = 100
|
|
__author__ = 'fenuks, Artur Stachecki'
|
|
description = u'Sport, Biznes, Gospodarka, Informacje, Wiadomości Zawsze aktualne wiadomości z Polski i ze świata'
|
|
category = 'news'
|
|
language = 'pl'
|
|
cover_url = 'http://ncplus.pl/~/media/n/npl/kanaly/logo%20na%20strony%20kanalow/tvn24-630.png' # noqa
|
|
extra_css = 'ul {list-style: none; padding: 0; margin: 0;} li {float: left;margin: 0 0.15em;}'
|
|
remove_empty_feeds = True
|
|
remove_javascript = True
|
|
no_stylesheets = True
|
|
keep_only_tags = [
|
|
dict(name='article',attrs={'class':'mb20'})
|
|
]
|
|
remove_tags = [
|
|
dict(attrs={'class': ['commentsInfo', 'textSize', 'related newsNews align-right', 'box', 'watchMaterial text', 'related galleryGallery align-center', 'advert block-alignment-right', 'userActions', 'socialBookmarks', 'im yourArticle fl', 'dynamicButton addComment fl', 'thumbsGallery', 'relatedObject customBlockquote align-right', 'lead', 'mainRightColumn', 'articleDateContainer borderGreyBottom', 'socialMediaContainer onRight loaded', 'quizContent', 'twitter', 'facebook', 'googlePlus', 'share', 'voteResult', 'reportTitleBar bgBlue_v4 mb15', 'innerVideoModule center']}), # noqa
|
|
dict(name='aside'),
|
|
dict(name='figure'),
|
|
dict(name='section', attrs={
|
|
'id': ['forum', 'innerArticle', 'quiz toCenter', 'mb20']})
|
|
]
|
|
remove_tags_after = [dict(name='li', attrs={'class': 'share'})]
|
|
feeds = [(u'Najnowsze', u'http://www.tvn24.pl/najnowsze.xml'), ]
|
|
|
|
def get_article_url(self, article):
|
|
link = article.get('link')
|
|
# following websites are linked in aforementioned feeds, but have different layout not compatible with this recipe
|
|
banned = ['tvnwarszawa.pl','tvnmeteo.pl','szklokontaktowe.tvn24.pl','tvn24bis.pl']
|
|
if not any(x in link for x in banned):
|
|
return link
|
|
|
|
def preprocess_html(self, soup):
|
|
for alink in soup.findAll('a'):
|
|
if alink.string is not None:
|
|
tstr = alink.string
|
|
alink.replaceWith(tstr)
|
|
return soup
|