View Single Post
Old 08-04-2022, 06:24 AM   #20
bugmen00t
Connoisseur
bugmen00t rocks like Gibraltar!bugmen00t rocks like Gibraltar!bugmen00t rocks like Gibraltar!bugmen00t rocks like Gibraltar!bugmen00t rocks like Gibraltar!bugmen00t rocks like Gibraltar!bugmen00t rocks like Gibraltar!bugmen00t rocks like Gibraltar!bugmen00t rocks like Gibraltar!bugmen00t rocks like Gibraltar!bugmen00t rocks like Gibraltar!
 
bugmen00t's Avatar
 
Posts: 82
Karma: 100000
Join Date: Aug 2015
Device: Kindle Keyboard 3G + Kindle Voyage WiFi + Kindle PW11 Kids WiFi
New recipes (part 08 of ??)

NEW RUSSIAN SOURCES

Тайга.инфо: Siberian regional news portal. Favicon.
Spoiler:
Code:
#!/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 Tayga(BasicNewsRecipe):
    title          	  = '\u0422\u0430\u0439\u0433\u0430.\u0438\u043D\u0444\u043E'
    __author__            = 'bugmen00t'
    description           = '\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u0430\u043D\u0430\u043B\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442-\u0438\u0437\u0434\u0430\u043D\u0438\u0435 \u043E \u043F\u043E\u043B\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u0438 \u044D\u043A\u043E\u043D\u043E\u043C\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0445 \u0421\u0438\u0431\u0438\u0440\u0441\u043A\u043E\u0433\u043E \u0444\u0435\u0434\u0435\u0440\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u043E\u043A\u0440\u0443\u0433\u0430.'
    publisher             = '\u0422\u0430\u0439\u0433\u0430.\u0438\u043D\u0444\u043E'
    category              = 'blog'
    cover_url = u'https://tayga.info/design/logo.svg'
    language              = 'ru'
    no_stylesheets        = True
    remove_javascript = False
    auto_cleanup   = False
    oldest_article = 7
    max_articles_per_feed = 60

    remove_tags_before = dict(name='h1')

    remove_tags_after = dict(name='div', attrs={'class': 'news_content'})

    remove_tags =   [
        dict(name='p', attrs={'class': 't_left'})
        ] 

    feeds = [
        ('\u0422\u0430\u0439\u0433\u0430.\u0438\u043D\u0444\u043E', 'https://tayga.info/rss')
        ]

Новая вкладка: blog about life in Russian regions. Favicon.
Fixes needed:
  • Some images are missing in the articles with complex formatting
Spoiler:
Code:
#!/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 NewTab(BasicNewsRecipe):
    title          	  = '\u041D\u043E\u0432\u0430\u044F \u0432\u043A\u043B\u0430\u0434\u043A\u0430'
    __author__            = 'bugmen00t'
    description           = '\u041F\u043B\u043E\u0449\u0430\u0434\u043A\u0430 \u0434\u043B\u044F \u043F\u0443\u0431\u043B\u0438\u043A\u0430\u0446\u0438\u0438 \u0440\u0435\u043F\u043E\u0440\u0442\u0430\u0436\u0435\u0439 \u0438 \u0437\u0430\u043C\u0435\u0442\u043E\u043A \u043E \u0442\u043E\u043C, \u043A\u0430\u043A \u043C\u0435\u043D\u044F\u044E\u0442\u0441\u044F \u0440\u0435\u0433\u0438\u043E\u043D\u044B \u0420\u043E\u0441\u0441\u0438\u0438 \u043F\u043E\u0441\u043B\u0435 24 \u0444\u0435\u0432\u0440\u0430\u043B\u044F 2022 \u0433\u043E\u0434\u0430.'
    publisher             = '\u041C\u0438\u0445\u0430\u0438\u043B \u0414\u0430\u043D\u0438\u043B\u043E\u0432\u0438\u0447'
    category              = 'blog'
    cover_url = u'https://static.tildacdn.com/tild3765-3961-4337-b366-323437626331/thenewtab-sn.jpg'
    language              = 'ru'
    no_stylesheets        = True
    remove_javascript = False
    auto_cleanup   = False
    oldest_article = 30
    max_articles_per_feed = 20

    remove_tags_before = dict(name='h1')

    remove_tags =   [
        dict(name='div', attrs={'class': 't-popup'}),
        dict(name='div', attrs={'class': 't185'}),
        dict(name='div', attrs={'class': 't403'}),
        dict(name='div', attrs={'class': 't404'}),
        dict(name='div', attrs={'class': 't134'}),
        ] 

    feeds = [
        ('\u041D\u043E\u0432\u0430\u044F \u0432\u043A\u043B\u0430\u0434\u043A\u0430', 'https://thenewtab.io/rss.xml')
        ]
        
    def preprocess_html(self, soup):
        for img in soup.findAll('img', attrs={'data-original': True}):
            img['src'] = img['data-original']
        return soup

Сноб: bimonthly magazine about art, culture, science and society. Favicon.
Fixes needed:
  • No lead image in the articles
Spoiler:
Code:
#!/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 Snob(BasicNewsRecipe):
    title          	  = '\u0421\u043D\u043E\u0431'
    __author__            = 'bugmen00t'
    description           = '\u0414\u0438\u0441\u043A\u0443\u0441\u0441\u0438\u043E\u043D\u043D\u043E\u0435, \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0435 \u0438 \u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E \u0434\u043B\u044F \u043B\u044E\u0434\u0435\u0439, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0436\u0438\u0432\u0443\u0442 \u0432 \u0440\u0430\u0437\u043D\u044B\u0445 \u0441\u0442\u0440\u0430\u043D\u0430\u0445, \u0433\u043E\u0432\u043E\u0440\u044F\u0442 \u043D\u0430 \u0440\u0430\u0437\u043D\u044B\u0445 \u044F\u0437\u044B\u043A\u0430\u0445, \u043D\u043E \u0434\u0443\u043C\u0430\u044E\u0442 \u043F\u043E-\u0440\u0443\u0441\u0441\u043A\u0438.'
    publisher             = '\u041E\u041E\u041E \u00AB\u0421\u043D\u043E\u0431 \u041C\u0435\u0434\u0438\u0430\u00BB'
    category              = 'magazine'
    cover_url = u'https://snob.ru/indoc/tilda/995317/images/tild3233-6631-4664-b663-353636373235__e3057a5fee932ada1aaf.png'
    language              = 'ru'
    no_stylesheets        = False
    remove_javascript = False
    auto_cleanup   = False
    oldest_article = 5
    max_articles_per_feed = 50

    remove_tags_before = dict(name='h1')
    
    remove_tags_after = dict(name='article')

    remove_tags =   [
        dict(name='div', attrs={'class': 'entry__tags'}),
        dict(name='div', attrs={'class': 'entry__likes'})
        ] 

    feeds = [
        ('\u0421\u043D\u043E\u0431', 'https://snob.ru/rss/')
        ]
        
    def get_article_url(self, article):
        link = article.get('link', None)
            return link.split('?utm')[0]

Новый Калининград: regional news of Kaliningrad city and Kaliningrad district. Favicon.
Spoiler:
Code:
#!/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 NewKaliningrad(BasicNewsRecipe):
    title          	  = '\u041D\u043E\u0432\u044B\u0439 \u041A\u0430\u043B\u0438\u043D\u0438\u043D\u0433\u0440\u0430\u0434'
    __author__            = 'bugmen00t'
    description           = '\u0420\u0435\u0433\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0439 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442-\u043F\u043E\u0440\u0442\u0430\u043B \u041A\u0430\u043B\u0438\u043D\u0438\u043D\u0433\u0440\u0430\u0434\u0441\u043A\u043E\u0439 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u0438 \u0433\u043E\u0440\u043E\u0434\u0430 \u041A\u0430\u043B\u0438\u043D\u0438\u043D\u0433\u0440\u0430\u0434\u0430.'
    publisher             = '\u0417\u0410\u041E "\u0422\u0432\u0438\u043A \u041C\u0430\u0440\u043A\u0435\u0442\u0438\u043D\u0433"'
    category              = 'news'
    cover_url = u'https://www.newkaliningrad.ru/images/logo.gif'
    language              = 'ru'
    no_stylesheets        = False
    remove_javascript = False
    auto_cleanup   = False
    oldest_article = 3
    max_articles_per_feed = 100

    remove_tags_before = dict(name='h1')
    
    remove_tags_after = dict(name='div', attrs={'class': 'content'})

    remove_tags =   [
        dict(name='div', attrs={'class': 'continue-box'})
        ] 

    feeds = [
        ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://www.newkaliningrad.ru/news/rss.xml')
    ]


NEW UKRAINIAN SOURCES

РБК-Украина: business and finances news agency. Favicon replacemet.
Fixes needed:
  • No images in articles
Ukrainian version:
Spoiler:
Code:
#!/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 RBCUA(BasicNewsRecipe):
    title          		  = '\u0420\u0411\u041A-\u0423\u043A\u0440\u0430\u0457\u043D\u0430'
    __author__            = 'bugmen00t'
    description           = '\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0435 \u0456\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u0439\u043D\u0435 \u0430\u0433\u0435\u043D\u0442\u0441\u0442\u0432\u043E.'
    publisher             = '\u0422\u041E\u0412 \u00AB\u042E\u0431\u0456\u0442\u0456 \u041C\u0435\u0434\u0456\u0430\u00BB'
    category              = 'news'
    cover_url = u'https://www.rbc.ua/static/img/r/b/rbc_pic_best_news_650x410_2_650x410_1_650x410_1_480x270.jpg'
    language              = 'uk'
    no_stylesheets        = False
    remove_javascript = False
    auto_cleanup   = False
    oldest_article = 3
    max_articles_per_feed = 20

    remove_tags_before = dict(name='article')
    
    remove_tags_after = dict(name='article')

    remove_tags =   [
        dict(name='span', attrs={'class': 'lang-publication'}),
        dict(name='div', attrs={'class': 'share'}),
        dict(name='ins'),
        dict(name='div', attrs={'class': 'read-in-google'}),
        dict(name='div', attrs={'class': 'intext-tags'})
        ] 

    feeds = [
        ('\u0420\u0411\u041A', 'https://www.rbc.ua/static/rss/all.ukr.rss.xml')
    ]

Russian version:
Spoiler:
Code:
#!/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 RBCUA(BasicNewsRecipe):
    title          		  = '\u0420\u0411\u041A-\u0423\u043A\u0440\u0430\u0438\u043D\u0430'
    __author__            = 'bugmen00t'
    description           = '\u0423\u043A\u0440\u0430\u0438\u043D\u0441\u043A\u043E\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0435 \u0430\u0433\u0435\u043D\u0442\u0441\u0442\u0432\u043E, \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0443\u044E\u0449\u0435\u0435\u0441\u044F \u043D\u0430 \u0444\u0438\u043D\u0430\u043D\u0441\u043E\u0432\u044B\u0445, \u044D\u043A\u043E\u043D\u043E\u043C\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u0438 \u043F\u043E\u043B\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043D\u043E\u0432\u043E\u0441\u0442\u044F\u0445 \u0423\u043A\u0440\u0430\u0438\u043D\u044B.'
    publisher             = '\u041E\u041E\u041E \u00AB\u042E\u0431\u0438\u0442\u0438 \u041C\u0435\u0434\u0438\u0430\u00BB'
    category              = 'news'
    cover_url = u'https://www.rbc.ua/static/common/imgs/logo650.jpg'
    language              = 'ru_UK'
    no_stylesheets        = False
    remove_javascript = False
    auto_cleanup   = False
    oldest_article = 3
    max_articles_per_feed = 20

    remove_tags_before = dict(name='article')
    
    remove_tags_after = dict(name='article')

    remove_tags =   [
        dict(name='span', attrs={'class': 'lang-publication'}),
        dict(name='div', attrs={'class': 'share'}),
        dict(name='ins'),
        dict(name='div', attrs={'class': 'read-in-google'}),
        dict(name='div', attrs={'class': 'intext-tags'})
        ] 

    feeds = [
        ('\u0420\u0411\u041A', 'https://www.rbc.ua/static/rss/all.rus.rss.xml')
    ]


НВ: information and news resource Favicon.
Fixes needed:
  • Broken layout in articles with complex text formatting
Ukrainian version:
Spoiler:
Code:
#!/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 NV(BasicNewsRecipe):
    title          	  = '\u041D\u0412 (\u00AB\u041D\u043E\u0432\u0438\u0439 \u0427\u0430\u0441\u00BB)'
    __author__            = 'bugmen00t'
    description           = '\u0429\u043E\u0442\u0438\u0436\u043D\u0435\u0432\u0438\u0439 \u0441\u0443\u0441\u043F\u0456\u043B\u044C\u043D\u043E-\u043F\u043E\u043B\u0456\u0442\u0438\u0447\u043D\u0438\u0439 \u0456\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u0439\u043D\u043E-\u043D\u043E\u0432\u0438\u043D\u043D\u0438\u0439 \u0441\u0430\u0439\u0442.'
    publisher             = '\u0422\u041E\u0412 \u00AB\u0412\u0438\u0434\u0430\u0432\u043D\u0438\u0447\u0438\u0439 \u0434\u0456\u043C \u00AB\u041C\u0435\u0434\u0456\u0430-\u0414\u041A\u00BB'
    category              = 'magazine'
    cover_url = u'https://static.nv.ua/shared/system/Article/posters/002/467/576/600x300/272ab80cd01e4022dcb4c691c9073e97.jpg'
    language              = 'uk'
    no_stylesheets        = False
    remove_javascript = False
    auto_cleanup   = False
    oldest_article = 7
    max_articles_per_feed = 40

    remove_tags_before = dict(name='h1')
    
    remove_tags_after = dict(name='article')

    remove_tags =   [
        dict(name='div', attrs={'class': 'article__content__footer'}),
        dict(name='div', attrs={'class': 'article__head__additional_views'}),
        dict(name='div', attrs={'class': 'show_two_positions '}),
        dict(name='div', attrs={'class': 'media__also__news'}),
        dict(name='div', attrs={'class': 'media__also__news_link'}),
        dict(name='blockquote', attrs={'class': 'code'}),
        dict(name='section', attrs={'class': 'article-share'}),
        dict(name='div', attrs={'class': 'nts-video-wrapper'}),
        dict(name='footer'),
        dict(name='div', attrs={'class': 'longread_tags'}),
        dict(name='div', attrs={'class': 'col-md-6 col-lg-3'}),
        dict(name='div', attrs={'class': 'copyright'}),
        dict(name='div', attrs={'class': 'media__video'}),
        dict(name='div', attrs={'class': 'media__embed'})
        ] 

    feeds = [
        ('\u0412\u0441\u0456 \u043D\u043E\u0432\u0438\u043D\u0438', 'https://nv.ua/ukr/rss/all.xml'),
        ('\u0423\u043A\u0440\u0430\u0457\u043D\u0430', 'https://nv.ua/ukr/rss/2283.xml'),
        ('\u0421\u0432\u0456\u0442', 'https://nv.ua/ukr/rss/2318.xml'),
        ('\u041F\u043E\u0433\u043B\u044F\u0434\u0438', 'https://nv.ua/ukr/rss/2671.xml'),
        ('\u041A\u0438\u0457\u0432', 'https://nv.ua/ukr/rss/108.xml'),
        ('\u0410\u0440\u0442', 'https://nv.ua/ukr/rss/52.xml'),
        ('\u0414\u043E\u0441\u044C\u0454', 'https://nv.ua/ukr/rss/230.xml'),
        ('\u0411\u0456\u0437\u043D\u0435\u0441', 'https://nv.ua/ukr/rss/2292.xml'),
        ('\u041B\u043E\u043D\u0433\u0440\u0456\u0434\u0438', 'https://nv.ua/ukr/rss/2790.xml'),
        ('\u041A\u0430\u0440\u0442\u043A\u0438', 'https://nv.ua/ukr/rss/48.xml'),
        ('\u0422\u0435\u0445\u043D\u043E', 'https://nv.ua/ukr/rss/2346.xml'),
        ('\u0420\u0435\u0433\u0456\u043E\u043D\u0438', 'https://nv.ua/ukr/rss/231.xml'),
        ('\u0410\u0432\u0442\u043E', 'https://nv.ua/ukr/rss/154.xml'),
        ('Life', 'https://nv.ua/ukr/rss/2325.xml'),
        ('\u0417\u0434\u043E\u0440\u043E\u0432\u0027\u044F', 'https://nv.ua/ukr/rss/90.xml'),
        ('\u0421\u043F\u043E\u0440\u0442', 'https://nv.ua/ukr/rss/2371.xml'),
        ('\u0410\u0437\u0430\u0440\u0442', 'https://nv.ua/ukr/rss/178.xml'),
        ('\u0428\u043E\u043F\u0456\u043D\u0433', 'https://nv.ua/ukr/rss/131.xml'),
        ('LOL', 'https://nv.ua/ukr/rss/2365.xml'),
        ('\u041F\u0440\u0438\u0445\u043E\u0432\u0430\u043D\u0438\u0439 \u0440\u043E\u0437\u0434\u0456\u043B', 'https://nv.ua/ukr/rss/118.xml'),
        ('\u0424\u041E\u0422\u041E', 'https://nv.ua/ukr/rss/2384.xml'),
        ('\u0420\u0430\u0434\u0456\u043E \u041D\u0412', 'https://nv.ua/ukr/rss/3050.xml'),
        ('BBC', 'https://nv.ua/ukr/rss/2836.xml'),
        ('\u0426\u0438\u0442\u0430\u0442\u0430 \u0434\u043D\u044F', 'https://nv.ua/ukr/rss/2672.xml'),
        ('\u0414\u043D\u0456\u043F\u0440\u043E', 'https://nv.ua/ukr/rss/232.xml'),
        ('\u041A\u0440\u0443\u043F\u043D\u0438\u043C \u043F\u043B\u0430\u043D\u043E\u043C', 'https://nv.ua/ukr/rss/2383.xml'),
        ('\u0411\u043B\u043E\u0433 \u041D\u0412', 'https://nv.ua/ukr/rss/225.xml'),
        ('\u041B\u044C\u0432\u0456\u0432', 'https://nv.ua/ukr/rss/233.xml'),
        ('\u041E\u0434\u0435\u0441\u0430', 'https://nv.ua/ukr/rss/234.xml'),
        ('\u0425\u0430\u0440\u043A\u0456\u0432', 'https://nv.ua/ukr/rss/235.xml'),
        ('\u0410\u043D\u0435\u043A\u0434\u043E\u0442\u0438', 'https://nv.ua/ukr/rss/2765.xml'),
        ('\u0415\u043A\u0441\u043A\u043B\u044E\u0437\u0438\u0432\u0438 \u041D\u0412', 'https://nv.ua/ukr/rss/119.xml')
    ]

Russian version:
Spoiler:
Code:
#!/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 NV(BasicNewsRecipe):
    title          	  = '\u041D\u0412 (\u00AB\u041D\u043E\u0432\u043E\u0435 \u0432\u0440\u0435\u043C\u044F\u00BB)'
    __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 \u0438 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043D\u043E\u0432\u043E\u0441\u0442\u043D\u043E\u0439 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442-\u0440\u0435\u0441\u0443\u0440\u0441.'
    publisher             = '\u041E\u041E\u041E \u00AB\u0418\u0437\u0434\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0434\u043E\u043C \u00AB\u041C\u0435\u0434\u0438\u0430-\u0414\u041A\u00BB'
    category              = 'magazine'
    cover_url = u'https://yes-ukraine.org/imglib/_newimage/Yalta-annual-meeting/11th-yalta-annual-meeting/partners/media-partneri/nv_logo.png'
    language              = 'ru_UK'
    no_stylesheets        = False
    remove_javascript = False
    auto_cleanup   = False
    oldest_article = 7
    max_articles_per_feed = 40

    remove_tags_before = dict(name='h1')
    
    remove_tags_after = dict(name='article')

    remove_tags =   [
        dict(name='div', attrs={'class': 'article__content__footer'}),
        dict(name='div', attrs={'class': 'article__head__additional_views'}),
        dict(name='div', attrs={'class': 'show_two_positions '}),
        dict(name='div', attrs={'class': 'media__also__news'}),
        dict(name='div', attrs={'class': 'media__also__news_link'}),
        dict(name='blockquote', attrs={'class': 'code'}),
        dict(name='section', attrs={'class': 'article-share'}),
        dict(name='div', attrs={'class': 'nts-video-wrapper'}),
        dict(name='footer'),
        dict(name='div', attrs={'class': 'longread_tags'}),
        dict(name='div', attrs={'class': 'col-md-6 col-lg-3'}),
        dict(name='div', attrs={'class': 'copyright'}),
        dict(name='div', attrs={'class': 'media__video'}),
        dict(name='div', attrs={'class': 'media__embed'})
        ] 

    feeds = [
        ('\u0412\u0441\u0435 \u043D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://nv.ua/rss/all.xml'),
        ('\u0423\u043A\u0440\u0430\u0438\u043D\u0430', 'https://nv.ua/rss/2283.xml'),
        ('\u041C\u0438\u0440', 'https://nv.ua/rss/2318.xml'),
        ('\u041C\u043D\u0435\u043D\u0438\u044F', 'https://nv.ua/rss/2671.xml'),
        ('\u041A\u0438\u0435\u0432', 'https://nv.ua/rss/108.xml'),
        ('\u0410\u0440\u0442', 'https://nv.ua/rss/52.xml'),
        ('\u0414\u043E\u0441\u044C\u0435', 'https://nv.ua/rss/230.xml'),
        ('\u0411\u0438\u0437\u043D\u0435\u0441', 'https://nv.ua/rss/2292.xml'),
        ('\u041B\u043E\u043D\u0433\u0440\u0438\u0434\u044B', 'https://nv.ua/rss/2790.xml'),
        ('\u041A\u0430\u0440\u0442\u043E\u0447\u043A\u0438', 'https://nv.ua/rss/48.xml'),
        ('\u0422\u0435\u0445\u043D\u043E', 'https://nv.ua/rss/2346.xml'),
        ('\u0420\u0435\u0433\u0438\u043E\u043D\u044B', 'https://nv.ua/rss/231.xml'),
        ('\u0410\u0432\u0442\u043E', 'https://nv.ua/rss/154.xml'),
        ('Life', 'https://nv.ua/rss/2325.xml'),
        ('\u0417\u0434\u043E\u0440\u043E\u0432\u044C\u0435', 'https://nv.ua/rss/90.xml'),
        ('\u0421\u043F\u043E\u0440\u0442', 'https://nv.ua/rss/2371.xml'),
        ('\u0410\u0437\u0430\u0440\u0442', 'https://nv.ua/rss/178.xml'),
        ('\u0428\u043E\u043F\u043F\u0438\u043D\u0433', 'https://nv.ua/rss/131.xml'),
        ('LOL', 'https://nv.ua/rss/2365.xml'),
        ('\u0421\u043A\u0440\u044B\u0442\u044B\u0439 \u0440\u0430\u0437\u0434\u0435\u043B', 'https://nv.ua/rss/118.xml'),
        ('\u0424\u041E\u0422\u041E', 'https://nv.ua/rss/2384.xml'),
        ('\u0420\u0430\u0434\u0438\u043E \u041D\u0412', 'https://nv.ua/rss/3050.xml'),
        ('BBC', 'https://nv.ua/rss/2836.xml'),
        ('\u0426\u0438\u0442\u0430\u0442\u0430 \u0434\u043D\u044F', 'https://nv.ua/rss/2672.xml'),
        ('\u0414\u043D\u0435\u043F\u0440', 'https://nv.ua/rss/232.xml'),
        ('\u041A\u0440\u0443\u043F\u043D\u044B\u043C \u043F\u043B\u0430\u043D\u043E\u043C', 'https://nv.ua/rss/2383.xml'),
        ('\u0411\u043B\u043E\u0433 \u041D\u0412', 'https://nv.ua/rss/225.xml'),
        ('\u041B\u044C\u0432\u043E\u0432', 'https://nv.ua/rss/233.xml'),
        ('\u041E\u0434\u0435\u0441\u0441\u0430', 'https://nv.ua/rss/234.xml'),
        ('\u0425\u0430\u0440\u044C\u043A\u043E\u0432', 'https://nv.ua/rss/235.xml'),
        ('\u0410\u043D\u0435\u043A\u0434\u043E\u0442\u044B', 'https://nv.ua/rss/2765.xml'),
        ('\u042D\u043A\u0441\u043A\u043B\u044E\u0437\u0438\u0432\u044B \u041D\u0412', 'https://nv.ua/rss/119.xml')
    ]

English version:
Spoiler:
Code:
#!/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 NV(BasicNewsRecipe):
    title          		  = 'NV (The New Voice of Ukraine)'
    __author__            = 'bugmen00t'
    description           = 'Independent Ukrainian socio-political magazine and news resource.'
    publisher             = 'Vydavnychyy Dim Media-DK LLC'
    category              = 'magazine'
    cover_url = u'https://static.nv.ua/shared/system/Article/posters/002/439/752/600x300/65730a3918ebad6c86167b53f2b3e98a.jpg'
    language              = 'en'
    no_stylesheets        = False
    remove_javascript = False
    auto_cleanup   = False
    oldest_article = 30
    max_articles_per_feed = 40

    remove_tags_before = dict(name='h1')
    
    remove_tags_after = dict(name='article')

    remove_tags =   [
        dict(name='div', attrs={'class': 'article__content__footer'}),
        dict(name='div', attrs={'class': 'article__head__additional_views'}),
        dict(name='div', attrs={'class': 'show_two_positions '}),
        dict(name='div', attrs={'class': 'media__also__news'}),
        dict(name='div', attrs={'class': 'media__also__news_link'}),
        dict(name='blockquote', attrs={'class': 'code'}),
        dict(name='section', attrs={'class': 'article-share'}),
        dict(name='div', attrs={'class': 'nts-video-wrapper'}),
        dict(name='footer'),
        dict(name='div', attrs={'class': 'longread_tags'}),
        dict(name='div', attrs={'class': 'top_donate'}),
        dict(name='div', attrs={'class': 'col-md-6 col-lg-3'}),
        dict(name='div', attrs={'class': 'copyright'}),
        dict(name='div', attrs={'class': 'media__video'}),
        dict(name='div', attrs={'class': 'media__embed'})
        ] 

    feeds = [
        ('All News', 'https://english.nv.ua/rss/all_english.xml'),
        ('Life', 'https://english.nv.ua/rss/239.xml'),
        ('Business', 'https://english.nv.ua/rss/238.xml'),
        ('Nation', 'https://english.nv.ua/rss/237.xml'),
        ('Opinion', 'https://english.nv.ua/rss/240.xml')
    ]
Attached Images
         
Attached Files
File Type: recipe tayga.recipe (1.7 KB, 596 views)
File Type: recipe newtab.recipe (2.0 KB, 591 views)
File Type: recipe snob.recipe (2.0 KB, 587 views)
File Type: recipe n_kaliningrad.recipe (1.6 KB, 605 views)
File Type: recipe rbcua_ua.recipe (1.5 KB, 601 views)
File Type: recipe rbcua_ru.recipe (1.9 KB, 609 views)
File Type: recipe nv_ua.recipe (4.9 KB, 582 views)
File Type: recipe nv_ru.recipe (4.9 KB, 609 views)
File Type: recipe nv_en.recipe (2.2 KB, 622 views)
bugmen00t is offline   Reply With Quote