Various new ru/uk news sources by bugmen00t

This commit is contained in:
Kovid Goyal 2022-07-26 14:09:05 +05:30
parent 2cbf22a67b
commit 9aae5f8b29
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
18 changed files with 420 additions and 0 deletions

36
recipes/habr.recipe Normal file
View File

@ -0,0 +1,36 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class Habr(BasicNewsRecipe):
title = 'Habr'
__author__ = 'bugmen00t'
description = 'Russian collaborative blog about IT, computer science and anything related to the Internet'
publisher = 'Habr Blockchain Publishing LTD'
category = 'blog'
cover_url = u'https://hsto.org/webt/f1/lq/ka/f1lqkaveikdfqkb_rip_4vq4s_8.png'
language = 'en_RU'
no_stylesheets = True
remove_javascript = False
auto_cleanup = False
oldest_article = 30
max_articles_per_feed = 30
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='div', attrs={'class': 'tm-misprint-area'})
remove_tags = [
dict(name='div', attrs={'class': 'tm-article-presenter__meta'}),
dict(name='div', attrs={'class': 'tm-article-poll'})
]
feeds = [('News', 'https://habr.com/en/rss/news/?fl=en'),
('All materials', 'https://habr.com/en/rss/all?fl=en')]
def preprocess_html(self, soup):
for img in soup.findAll('img', attrs={'data-src': True}):
img['src'] = img['data-src']
return soup

60
recipes/habr_ru.recipe Normal file
View File

@ -0,0 +1,60 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class Habr(BasicNewsRecipe):
title = '\u0425\u0430\u0431\u0440'
__author__ = 'bugmen00t'
description = '\u041D\u0430 \u200B\u0425\u0430\u0431\u0440\u0435 \u200B\u0434\u0443\u043C\u0430\u044E\u0449\u0438\u0435 \u200B\u043B\u044E\u0434\u0438 \u200B\u0434\u0435\u043B\u044F\u0442\u0441\u044F \u200B\u0443\u043D\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u043C \u200B\u200B\u043E\u043F\u044B\u0442\u043E\u043C. \u200B\u200B\u0417\u0434\u0435\u0441\u044C \u0431\u0443\u0434\u0435\u0442 \u200B\u200B\u043E\u0434\u0438\u043D\u0430\u043A\u043E\u0432\u043E \u200B\u0438\u043D\u0442\u0435\u0440\u0435\u0441\u043D\u043E \u200B\u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0441\u0442\u0430\u043C \u200B\u0438 \u0436\u0443\u0440\u043D\u0430\u043B\u0438\u0441\u0442\u0430\u043C, \u200B\u200B\u0430\u0434\u043C\u0438\u043D\u0430\u043C \u200B\u0438 \u0440\u0435\u043A\u043B\u0430\u043C\u0449\u0438\u043A\u0430\u043C, \u200B\u0430\u043D\u0430\u043B\u0438\u0442\u0438\u043A\u0430\u043C \u200B\u0438 \u0434\u0438\u0437\u0430\u0439\u043D\u0435\u0440\u0430\u043C, \u200B\u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u0430\u043C \u200B\u0432\u044B\u0441\u0448\u0435\u0433\u043E \u200B\u0438 \u0441\u0440\u0435\u0434\u043D\u0435\u0433\u043E \u200B\u0437\u0432\u0435\u043D\u0430, \u200B\u0432\u043B\u0430\u0434\u0435\u043B\u044C\u0446\u0430\u043C \u200B\u043A\u0440\u0443\u043F\u043D\u044B\u0445 \u200B\u043A\u043E\u043C\u043F\u0430\u043D\u0438\u0439 \u200B\u0438 \u043D\u0435\u0431\u043E\u043B\u044C\u0448\u0438\u0445 \u200B\u0444\u0438\u0440\u043C, \u200B\u0430 \u0442\u0430\u043A\u0436\u0435 \u200B\u0432\u0441\u0435\u043C \u200B\u0442\u0435\u043C, \u200B\u0434\u043B\u044F \u043A\u043E\u0433\u043E \u200BIT \u2014 \u200B\u044D\u0442\u043E \u043D\u0435 \u043F\u0440\u043E\u0441\u0442\u043E \u200B\u0434\u0432\u0435 \u0431\u0443\u043A\u0432\u044B \u200B\u0430\u043B\u0444\u0430\u0432\u0438\u0442\u0430.' # noqa
publisher = 'Habr Blockchain Publishing LTD'
category = 'blog'
cover_url = u'https://habr.com/img/habr_ru.png'
language = 'ru'
no_stylesheets = True
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': 'tm-misprint-area'})
remove_tags = [
dict(name='div', attrs={'class': 'tm-article-presenter__meta'}),
dict(name='div', attrs={'class': 'tm-article-poll'})
]
feeds = [
(
'\u041D\u043E\u0432\u043E\u0441\u0442\u0438',
'https://habr.com/ru/rss/news/?fl=ru'
),
(
'\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B',
'https://habr.com/ru/rss/all/all/?fl=ru'
),
(
'\u0420\u0435\u0439\u0442\u0438\u043D\u0433 \u226510',
'https://habr.com/ru/rss/all/top10/?fl=ru'
),
(
'\u0420\u0435\u0439\u0442\u0438\u043D\u0433 \u226525',
'https://habr.com/ru/rss/all/top25/?fl=ru'
),
(
'\u0420\u0435\u0439\u0442\u0438\u043D\u0433 \u226550',
'https://habr.com/ru/rss/all/top50/?fl=ru'
),
(
'\u0420\u0435\u0439\u0442\u0438\u043D\u0433 \u2265100',
'https://habr.com/ru/rss/all/top100/?fl=ru'
),
]
def preprocess_html(self, soup):
for img in soup.findAll('img', attrs={'data-src': True}):
img['src'] = img['data-src']
return soup

BIN
recipes/icons/habr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

BIN
recipes/icons/habr_ru.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

BIN
recipes/icons/interfax.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 451 B

BIN
recipes/icons/pravda_uk.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

34
recipes/interfax.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 InterfaxUAEN(BasicNewsRecipe):
title = 'Interfax-Ukraine'
__author__ = 'bugmen00t'
description = 'The Interfax-Ukraine News Agency, founded in 1992, is subsidiary of Interfax Information Services.'
publisher = 'Interfax-Ukraine News Agency'
category = 'newspaper'
cover_url = u'https://interfax.com.ua/static/articles/images/interfax_ukraine_logo_eng.svg'
language = 'en_UK'
no_stylesheets = True
remove_javascript = False
auto_cleanup = False
oldest_article = 3
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 = [('Latest news', 'https://en.interfax.com.ua/news/last.rss')]

View File

@ -0,0 +1,37 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class InterfaxUARU(BasicNewsRecipe):
title = '\u0418\u043D\u0442\u0435\u0440\u0444\u0430\u043A\u0441-\u0423\u043A\u0440\u0430\u0438\u043D\u0430'
__author__ = 'bugmen00t'
description = '\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0445 \u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0445 \u0432 \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0435 \u0423\u043A\u0440\u0430\u0438\u043D\u044B, \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0443\u043A\u0440\u0430\u0438\u043D\u0441\u043A\u0438\u0435 \u044D\u043A\u043E\u043D\u043E\u043C\u0438\u0447\u0435\u0441\u043A\u0438\u0435 \u043D\u043E\u0432\u043E\u0441\u0442\u0438 \u0438 \u043E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u0432 \u0441\u0442\u0440\u0430\u043D\u0430\u0445 \u0421\u041D\u0413 \u0438 \u043C\u0438\u0440\u0430.' # noqa
publisher = '\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0435 \u0430\u0433\u0435\u043D\u0442\u0441\u0442\u0432\u043E \u00AB\u0418\u043D\u0442\u0435\u0440\u0444\u0430\u043A\u0441-\u0423\u043A\u0440\u0430\u0438\u043D\u0430\u00BB' # noqa
category = 'newspaper'
cover_url = u'https://interfax.com.ua/static/articles/images/interfax_ukraine_logo_rus.svg'
language = 'ru_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\u043E\u0441\u0442\u0438',
'https://ru.interfax.com.ua/news/last.rss'
)]

View File

@ -0,0 +1,41 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class KnifeMedia(BasicNewsRecipe):
title = '\u041D\u043E\u0436'
__author__ = 'bugmen00t'
description = '\u0418\u043D\u0442\u0435\u043B\u043B\u0435\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u044B\u0439 \u0436\u0443\u0440\u043D\u0430\u043B \u043E \u043A\u0443\u043B\u044C\u0442\u0443\u0440\u0435 \u0438 \u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0435' # noqa
publisher = '\u041C\u0438\u0445\u0430\u0438\u043B \u0426\u044B\u0433\u0430\u043D, \u0422\u0430\u0442\u044C\u044F\u043D\u0430 \u041A\u043E\u044D\u043D'
category = 'blog'
cover_url = u'https://knife.media/feature/pdd/img/knife_logo.33a98aee.svg'
language = 'ru'
no_stylesheets = False
remove_javascript = False
auto_cleanup = False
oldest_article = 14
max_articles_per_feed = 30
remove_tags_before = dict(name='div', attrs={'class': 'entry-header'})
remove_tags_after = dict(name='div', attrs={'class': 'entry-content'})
remove_tags = [
dict(name='aside'),
dict(name='div', attrs={'class': 'entry-header__share share'}),
dict(name='div', attrs={'class': 'entry-comments'}),
dict(name='div', attrs={'class': 'entry-footer'}),
dict(name='div', attrs={'class': 'entry-bottom'}),
dict(name='figure', attrs={'class': 'figure figure--similar'})
]
feeds = [(
'\u041B\u043E\u043D\u0433\u0440\u0438\u0434\u044B',
'https://knife.media/category/longreads/feed/'
),
(
'\u041D\u043E\u0432\u043E\u0441\u0442\u0438',
'https://knife.media/category/news/feed/'
)]

76
recipes/pravda_uk.recipe Normal file
View File

@ -0,0 +1,76 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from __future__ import unicode_literals, division, absolute_import, print_function
from calibre.web.feeds.news import BasicNewsRecipe
class PravdaUAUA(BasicNewsRecipe):
title = '\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430 \u043F\u0440\u0430\u0432\u0434\u0430'
__author__ = 'bugmen00t'
description = '\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0435 \u0441\u0443\u0441\u043F\u0456\u043B\u044C\u043D\u043E-\u043F\u043E\u043B\u0456\u0442\u0438\u0447\u043D\u0435 \u0456\u043D\u0442\u0435\u0440\u043D\u0435\u0442-\u0417\u041C\u0406' # noqa
publisher = 'pravda.com.ua'
category = 'newspaper'
cover_url = u'https://img.pravda.com/images/up_for_fb.gif'
language = 'uk'
no_stylesheets = False
remove_javascript = False
auto_cleanup = False
oldest_article = 7
max_articles_per_feed = 30
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='article', attrs={'class': 'post'})
remove_tags = [
dict(name='footer'),
dict(name='div', attrs={'class': 'nts-video-wrapper'}),
dict(name='div', attrs={'class': 'post-report'}),
dict(name='div', attrs={'class': 'post__report'}),
dict(name='div', attrs={'class': 'social_item'}),
dict(name='div', attrs={'class': 'sidebar'}),
dict(
name='div',
attrs={
'class':
'article-announcement-photo article-announcement-photo-block-1'
}
),
dict(
name='div',
attrs={'class': 'statistic-bottom-block statistic-top-block'}
),
dict(name='div', attrs={'class': 'modal modal_search modal_white'}),
dict(name='div', attrs={'class': 'modal_auth modal_white'}),
dict(name='div', attrs={'class': 'main_logo'}),
dict(name='div', attrs={'class': 'footer_banner'}),
dict(name='nav', attrs={'class': 'block block_menu'}),
dict(name='div', attrs={'class': 'pagewrap page-point'}),
dict(name='div', attrs={'class': 'modal fade search-popup'}),
dict(name='div', attrs={'data-vr-zone': 'Mobile main menu'}),
dict(name='aside'),
dict(name='div', attrs={'class': 'block_related'}),
dict(name='div', attrs={'class': 'block_comments'}),
dict(name='div', attrs={'class': 'post_tags'}),
dict(name='div', attrs={'class': 'post__tags'})
]
feeds = [
(
'\u0412\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438',
'https://www.pravda.com.ua/rss/'
),
(
'\u041D\u0430\u0439\u0432\u0430\u0436\u043B\u0438\u0432\u0456\u0448\u0456 \u043D\u043E\u0432\u0438\u043D\u0438',
'https://www.pravda.com.ua/rss/view_mainnews/'
),
(
'\u041D\u043E\u0432\u0438\u043D\u0438',
'https://www.pravda.com.ua/rss/view_news/'
),
(
'\u041F\u0443\u0431\u043B\u0456\u043A\u0430\u0446\u0456\u0457',
'https://www.pravda.com.ua/rss/view_pubs/'
),
]

View File

@ -0,0 +1,61 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class PravdaUAEN(BasicNewsRecipe):
title = 'Ukrainska Pravda'
__author__ = 'bugmen00t'
description = ' Ukrainian online newspaper founded by Georgiy Gongadze with an emphasis on the politics of Ukraine. '
publisher = 'pravda.com.ua'
category = 'newspaper'
cover_url = u'https://img.pravda.com/images/up_for_fb.gif'
language = 'en_UK'
no_stylesheets = False
remove_javascript = False
auto_cleanup = False
oldest_article = 30
max_articles_per_feed = 30
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='article', attrs={'class': 'post'})
remove_tags = [
dict(name='footer'),
dict(name='div', attrs={'class': 'nts-video-wrapper'}),
dict(name='div', attrs={'class': 'post-report'}),
dict(name='div', attrs={'class': 'post__report'}),
dict(name='div', attrs={'class': 'social_item'}),
dict(name='div', attrs={'class': 'sidebar'}),
dict(
name='div',
attrs={
'class':
'article-announcement-photo article-announcement-photo-block-1'
}
),
dict(
name='div',
attrs={'class': 'statistic-bottom-block statistic-top-block'}
),
dict(name='div', attrs={'class': 'modal modal_search modal_white'}),
dict(name='div', attrs={'class': 'modal_auth modal_white'}),
dict(name='div', attrs={'class': 'main_logo'}),
dict(name='div', attrs={'class': 'footer_banner'}),
dict(name='nav', attrs={'class': 'block block_menu'}),
dict(name='div', attrs={'class': 'pagewrap page-point'}),
dict(name='div', attrs={'class': 'modal fade search-popup'}),
dict(name='div', attrs={'data-vr-zone': 'Mobile main menu'}),
dict(name='aside'),
dict(name='div', attrs={'class': 'block_related'}),
dict(name='div', attrs={'class': 'block_comments'}),
dict(name='div', attrs={'class': 'post_tags'}),
dict(name='div', attrs={'class': 'post__tags'})
]
feeds = [('All materials', 'https://www.pravda.com.ua/eng/rss/'),
('Top news', 'https://www.pravda.com.ua/eng/rss/view_mainnews/'),
('News', 'https://www.pravda.com.ua/eng/rss/view_news/'),
('Articles', 'https://www.pravda.com.ua/eng/rss/view_pubs/')]

View File

@ -0,0 +1,75 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class PravdaUARU(BasicNewsRecipe):
title = '\u0423\u043A\u0440\u0430\u0438\u043D\u0441\u043A\u0430\u044F \u043F\u0440\u0430\u0432\u0434\u0430'
__author__ = 'bugmen00t'
description = '\u0418\u043D\u0442\u0435\u0440\u043D\u0435\u0442-\u0438\u0437\u0434\u0430\u043D\u0438\u0435, \u043E\u0441\u043D\u043E\u0432\u043D\u0430\u044F \u0442\u0435\u043C\u0430\u0442\u0438\u043A\u0430 \u2014 \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430, \u0441\u043E\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u044B, \u044D\u043A\u043E\u043D\u043E\u043C\u0438\u043A\u0430. ' # noqa
publisher = 'pravda.com.ua'
category = 'newspaper'
cover_url = u'https://img.pravda.com/images/up_for_fb.gif'
language = 'ru'
no_stylesheets = False
remove_javascript = False
auto_cleanup = False
oldest_article = 7
max_articles_per_feed = 30
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='article', attrs={'class': 'post'})
remove_tags = [
dict(name='footer'),
dict(name='div', attrs={'class': 'nts-video-wrapper'}),
dict(name='div', attrs={'class': 'post-report'}),
dict(name='div', attrs={'class': 'post__report'}),
dict(name='div', attrs={'class': 'social_item'}),
dict(name='div', attrs={'class': 'sidebar'}),
dict(
name='div',
attrs={
'class':
'article-announcement-photo article-announcement-photo-block-1'
}
),
dict(
name='div',
attrs={'class': 'statistic-bottom-block statistic-top-block'}
),
dict(name='div', attrs={'class': 'modal modal_search modal_white'}),
dict(name='div', attrs={'class': 'modal_auth modal_white'}),
dict(name='div', attrs={'class': 'main_logo'}),
dict(name='div', attrs={'class': 'footer_banner'}),
dict(name='nav', attrs={'class': 'block block_menu'}),
dict(name='div', attrs={'class': 'pagewrap page-point'}),
dict(name='div', attrs={'class': 'modal fade search-popup'}),
dict(name='div', attrs={'data-vr-zone': 'Mobile main menu'}),
dict(name='aside'),
dict(name='div', attrs={'class': 'block_related'}),
dict(name='div', attrs={'class': 'block_comments'}),
dict(name='div', attrs={'class': 'post_tags'}),
dict(name='div', attrs={'class': 'post__tags'})
]
feeds = [
(
'\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B',
'https://www.pravda.com.ua/rus/rss/'
),
(
'\u0413\u043B\u0430\u0432\u043D\u044B\u0435 \u043D\u043E\u0432\u043E\u0441\u0442\u0438',
'https://www.pravda.com.ua/rus/rss/view_mainnews/'
),
(
'\u041D\u043E\u0432\u043E\u0441\u0442\u0438',
'https://www.pravda.com.ua/rus/rss/view_news/'
),
(
'\u041F\u0443\u0431\u043B\u0438\u043A\u0430\u0446\u0438\u0438',
'https://www.pravda.com.ua/rus/rss/view_pubs/'
),
]