more russian and ukranian news sources by bugmen00t

This commit is contained in:
Kovid Goyal 2022-07-26 22:00:19 +05:30
parent d19150f852
commit efcb8d5bc5
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
14 changed files with 312 additions and 0 deletions

34
recipes/cherta.recipe Normal file
View File

@ -0,0 +1,34 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class Cherta(BasicNewsRecipe):
title = '\u0427\u0435\u0440\u0442\u0430'
__author__ = 'bugmen00t'
description = ' \u0418\u043D\u0442\u0435\u0440\u0435\u0441\u043D\u044B\u0435, \u0432\u0430\u0436\u043D\u044B\u0435 \u0438 \u0433\u043B\u0443\u0431\u043E\u043A\u0438\u0435 \u0442\u0435\u043A\u0441\u0442\u044B \u043F\u0440\u043E \u043D\u0430\u0441\u0438\u043B\u0438\u0435 \u0438 \u043D\u0435\u0440\u0430\u0432\u0435\u043D\u0441\u0442\u0432\u043E \u0432 \u0420\u043E\u0441\u0441\u0438\u0438.' # noqa
publisher = 'cherta.media'
category = 'blog'
cover_url = u'https://cherta.media/wp-content/uploads/2022/01/cherta_snippet2.png'
language = 'ru'
no_stylesheets = False
remove_javascript = False
auto_cleanup = False
oldest_article = 30
max_articles_per_feed = 30
remove_tags_before = dict(name='div', attrs={'class':'single-story'})
remove_tags_after = dict(name='div', attrs={'class':'single-page__footer-info'})
remove_tags = [
dict(name='div', attrs={'class': 'single-content-link'}),
dict(name='div', attrs={'class': 'single-page__footer-info_links clearfix'}),
dict(name='div', attrs={'class': 'single-article-tags-wrapper'})
]
feeds = [
('\u0418\u0441\u0442\u043E\u0440\u0438\u0438', 'https://cherta.media/story/feed/'),
('\u0418\u043D\u0442\u0435\u0440\u0432\u044C\u044E', 'https://cherta.media/interview/feed/')
]

42
recipes/gorky.recipe Normal file
View File

@ -0,0 +1,42 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class Gorky(BasicNewsRecipe):
title = '\u0413\u043E\u0440\u044C\u043A\u0438\u0439'
__author__ = 'bugmen00t'
description = '\u041D\u0435\u043A\u043E\u043C\u043C\u0435\u0440\u0447\u0435\u0441\u043A\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442 \u043E \u043A\u043D\u0438\u0433\u0430\u0445 \u0438 \u0447\u0442\u0435\u043D\u0438\u0438.' # noqa
publisher = '\u0410\u041D\u041E "\u0426\u0435\u043D\u0442\u0440 \u043F\u043E \u0441\u043E\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044E \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044F \u043A\u0443\u043B\u044C\u0442\u0443\u0440\u044B \u0447\u0442\u0435\u043D\u0438\u044F \u0438 \u043A\u043D\u0438\u0433\u043E\u0438\u0437\u0434\u0430\u043D\u0438\u044F \u00AB\u0413\u043E\u0440\u044C\u043A\u0438\u0439 \u041C\u0435\u0434\u0438\u0430\u00BB"' # noqa
category = 'blog'
cover_url = u'https://gorky.media/wp-content/uploads/2016/09/gorky.png'
language = 'ru'
no_stylesheets = False
remove_javascript = False
auto_cleanup = False
oldest_article = 30
max_articles_per_feed = 30
remove_tags_before = dict(name='div', attrs={'id': 'td-outer-wrap'})
remove_tags_after = dict(name='footer')
remove_tags = [
dict(name='footer'),
dict(name='nav', attrs={'class': 'navbar'}),
dict(name='div', attrs={'class': 'hide'}),
dict(name='div', attrs={'class': 'nav-new'}),
dict(name='div', attrs={'class': 'top-panel '}),
dict(name='div', attrs={'class': 'panel-nav'}),
dict(name='div', attrs={'class': 'panel-nav _hide'}),
dict(name='ul', attrs={'class': 'top-panel__bottom buttons-list _share'}),
dict(name='ul', attrs={'class': 'buttons-list _share d_lg-none'})
]
feeds = [
('\u0420\u0435\u0446\u0435\u043D\u0437\u0438\u0438', 'https://gorky.media/reviews/feed/'),
('\u0424\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u044B', 'https://gorky.media/fragments/feed/'),
('\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442', 'https://gorky.media/context/feed/'),
('\u041F\u043E\u0434\u0431\u043E\u0440\u043A\u0438', 'https://gorky.media/books-collection/feed/')
]

BIN
recipes/icons/cherta.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 854 B

BIN
recipes/icons/gorky.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 881 B

BIN
recipes/icons/kholod_en.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 B

BIN
recipes/icons/newtimes.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
recipes/icons/sova.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
recipes/icons/stopgame.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 825 B

View File

@ -0,0 +1,37 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class InterfaxUAUA(BasicNewsRecipe):
title = '\u0406\u043D\u0442\u0435\u0440\u0444\u0430\u043A\u0441-\u0423\u043A\u0440\u0430\u0457\u043D\u0430'
__author__ = 'bugmen00t'
description = '\u0406\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u044F \u043F\u0440\u043E \u043E\u0441\u0442\u0430\u043D\u043D\u0456 \u043F\u043E\u0434\u0456\u0457 \u0432 \u043F\u043E\u043B\u0456\u0442\u0438\u0446\u0456 \u0423\u043A\u0440\u0430\u0457\u043D\u0438, \u043A\u043B\u044E\u0447\u043E\u0432\u0456 \u0443\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0456 \u0435\u043A\u043E\u043D\u043E\u043C\u0456\u0447\u043D\u0456 \u043D\u043E\u0432\u0438\u043D\u0438 \u0442\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u0456 \u043F\u043E\u0434\u0456\u0457 \u0432 \u043A\u0440\u0430\u0457\u043D\u0430\u0445 \u0421\u041D\u0414 \u0456 \u0441\u0432\u0456\u0442\u0443.' # noqa
publisher = '\u0406\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u0439\u043D\u0435 \u0430\u0433\u0435\u043D\u0442\u0441\u0442\u0432\u043E \u00AB\u0406\u043D\u0442\u0435\u0440\u0444\u0430\u043A\u0441-\u0423\u043A\u0440\u0430\u0457\u043D\u0430\u00BB' # noqa
category = 'newspaper'
cover_url = u'https://interfax.com.ua/static/articles/images/interfax_ukraine_logo_ukr.svg'
language = 'uk'
no_stylesheets = True
remove_javascript = False
auto_cleanup = False
oldest_article = 2
max_articles_per_feed = 30
remove_tags_before = dict(
name='article', attrs={'class': 'article article-content-view'}
)
remove_tags_after = dict(
name='article', attrs={'class': 'article article-content-view'}
)
remove_tags = [
dict(name='div', attrs={'class': 'grid article-content-secondary-header'}),
dict(name='div', attrs={'class': 'article-tags'}),
]
feeds = [(
'\u041D\u043E\u0432\u0438\u043D\u0438',
'https://interfax.com.ua/news/last.rss'
)]

30
recipes/kholod_en.recipe Normal file
View File

@ -0,0 +1,30 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class Kholod(BasicNewsRecipe):
title = u'Holod Media'
description = u'Internet media whose authors search for exciting stories all over Russia and then tell them to readers.'
__author__ = 'bugmen00t'
publisher = 'Taisiya Bekbulatova'
publication_type = 'blog'
oldest_article = 60
max_articles_per_feed = 100
language = 'en_RU'
cover_url = 'https://image.simplecastcdn.com/images/93a97011-6988-4787-8242-e202b2840fde/08e85f64-9901-44e1-b20c-7da01c5ce0c0/holodpodcastlogo.jpg'
auto_cleanup = False
no_stylesheets = False
remove_tags_before = dict(name='h1')
remove_tags_after = dict(
name='div', attrs={'class': 'article__content the-content text-column'}
)
remove_tags = [dict(name='div', attrs={'class': 'inlinemore'})]
feeds = [(u'Spotlight', 'https://holod.media/en/sections/spotlight/feed/'),
(u'Opinion', 'https://holod.media/en/sections/opinion/feed/'),
(u'Interview', 'https://holod.media/en/sections/interview/feed/')]

30
recipes/newtimes.recipe Normal file
View File

@ -0,0 +1,30 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class NewTimes(BasicNewsRecipe):
title = 'The New Times'
__author__ = 'bugmen00t'
description = ' \u0415\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u044B\u0439 \u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E-\u043F\u043E\u043B\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0436\u0443\u0440\u043D\u0430\u043B' # noqa
publisher = 'The New Times'
category = 'newspaper'
cover_url = u'https://newtimes.ru/img/ogimage.png'
language = 'ru'
no_stylesheets = False
remove_javascript = False
auto_cleanup = False
oldest_article = 14
max_articles_per_feed = 150
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='div', attrs={'id': 'full'})
remove_tags = [
# dict(name='div', attrs={'class': 'image-box image-box_center'}),
]
feeds = [('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://newtimes.ru/rss/')]

91
recipes/sova.recipe Normal file
View File

@ -0,0 +1,91 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class Sova(BasicNewsRecipe):
title = 'SOVA'
__author__ = 'bugmen00t'
description = ' \u0420\u0443\u0441\u0441\u043A\u043E\u044F\u0437\u044B\u0447\u043D\u043E\u0435 \u043D\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0435 \u043E\u043D\u043B\u0430\u0439\u043D-\u0438\u0437\u0434\u0430\u043D\u0438\u0435, \u043E\u0441\u043D\u043E\u0432\u0430\u043D\u043D\u043E\u0435 \u0432 \u0422\u0431\u0438\u043B\u0438\u0441\u0438 \u0432 2016 \u0433\u043E\u0434\u0443 \u0433\u0440\u0443\u043F\u043F\u043E\u0439 \u043F\u0440\u043E\u0444\u0435\u0441\u0441\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0436\u0443\u0440\u043D\u0430\u043B\u0438\u0441\u0442\u043E\u0432, \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0449\u0435\u0435 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u0443\u044E \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E \u043E \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0435, \u044D\u043A\u043E\u043D\u043E\u043C\u0438\u043A\u0435 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043D\u0435\u043E\u0442\u044A\u0435\u043C\u043B\u0435\u043C\u044B\u0445 \u0430\u0441\u043F\u0435\u043A\u0442\u0430\u0445 \u0436\u0438\u0437\u043D\u0438 \u0441\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430 \u0432 \u0413\u0440\u0443\u0437\u0438\u0438 \u0438 \u0440\u0435\u0433\u0438\u043E\u043D\u0435 \u0432 \u0446\u0435\u043B\u043E\u043C.' # noqa
publisher = '\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0435\u043D\u043D\u0430\u044F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u044F Sova News' # noqa
category = 'blog'
cover_url = u'https://i0.wp.com/sova.news/wp-content/uploads/2021/08/sova@512.png'
language = 'ru'
no_stylesheets = False
remove_javascript = False
auto_cleanup = False
oldest_article = 60
max_articles_per_feed = 30
remove_tags_before = dict(name='div', attrs={'class': 'site-wrapper header-7'})
remove_tags_after = dict(
name='div', attrs={'class': 'single-body entry-content typography-copy'}
)
remove_tags = [
dict(name='nav', attrs={'aria-label': 'breadcrumbs'}),
dict(name='header', attrs={'class': 'site-header site-header--skin-5'}),
dict(name='footer'),
dict(name='ins'),
dict(name='div', attrs={'class': 'entry-interaction__left'}),
dict(name='div', attrs={'class': 'entry-interaction__right'}),
dict(name='div', attrs={'id': 'mnmd-sticky-header'}),
dict(name='div', attrs={'id': 'mnmd-offcanvas-primary'}),
dict(name='div', attrs={'id': 'mnmd-offcanvas-mobile'}),
dict(name='div', attrs={'class': 'entry-interaction__right'}),
dict(name='blockquote', attrs={'class': 'wp-embedded-content'})
]
feeds = [
(
'\u041D\u043E\u0432\u043E\u0441\u0442\u0438',
'https://sova.news/news/feed/'
),
(
'\u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0430',
'https://sova.news/analytics/politics/feed/'
),
(
'\u042D\u043A\u043E\u043D\u043E\u043C\u0438\u043A\u0430',
'https://sova.news/analytics/economy/feed/'
),
(
'\u041E\u0431\u0449\u0435\u0441\u0442\u0432\u043E',
'https://sova.news/analytics/society/feed/'
),
(
'\u0418\u043D\u0442\u0435\u0440\u0432\u044C\u044E',
'https://sova.news/interview/feed/'
), ('Unfake', 'https://sova.news/unfake/feed/'),
(
'\u0414\u0440\u0443\u0433\u0430\u044F \u0421\u043E\u0432\u0430',
'https://sova.news/sova-other/feed/'
),
(
'\u0418\u0441\u043A\u0443\u0441\u0441\u0442\u0432\u043E',
'https://sova.news/sova-other/art/feed/'
),
(
'\u0422\u0443\u0440\u0438\u0437\u043C',
'https://sova.news/sova-other/tourism/feed/'
), ('#weekendnavigator', 'https://sova.news/weekendnavigator/feed/'),
(
'\u0421\u043E\u0441\u0435\u0434\u0438',
'https://sova.news/sova-other/neighbours/feed/'
),
(
'\u041D\u0435\u0434\u0435\u043B\u044F \u0432 \u0433\u043E\u0440\u043E\u0434\u0435',
'https://sova.news/week-in-the-city/feed/'
),
(
'\u0424\u043E\u0442\u043E\u043F\u0440\u043E\u0433\u0443\u043B\u043A\u0438',
'https://sova.news/photowalks/feed/'
), ('\u0424\u043E\u0442\u043E', 'https://sova.news/photo/feed/')
]
def preprocess_html(self, soup):
for img in soup.findAll('img', attrs={'data-src': True}):
img['src'] = img['data-src']
return soup

48
recipes/stopgame.recipe Normal file
View File

@ -0,0 +1,48 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class StopGame(BasicNewsRecipe):
title = 'StopGame'
__author__ = 'bugmen00t'
description = ' \u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u0438\u0439 \u0438\u0433\u0440\u043E\u0432\u043E\u0439 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442-\u043F\u043E\u0440\u0442\u0430\u043B, \u043D\u0430 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u043A\u043E\u043B\u043B\u0435\u043A\u0442\u0438\u0432 \u0430\u0432\u0442\u043E\u0440\u043E\u0432 \u0440\u0430\u0441\u0441\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0432\u0441\u0435\u043C \u0436\u0435\u043B\u0430\u044E\u0449\u0438\u043C \u043E \u0432\u0438\u0434\u0435\u043E\u0438\u0433\u0440\u0430\u0445. ' # noqa
publisher = 'StopGame.ru'
category = 'blog'
cover_url = u'https://images.stopgame.ru/blogs/2020/01/29/U7R7t5rQ.jpg'
language = 'ru'
no_stylesheets = False
remove_javascript = False
auto_cleanup = False
oldest_article = 7
max_articles_per_feed = 50
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='div', attrs={'class': '_end-info_zp673_1113'})
remove_tags = [
dict(name='section', attrs={'id': 'comments'}),
dict(name='footer'),
dict(
name='section',
attrs={'class': '_page-section_xdzdd_387 _additional-reads_zp673_1348'}
)
]
feeds = [
(
'\u0412\u0441\u0435 \u0440\u0430\u0437\u0434\u0435\u043B\u044B',
'https://rss.stopgame.ru/rss_all.xml'
),
(
'\u041D\u043E\u0432\u043E\u0441\u0442\u0438',
'https://rss.stopgame.ru/rss_news.xml'
),
(
'\u0421\u0442\u0430\u0442\u044C\u0438',
'https://rss.stopgame.ru/articles.xml'
), ('\u0412\u0438\u0434\u0435\u043E', 'https://rss.stopgame.ru/videos.xml'),
('\u0411\u043B\u043E\u0433\u0438', 'https://rss.stopgame.ru/all_topics.xml')
]