| 
			
			
			
			 Connoisseur 
			
			
			
		
			
				
			
			
			
				 
				Posts: 82 
				Karma: 100000 
				Join Date: Aug 2015 
				
				
				
				Device: Kindle Keyboard 3G + Kindle Voyage WiFi + Kindle PW11 Kids WiFi 
				
				
				     
			 					
		
	 | 
	
	
	
		
		
			
			 
				
				New and fixed recipes (part 14)
			 
			 
			
		
		
		
		
			
			Fixed Собеседник recipe (sobesednik.recipe): updated RSS URL.
Агентство: news site, sidekick of  Проект.Медиа.  Favicon.
 
Зеркало: Belarussian news site, successor of shut down TUT.BY portal.  Favicon.
 As there're no Belarussian recipes yet, I'm not sure which language code should be used for Russian (Belarus): ru_BY, ru_BE or just ru.
Spoiler: 
 
	Code: 
	#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class Zerkalo(BasicNewsRecipe):
    title = u'\u0417\u0435\u0440\u043A\u0430\u043B\u043E'
    description = u'\u0417\u0435\u0440\u043A\u0430\u043B\u043E, \u043F\u0440\u043E\u0435\u043A\u0442 \u0447\u0430\u0441\u0442\u0438 \u0431\u044B\u0432\u0448\u0435\u0439 \u043A\u043E\u043C\u0430\u043D\u0434\u044B TUT.BY.'
    __author__ = 'bugmen00t'
    publisher = '\u0417\u0435\u0440\u043A\u0430\u043B\u043E (zerkalo.io)'
    publication_type = 'news'
    oldest_article = 7
    max_articles_per_feed = 100
    language = 'ru_BY'
    cover_url = 'https://upload.wikimedia.org/wikipedia/commons/c/c7/Zerkalo.io.png'
    auto_cleanup = False
    no_stylesheets = False
    remove_tags_before = dict(name='h1')
    remove_tags_after = dict(name='div', attrs={'id': 'article_body'})
    remove_tags =   [
        dict(name='div', attrs={'class': 'b-addition m-single m-simplify'}),
        dict(name='div', attrs={'class': 'b-addition m-simplify'}),
        dict(name='iframe'),
        ] 
    feeds = [
#
# Original feeds
#
#        ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438 \u0437\u0430 \u0434\u0435\u043D\u044C', 'https://news.zerkalo.io/rss/all.rss'),
#       ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438 \u043D\u0435\u0434\u0435\u043B\u0438', 'https://news.zerkalo.io/rss/index.rss'),
#
# Censorship bypass
#
        ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438 \u0437\u0430 \u0434\u0435\u043D\u044C', 'https://br0wse-zerkalo.site/news/rss/all.rss'),
        ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438 \u043D\u0435\u0434\u0435\u043B\u0438', 'https://br0wse-zerkalo.site/news/rss/index.rss'),
    ]
  
 
SotaVision: Russian independent news outlet.  Favicon.
 Fixes needed: -  No images in some articles (lazyload)
 
 Spoiler: 
 
	Code: 
	#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class Sotavision(BasicNewsRecipe):
    title = u'SOTA.Vision'
    description = u'\u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u043E\u0435 \u043D\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0435 \u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E-\u043F\u043E\u043B\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u043C\u0435\u0434\u0438\u0430, \u0441\u0444\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0435 \u043D\u0430 \u043E\u0441\u0432\u0435\u0449\u0435\u043D\u0438\u0438 \u043D\u0430\u0440\u0443\u0448\u0435\u043D\u0438\u044F \u043F\u0440\u0430\u0432 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0430 \u0438 \u043F\u043E\u043B\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u043C \u043F\u0440\u0435\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u043D\u0438\u0438 \u0432 \u0420\u043E\u0441\u0441\u0438\u0438.'
    __author__ = 'bugmen00t'
    publisher = '\u0410\u043B\u0435\u043A\u0441\u0430\u043D\u0434\u0440\u0430 \u0410\u0433\u0435\u0435\u0432\u0430, \u041E\u043B\u0435\u0433 \u0415\u043B\u0430\u043D\u0447\u0438\u043A,  \u0415\u0432\u0433\u0435\u043D\u0438\u0439 \u0414\u043E\u043C\u043E\u0436\u0438\u0440\u043E\u0432'
    publication_type = 'news'
    oldest_article = 7
    max_articles_per_feed = 10
    language = 'ru'
    cover_url = 'https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/SotaVision.png/600px-SotaVision.png'
    auto_cleanup = False
    no_stylesheets = True
    remove_tags_before = dict(name='h1')
    remove_tags_after = dict(name='span', attrs={'style': 'border-color:#EBEBEB;border-width:1px;width:100%;'})
    remove_tags =   [
        dict(name='div', attrs={'class': 'td_block_wrap tdb_mobile_menu tdi_7 td-pb-border-top td_block_template_1 tdb-header-align'}),
        dict(name='div', attrs={'class': 'td_block_wrap tdb_single_author tdi_52 td-pb-border-top td_block_template_1 tdb-post-meta'}),
        dict(name='div', attrs={'class': 'td_block_wrap tdb_single_date tdi_53 td-pb-border-top td_block_template_1 tdb-post-meta'}),
        dict(name='div', attrs={'class': 'td_block_wrap tdb_single_post_views tdi_54 td-pb-border-top td_block_template_1 tdb-post-meta'}),
        dict(name='div', attrs={'class': 'td_block_wrap tdb_single_post_share tdi_55  td-pb-border-top td_block_template_1'}),
        dict(name='div', attrs={'class': 'td-post-sharing-visible'}),
        ] 
    feeds = [
        ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://sotavision.world/feed/'),
        ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://sotavision.world/category/news/feed/'),
        ('\u0418\u0441\u0442\u043E\u0440\u0438\u0438', 'https://sotavision.world/category/stories/feed/'),
        ('\u0412\u0438\u0434\u0435\u043E', 'https://sotavision.world/category/videos/feed/'),
        ('\u0424\u043E\u0442\u043E', 'https://sotavision.world/category/photos/feed/'),
        ('\u041A\u0430\u0440\u0442\u043E\u0447\u043A\u0438', 'https://sotavision.world/category/projects/feed/'),
        ('\u041C\u043D\u0435\u043D\u0438\u044F', 'https://sotavision.world/category/opinions/feed/'),
    ]
  
 
GeekCity: modern culture portal: news, reviews and guides.  Favicon.
 Spoiler: 
 
	Code: 
	#!/usr/bin/env python
# vim:fileencoding=utf-8
from calibre.web.feeds.news import BasicNewsRecipe
class GeekCity(BasicNewsRecipe):
    title = u'GeekCity'
    description = u'\u041F\u043E\u0440\u0442\u0430\u043B \u043E \u043A\u043E\u043C\u0438\u043A\u0441\u0430\u0445, \u043A\u0438\u043D\u043E, \u0441\u0435\u0440\u0438\u0430\u043B\u0430\u0445, \u0438\u0433\u0440\u0430\u0445, sci-fi \u0438 \u043C\u043D\u043E\u0433\u043E\u043C \u0434\u0440\u0443\u0433\u043E\u043C. \u0417\u0434\u0435\u0441\u044C \u0432\u044B \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u043C\u043E\u0436\u0435\u0442\u0435 \u043D\u0430\u0439\u0442\u0438 \u0441\u0432\u0435\u0436\u0438\u0435 \u043D\u043E\u0432\u043E\u0441\u0442\u0438 \u043E \u0441\u0430\u043C\u044B\u0445 \u0432\u0430\u0436\u043D\u044B\u0445 \u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0445 \u0432 \u043C\u0438\u0440\u0435 \u0433\u0438\u043A\u043E\u0432, \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u044B\u0435 \u043E\u0431\u0437\u043E\u0440\u044B, \u0433\u0430\u0439\u0434\u044B, \u0441\u0442\u0430\u0442\u044C\u0438 \u0438 \u043C\u043D\u043E\u0433\u043E\u0435 \u0434\u0440\u0443\u0433\u043E\u0435.'
    __author__ = 'bugmen00t'
    publisher = 'GeekCity.ru'
    publication_type = 'blog'
    oldest_article = 7
    max_articles_per_feed = 10
    language = 'ru'
    cover_url = 'https://geekcity.ru/wp-content/uploads/2021/03/og.jpg'
    auto_cleanup = False
    no_stylesheets = False
    remove_tags_before = dict(name='article')
    remove_tags_after = dict(name='article')
    remove_tags =   [
        dict(name='div', attrs={'class': 'term-badges floated'}),
        dict(name='div', attrs={'class': 'post-meta single-post-meta'}),
        dict(name='div', attrs={'class': 'post-share single-post-share top-share clearfix style-1'}),
        dict(name='div', attrs={'class': 'post-share single-post-share bottom-share clearfix style-1'}),
        dict(name='div', attrs={'class': 'entry-terms post-tags clearfix'}),
        ] 
    feeds = [
        ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://geekcity.ru/feed/'),
        ('\u0411\u0435\u0437 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438', 'https://geekcity.ru/category/%D0%B1%D0%B5%D0%B7-%D1%80%D1%83%D0%B1%D1%80%D0%B8%D0%BA%D0%B8/feed/'),
        ('\u0421\u0430\u0439\u0442', 'https://geekcity.ru/category/site/'),
        ('\u0424\u0438\u043B\u044C\u043C\u044B', 'https://geekcity.ru/category/moviespod/feed/'),
        ('\u0421\u0435\u0440\u0438\u0430\u043B\u044B', 'https://geekcity.ru/category/tvshow/feed/'),
        ('\u041A\u043E\u043C\u0438\u043A\u0441\u044B', 'https://geekcity.ru/category/comics-2/feed/'),
        ('\u0418\u0433\u0440\u044B', 'https://geekcity.ru/category/games/feed/'),
        ('\u0422\u0435\u0445\u043D\u043E', 'https://geekcity.ru/category/tech/feed/'),
        ('\u0428\u043C\u043E\u0442', 'https://geekcity.ru/category/shopping/feed/'),
        ('\u0413\u0430\u0439\u0434\u044B', 'https://geekcity.ru/category/guides/feed/'),
    ]
  
 
		 
		
	
		
		
			
			
			
		
			
				
			
			
			
			
			
				
			
			
			
			
			 
		
		
		
		
		
		
		
		
		
		
		
	
	 |