comment formating (extra-edit)

This commit is contained in:
un-pogaz 2025-01-24 11:14:21 +01:00
parent dba73b96b7
commit 0ce6645f15
80 changed files with 1716 additions and 1877 deletions

View File

@ -38,9 +38,9 @@ class ABCNews(BasicNewsRecipe):
if d and isinstance(d, str):
self.oldest_article = float(d)
# auto_cleanup = True # enable this as a backup option if recipe stops working
# auto_cleanup = True # enable this as a backup option if recipe stops working
# use_embedded_content = False # if set to true will assume that all the article content is within the feed (i.e. won't try to fetch more data)
# use_embedded_content = False # if set to true will assume that all the article content is within the feed (i.e. won't try to fetch more data)
no_stylesheets = True
remove_javascript = True
@ -57,7 +57,7 @@ class ABCNews(BasicNewsRecipe):
# Clear out all the unwanted html tags:
# ************************************
remove_tags = [
# dict(name='aside', attrs={'name': re.compile(aside_reg_exp, re.IGNORECASE)})
# dict(name='aside', attrs={'name': re.compile(aside_reg_exp, re.IGNORECASE)})
{
'name': ['meta', 'link', 'noscript', 'aside']
},
@ -98,12 +98,12 @@ class ABCNews(BasicNewsRecipe):
('Health', 'https://www.abc.net.au/news/feed/9167762/rss.xml'),
('Arts and Entertainment', 'https://www.abc.net.au/news/feed/472/rss.xml'),
('Fact Check', 'https://www.abc.net.au/news/feed/5306468/rss.xml'),
# ('Adelaide', 'https://www.abc.net.au/news/feed/8057540/rss.xml'), #enable by removing # at start of line
# ('Brisbane', 'https://www.abc.net.au/news/feed/8053540/rss.xml'), #enable by removing # at start of line
# ('Canberra', 'https://www.abc.net.au/news/feed/8057234/rss.xml'), #enable by removing # at start of line
# ('Darwin', 'https://www.abc.net.au/news/feed/8057648/rss.xml'), #enable by removing # at start of line
# ('Hobart', 'https://www.abc.net.au/news/feed/8054562/rss.xml'), #enable by removing # at start of line
# ('Melbourne', 'https://www.abc.net.au/news/feed/8057136/rss.xml'), #enable by removing # at start of line
# ('Perth', 'https://www.abc.net.au/news/feed/8057096/rss.xml'), #enable by removing # at start of line
# ('Sydney', 'https://www.abc.net.au/news/feed/8055316/rss.xml'), #enable by removing # at start of line
# ('Adelaide', 'https://www.abc.net.au/news/feed/8057540/rss.xml'), #enable by removing # at start of line
# ('Brisbane', 'https://www.abc.net.au/news/feed/8053540/rss.xml'), #enable by removing # at start of line
# ('Canberra', 'https://www.abc.net.au/news/feed/8057234/rss.xml'), #enable by removing # at start of line
# ('Darwin', 'https://www.abc.net.au/news/feed/8057648/rss.xml'), #enable by removing # at start of line
# ('Hobart', 'https://www.abc.net.au/news/feed/8054562/rss.xml'), #enable by removing # at start of line
# ('Melbourne', 'https://www.abc.net.au/news/feed/8057136/rss.xml'), #enable by removing # at start of line
# ('Perth', 'https://www.abc.net.au/news/feed/8057096/rss.xml'), #enable by removing # at start of line
# ('Sydney', 'https://www.abc.net.au/news/feed/8055316/rss.xml'), #enable by removing # at start of line
]

View File

@ -96,5 +96,5 @@ class AM730(BasicNewsRecipe):
print(title)
print(url)
SectionsArticles.append(self.getAMSectionArticles(title,url))
# feeds.append(articles[0]['url'])
# feeds.append(articles[0]['url'])
return SectionsArticles

View File

@ -12,7 +12,7 @@ class BeforeWeGo(BasicNewsRecipe):
description = 'Before We Go Blog is a collective of Fantasy, Sci-Fi and Graphic Novel fans from around the world, passionate about providing awesome, enjoyable reviews for anyone who loves a good book!' # noqa: E501
publisher = 'BEFOREWEGOBLOG'
category = 'blog'
# cover_url = u'https://i0.wp.com/beforewegoblog.com/wp-content/uploads/2021/09/beth-with-long-hair.jpeg'
# cover_url = u'https://i0.wp.com/beforewegoblog.com/wp-content/uploads/2021/09/beth-with-long-hair.jpeg'
cover_url = u'https://i0.wp.com/beforewegoblog.com/wp-content/uploads/2021/01/before-we-go-blog-1.png'
language = 'en'
no_stylesheets = True
@ -24,7 +24,7 @@ class BeforeWeGo(BasicNewsRecipe):
remove_tags_before = dict(name='h1', attrs={'class': 'entry-title'})
remove_tags_after = dict(name='div', attrs={'id': 'author-bio'})
# remove_tags_after = dict(name='article')
# remove_tags_after = dict(name='article')
remove_tags = [
dict(name='div', attrs={'class': 'nectar-scrolling-text font_size_10vh custom_color has-custom-divider'}),

View File

@ -60,20 +60,20 @@ class CanWestPaper(BasicNewsRecipe):
]
# un-comment the following six lines for the Vancouver Province
# title = u'Vancouver Province'
# url_prefix = 'http://www.theprovince.com'
# description = u'News from Vancouver, BC'
# std_logo_url = 'http://www.theprovince.com/images/logo_theprovince.jpg'
# logo_url = 'vplogo.jpg'
# fp_tag = 'CAN_TP'
# # title = u'Vancouver Province'
# # url_prefix = 'http://www.theprovince.com'
# # description = u'News from Vancouver, BC'
# # std_logo_url = 'http://www.theprovince.com/images/logo_theprovince.jpg'
# # logo_url = 'vplogo.jpg'
# # fp_tag = 'CAN_TP'
# un-comment the following six lines for the Vancouver Sun
# title = u'Vancouver Sun'
# url_prefix = 'http://www.vancouversun.com'
# description = u'News from Vancouver, BC'
# std_logo_url = 'http://www.vancouversun.com/images/logo_vancouversun.jpg'
# logo_url = 'vslogo.jpg'
# fp_tag = 'CAN_VS'
# # title = u'Vancouver Sun'
# # url_prefix = 'http://www.vancouversun.com'
# # description = u'News from Vancouver, BC'
# # std_logo_url = 'http://www.vancouversun.com/images/logo_vancouversun.jpg'
# # logo_url = 'vslogo.jpg'
# # fp_tag = 'CAN_VS'
# un-comment the following six lines for the Calgary Herald
title = u'Calgary Herald'
@ -90,7 +90,7 @@ class CanWestPaper(BasicNewsRecipe):
# # std_logo_url = 'http://www.edmontonjournal.com/images/logo_edmontonjournal.jpg'
# # logo_url = 'ejlogo.jpg'
# # fp_tag = 'CAN_EJ'
#
# un-comment the following six lines for the Ottawa Citizen
# # title = u'Ottawa Citizen'
# # url_prefix = 'http://www.ottawacitizen.com'
@ -98,7 +98,7 @@ class CanWestPaper(BasicNewsRecipe):
# # std_logo_url = 'http://www.ottawacitizen.com/images/logo_ottawacitizen.jpg'
# # logo_url = 'oclogo.jpg'
# # fp_tag = 'CAN_OC'
#
# un-comment the following six lines for the Montreal Gazette
# # title = u'Montreal Gazette'
# # url_prefix = 'http://www.montrealgazette.com'

View File

@ -15,7 +15,7 @@ class BasicUserRecipe1316245412(BasicNewsRecipe):
no_stylesheets = True
auto_cleanup = False
# remove_javascript = True
# remove_javascript = True
remove_tags = [
dict(name='div', attrs={'id': ['header', 'navigation', 'skip-link',
@ -51,6 +51,6 @@ class BasicUserRecipe1316245412(BasicNewsRecipe):
def print_version(self, url):
return url + '?print'
# def get_cover_url(self):
# return 'http://www.cicero.de/sites/all/themes/cicero/logo.png' # need to
# find a good logo on their home page!
# def get_cover_url(self):
# return 'http://www.cicero.de/sites/all/themes/cicero/logo.png' # need to
# find a good logo on their home page!

View File

@ -60,28 +60,28 @@ class CanWestPaper(BasicNewsRecipe):
]
# un-comment the following six lines for the Vancouver Province
# title = u'Vancouver Province'
# url_prefix = 'http://www.theprovince.com'
# description = u'News from Vancouver, BC'
# std_logo_url = 'http://www.theprovince.com/images/logo_theprovince.jpg'
# logo_url = 'vplogo.jpg'
# fp_tag = 'CAN_TP'
# # title = u'Vancouver Province'
# # url_prefix = 'http://www.theprovince.com'
# # description = u'News from Vancouver, BC'
# # std_logo_url = 'http://www.theprovince.com/images/logo_theprovince.jpg'
# # logo_url = 'vplogo.jpg'
# # fp_tag = 'CAN_TP'
# un-comment the following six lines for the Vancouver Sun
# title = u'Vancouver Sun'
# url_prefix = 'http://www.vancouversun.com'
# description = u'News from Vancouver, BC'
# std_logo_url = 'http://www.vancouversun.com/images/logo_vancouversun.jpg'
# logo_url = 'vslogo.jpg'
# fp_tag = 'CAN_VS'
# # title = u'Vancouver Sun'
# # url_prefix = 'http://www.vancouversun.com'
# # description = u'News from Vancouver, BC'
# # std_logo_url = 'http://www.vancouversun.com/images/logo_vancouversun.jpg'
# # logo_url = 'vslogo.jpg'
# # fp_tag = 'CAN_VS'
# un-comment the following six lines for the Calgary Herald
# title = u'Calgary Herald'
# url_prefix = 'http://www.calgaryherald.com'
# description = u'News from Calgary, AB'
# std_logo_url = 'http://www.calgaryherald.com/images/logo_calgaryherald.jpg'
# logo_url = 'chlogo.jpg'
# fp_tag = 'CAN_CH'
# # title = u'Calgary Herald'
# # url_prefix = 'http://www.calgaryherald.com'
# # description = u'News from Calgary, AB'
# # std_logo_url = 'http://www.calgaryherald.com/images/logo_calgaryherald.jpg'
# # logo_url = 'chlogo.jpg'
# # fp_tag = 'CAN_CH'
# un-comment the following six lines for the Edmonton Journal
title = u'Edmonton Journal'
@ -92,20 +92,20 @@ class CanWestPaper(BasicNewsRecipe):
fp_tag = 'CAN_EJ'
# un-comment the following six lines for the Ottawa Citizen
# title = u'Ottawa Citizen'
# url_prefix = 'http://www.ottawacitizen.com'
# description = u'News from Ottawa, ON'
# std_logo_url = 'http://www.ottawacitizen.com/images/logo_ottawacitizen.jpg'
# logo_url = 'oclogo.jpg'
# fp_tag = 'CAN_OC'
# # title = u'Ottawa Citizen'
# # url_prefix = 'http://www.ottawacitizen.com'
# # description = u'News from Ottawa, ON'
# # std_logo_url = 'http://www.ottawacitizen.com/images/logo_ottawacitizen.jpg'
# # logo_url = 'oclogo.jpg'
# # fp_tag = 'CAN_OC'
# un-comment the following six lines for the Montreal Gazette
# title = u'Montreal Gazette'
# url_prefix = 'http://www.montrealgazette.com'
# description = u'News from Montreal, QC'
# std_logo_url = 'http://www.montrealgazette.com/images/logo_montrealgazette.jpg'
# logo_url = 'mglogo.jpg'
# fp_tag = 'CAN_MG'
# # title = u'Montreal Gazette'
# # url_prefix = 'http://www.montrealgazette.com'
# # description = u'News from Montreal, QC'
# # std_logo_url = 'http://www.montrealgazette.com/images/logo_montrealgazette.jpg'
# # logo_url = 'mglogo.jpg'
# # fp_tag = 'CAN_MG'
Kindle_Fire = False
masthead_url = std_logo_url

View File

@ -143,7 +143,7 @@ class FazNet(BasicNewsRecipe):
'tik4-sharing','tik4-load-more-bottom',
'tik4-by','header-detail__image','mm-adbox','upper-toolbar content-container'
]}),
# dict(name ='script'),
# dict(name ='script'),
dict(name = 'style'),
dict(name='svg'),
dict(name='div', attrs={'data-module':'teaser'}),
@ -240,11 +240,11 @@ class FazNet(BasicNewsRecipe):
if tag.contents[0] and 'F.A.Z.-Newsletter' in tag.contents[0]:
tag.extract()
# format liveblog
# format liveblog
if soup.find(attrs={'class':'tik4-live__container'}):
format_tickaroo_liveblog(soup)
# remove sizes and calc attributes in images
# remove sizes and calc attributes in images
for tag in soup.findAll('img'):
if tag.has_attr('src'):
new_img = soup.new_tag('img')

View File

@ -12,15 +12,15 @@ class Gagadget(BasicNewsRecipe):
publication_type = 'news'
oldest_article = 7
max_articles_per_feed = 100
# language = 'ru_UK'
# language = 'uk'
# language = 'en_UK'
# language = 'ru_UK'
# language = 'uk'
# language = 'en_UK'
language = 'de'
# language = 'nb'
# language = 'nl'
# language = 'es'
# language = 'it'
# language = 'fr'
# language = 'nb'
# language = 'nl'
# language = 'es'
# language = 'it'
# language = 'fr'
cover_url = 'https://gagadget.com/static/img/gagadget.jpg'
auto_cleanup = False
no_stylesheets = False
@ -28,77 +28,65 @@ class Gagadget(BasicNewsRecipe):
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='div', attrs={'class': 'l-inner l-inner_high'})
#
# Ukrainian version only
#
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
#
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
# Ukrainian version only
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
feeds = [
#
# Russian
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
#
# Ukrainian
#
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
#
# English
#
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
#
# German
#
('Gagadget', 'https://gagadget.com/de/rss/'),
('Nachrichten', 'https://gagadget.com/de/rss/news/'),
('Tests', 'https://gagadget.com/de/rss/reviews/'),
('Artikel', 'https://gagadget.com/de/rss/articles/'),
#
# Norwegian
#
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
#
# Dutch
#
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
#
# Spanish
#
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
#
# Italian
#
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
#
# French
#
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
#
]
# Russian
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
# Ukrainian
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
# English
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
# German
('Gagadget', 'https://gagadget.com/de/rss/'),
('Nachrichten', 'https://gagadget.com/de/rss/news/'),
('Tests', 'https://gagadget.com/de/rss/reviews/'),
('Artikel', 'https://gagadget.com/de/rss/articles/'),
# Norwegian
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
# Dutch
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
# Spanish
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
# Italian
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
# French
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
]

View File

@ -12,15 +12,15 @@ class Gagadget(BasicNewsRecipe):
publication_type = 'news'
oldest_article = 7
max_articles_per_feed = 100
# language = 'ru_UK'
# language = 'uk'
# language = 'ru_UK'
# language = 'uk'
language = 'en_UK'
# language = 'de'
# language = 'nb'
# language = 'nl'
# language = 'es'
# language = 'it'
# language = 'fr'
# language = 'de'
# language = 'nb'
# language = 'nl'
# language = 'es'
# language = 'it'
# language = 'fr'
cover_url = 'https://gagadget.com/static/img/gagadget.jpg'
auto_cleanup = False
no_stylesheets = False
@ -28,77 +28,65 @@ class Gagadget(BasicNewsRecipe):
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='div', attrs={'class': 'l-inner l-inner_high'})
#
# Ukrainian version only
#
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
#
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
# Ukrainian version only
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
feeds = [
#
# Russian
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
#
# Ukrainian
#
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
#
# English
#
('Gagadget', 'https://gagadget.com/en/rss/'),
('News', 'https://gagadget.com/en/rss/news/'),
#
# German
#
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
#
# Norwegian
#
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
#
# Dutch
#
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
#
# Spanish
#
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
#
# Italian
#
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
#
# French
#
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
#
]
# Russian
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
# Ukrainian
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
# English
('Gagadget', 'https://gagadget.com/en/rss/'),
('News', 'https://gagadget.com/en/rss/news/'),
# German
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
# Norwegian
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
# Dutch
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
# Spanish
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
# Italian
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
# French
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
]

View File

@ -12,15 +12,15 @@ class Gagadget(BasicNewsRecipe):
publication_type = 'news'
oldest_article = 7
max_articles_per_feed = 100
# language = 'ru_UK'
# language = 'uk'
# language = 'en_UK'
# language = 'de'
# language = 'nb'
# language = 'nl'
# language = 'ru_UK'
# language = 'uk'
# language = 'en_UK'
# language = 'de'
# language = 'nb'
# language = 'nl'
language = 'es'
# language = 'it'
# language = 'fr'
# language = 'it'
# language = 'fr'
cover_url = 'https://gagadget.com/static/img/gagadget.jpg'
auto_cleanup = False
no_stylesheets = False
@ -28,77 +28,65 @@ class Gagadget(BasicNewsRecipe):
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='div', attrs={'class': 'l-inner l-inner_high'})
#
# Ukrainian version only
#
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
#
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
# Ukrainian version only
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
feeds = [
#
# Russian
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
#
# Ukrainian
#
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
#
# English
#
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
#
# German
#
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
#
# Norwegian
#
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
#
# Dutch
#
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
#
# Spanish
#
('Gagadget', 'https://gagadget.com/es/rss/'),
('Noticias', 'https://gagadget.com/es/rss/news/'),
('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
#
# Italian
#
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
#
# French
#
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
#
]
# Russian
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
# Ukrainian
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
# English
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
# German
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
# Norwegian
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
# Dutch
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
# Spanish
('Gagadget', 'https://gagadget.com/es/rss/'),
('Noticias', 'https://gagadget.com/es/rss/news/'),
('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
# Italian
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
# French
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
]

View File

@ -12,14 +12,14 @@ class Gagadget(BasicNewsRecipe):
publication_type = 'news'
oldest_article = 7
max_articles_per_feed = 100
# language = 'ru_UK'
# language = 'uk'
# language = 'en_UK'
# language = 'de'
# language = 'nb'
# language = 'nl'
# language = 'es'
# language = 'it'
# language = 'ru_UK'
# language = 'uk'
# language = 'en_UK'
# language = 'de'
# language = 'nb'
# language = 'nl'
# language = 'es'
# language = 'it'
language = 'fr'
cover_url = 'https://gagadget.com/static/img/gagadget.jpg'
auto_cleanup = False
@ -28,77 +28,65 @@ class Gagadget(BasicNewsRecipe):
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='div', attrs={'class': 'l-inner l-inner_high'})
#
# Ukrainian version only
#
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
#
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
# Ukrainian version only
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
feeds = [
#
# Russian
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
#
# Ukrainian
#
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
#
# English
#
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
#
# German
#
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
#
# Norwegian
#
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
#
# Dutch
#
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
#
# Spanish
#
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
#
# Italian
#
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
#
# French
#
('Gagadget', 'https://gagadget.com/fr/rss/'),
('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
('Des articles', 'https://gagadget.com/fr/rss/articles/'),
#
]
# Russian
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
# Ukrainian
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
# English
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
# German
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
# Norwegian
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
# Dutch
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
# Spanish
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
# Italian
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
# French
('Gagadget', 'https://gagadget.com/fr/rss/'),
('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
('Des articles', 'https://gagadget.com/fr/rss/articles/'),
]

View File

@ -12,15 +12,15 @@ class Gagadget(BasicNewsRecipe):
publication_type = 'news'
oldest_article = 7
max_articles_per_feed = 100
# language = 'ru_UK'
# language = 'uk'
# language = 'en_UK'
# language = 'de'
# language = 'nb'
# language = 'nl'
# language = 'es'
# language = 'ru_UK'
# language = 'uk'
# language = 'en_UK'
# language = 'de'
# language = 'nb'
# language = 'nl'
# language = 'es'
language = 'it'
# language = 'fr'
# language = 'fr'
cover_url = 'https://gagadget.com/static/img/gagadget.jpg'
auto_cleanup = False
no_stylesheets = False
@ -28,77 +28,65 @@ class Gagadget(BasicNewsRecipe):
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='div', attrs={'class': 'l-inner l-inner_high'})
#
# Ukrainian version only
#
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
#
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
# Ukrainian version only
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
feeds = [
#
# Russian
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
#
# Ukrainian
#
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
#
# English
#
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
#
# German
#
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
#
# Norwegian
#
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
#
# Dutch
#
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
#
# Spanish
#
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
#
# Italian
#
('Gagadget', 'https://gagadget.com/it/rss/'),
('Notizia', 'https://gagadget.com/it/rss/news/'),
('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
('Articoli', 'https://gagadget.com/it/rss/articles/'),
#
# French
#
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
#
]
# Russian
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
# Ukrainian
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
# English
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
# German
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
# Norwegian
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
# Dutch
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
# Spanish
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
# Italian
('Gagadget', 'https://gagadget.com/it/rss/'),
('Notizia', 'https://gagadget.com/it/rss/news/'),
('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
('Articoli', 'https://gagadget.com/it/rss/articles/'),
# French
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
]

View File

@ -12,15 +12,15 @@ class Gagadget(BasicNewsRecipe):
publication_type = 'news'
oldest_article = 7
max_articles_per_feed = 100
# language = 'ru_UK'
# language = 'uk'
# language = 'en_UK'
# language = 'de'
# language = 'ru_UK'
# language = 'uk'
# language = 'en_UK'
# language = 'de'
language = 'nb'
# language = 'nl'
# language = 'es'
# language = 'it'
# language = 'fr'
# language = 'nl'
# language = 'es'
# language = 'it'
# language = 'fr'
cover_url = 'https://gagadget.com/static/img/gagadget.jpg'
auto_cleanup = False
no_stylesheets = False
@ -28,77 +28,65 @@ class Gagadget(BasicNewsRecipe):
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='div', attrs={'class': 'l-inner l-inner_high'})
#
# Ukrainian version only
#
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
#
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
# Ukrainian version only
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
feeds = [
#
# Russian
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
#
# Ukrainian
#
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
#
# English
#
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
#
# German
#
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
#
# Norwegian
#
('Gagadget', 'https://gagadget.com/nb/rss/'),
('Nyheter', 'https://gagadget.com/nb/rss/news/'),
('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
('Artikler', 'https://gagadget.com/nb/rss/articles/'),
#
# Dutch
#
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
#
# Spanish
#
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
#
# Italian
#
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
#
# French
#
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
#
]
# Russian
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
# Ukrainian
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
# English
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
# German
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
# Norwegian
('Gagadget', 'https://gagadget.com/nb/rss/'),
('Nyheter', 'https://gagadget.com/nb/rss/news/'),
('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
('Artikler', 'https://gagadget.com/nb/rss/articles/'),
# Dutch
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
# Spanish
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
# Italian
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
# French
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
]

View File

@ -12,15 +12,15 @@ class Gagadget(BasicNewsRecipe):
publication_type = 'news'
oldest_article = 7
max_articles_per_feed = 100
# language = 'ru_UK'
# language = 'uk'
# language = 'en_UK'
# language = 'de'
# language = 'nb'
# language = 'ru_UK'
# language = 'uk'
# language = 'en_UK'
# language = 'de'
# language = 'nb'
language = 'nl'
# language = 'es'
# language = 'it'
# language = 'fr'
# language = 'es'
# language = 'it'
# language = 'fr'
cover_url = 'https://gagadget.com/static/img/gagadget.jpg'
auto_cleanup = False
no_stylesheets = False
@ -28,77 +28,65 @@ class Gagadget(BasicNewsRecipe):
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='div', attrs={'class': 'l-inner l-inner_high'})
#
# Ukrainian version only
#
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
#
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
# Ukrainian version only
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
feeds = [
#
# Russian
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
#
# Ukrainian
#
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
#
# English
#
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
#
# German
#
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
#
# Norwegian
#
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
#
# Dutch
#
('Gagadget', 'https://gagadget.com/nl/rss/'),
('Nieuws', 'https://gagadget.com/nl/rss/news/'),
('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
#
# Spanish
#
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
#
# Italian
#
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
#
# French
#
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
#
]
# Russian
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
# Ukrainian
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
# English
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
# German
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
# Norwegian
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
# Dutch
('Gagadget', 'https://gagadget.com/nl/rss/'),
('Nieuws', 'https://gagadget.com/nl/rss/news/'),
('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
# Spanish
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
# Italian
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
# French
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
]

View File

@ -14,14 +14,14 @@ class Gagadget(BasicNewsRecipe):
oldest_article = 7
max_articles_per_feed = 100
language = 'ru_UK'
# language = 'uk'
# language = 'en_UK'
# language = 'de'
# language = 'nb'
# language = 'nl'
# language = 'es'
# language = 'it'
# language = 'fr'
# language = 'uk'
# language = 'en_UK'
# language = 'de'
# language = 'nb'
# language = 'nl'
# language = 'es'
# language = 'it'
# language = 'fr'
cover_url = 'https://gagadget.com/static/img/gagadget.jpg'
auto_cleanup = False
no_stylesheets = False
@ -29,77 +29,65 @@ class Gagadget(BasicNewsRecipe):
remove_tags_before = dict(name='h1')
remove_tags_after = dict(name='div', attrs={'class': 'l-inner l-inner_high'})
#
# Ukrainian version only
#
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
#
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
# Ukrainian version only
# remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
# remove_tags = [
# dict(name='div', attrs={'class': 'footer-content'}),
# ]
feeds = [
#
# Russian
#
('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
#
# Ukrainian
#
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
#
# English
#
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
#
# German
#
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
#
# Norwegian
#
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
#
# Dutch
#
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
#
# Spanish
#
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
#
# Italian
#
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
#
# French
#
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
#
]
# Russian
('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
# Ukrainian
# ('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
# ('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
# ('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
# English
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
# German
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
# Norwegian
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
# Dutch
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
# Spanish
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
# Italian
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
# French
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
]

View File

@ -12,93 +12,81 @@ class Gagadget(BasicNewsRecipe):
publication_type = 'news'
oldest_article = 7
max_articles_per_feed = 100
# language = 'ru_UK'
# language = 'ru_UK'
language = 'uk'
# language = 'en_UK'
# language = 'de'
# language = 'nb'
# language = 'nl'
# language = 'es'
# language = 'it'
# language = 'fr'
# language = 'en_UK'
# language = 'de'
# language = 'nb'
# language = 'nl'
# language = 'es'
# language = 'it'
# language = 'fr'
cover_url = 'https://gagadget.com/static/img/gagadget.jpg'
auto_cleanup = False
no_stylesheets = False
remove_tags_before = dict(name='h1')
# remove_tags_after = dict(name='div', attrs={'class': 'l-inner l-inner_high'})
#
# Ukrainian version only
#
# remove_tags_after = dict(name='div', attrs={'class': 'l-inner l-inner_high'})
# Ukrainian version only
remove_tags_after = dict(name='div', attrs={'class': 'top20 bottom20 post-links'})
remove_tags = [
dict(name='div', attrs={'class': 'footer-content'}),
]
]
feeds = [
#
# Russian
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
#
# Ukrainian
#
('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
#
# English
#
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
#
# German
#
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
#
# Norwegian
#
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
#
# Dutch
#
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
#
# Spanish
#
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
#
# Italian
#
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
#
# French
#
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
#
]
# Russian
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://gagadget.com/rss/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://gagadget.com/rss/news/'),
# ('\u0421\u0442\u0430\u0442\u044C\u0438', 'https://gagadget.com/rss/articles/'),
# ('\u041E\u0431\u0437\u043E\u0440\u044B', 'https://gagadget.com/rss/reviews/'),
# ('\u0421\u043F\u0435\u0446\u043F\u0440\u043E\u0435\u043A\u0442\u044B', 'https://gagadget.com/rss/specials/'),
# Ukrainian
('\u0423\u0441\u0456 \u043C\u0430\u0442\u0435\u0440\u0456\u0430\u043B\u0438', 'https://gagadget.com/uk/rss/'),
('\u041D\u043E\u0432\u0438\u043D\u0438', 'https://gagadget.com/uk/rss/news/'),
('\u0421\u0442\u0430\u0442\u0442\u0456', 'https://gagadget.com/uk/rss/articles/'),
('\u041E\u0433\u043B\u044F\u0434\u0438', 'https://gagadget.com/uk/rss/reviews/'),
# English
# ('Gagadget', 'https://gagadget.com/en/rss/'),
# ('News', 'https://gagadget.com/en/rss/news/'),
# German
# ('Gagadget', 'https://gagadget.com/de/rss/'),
# ('Nachrichten', 'https://gagadget.com/de/rss/news/'),
# ('Tests', 'https://gagadget.com/de/rss/reviews/'),
# ('Artikel', 'https://gagadget.com/de/rss/articles/'),
# Norwegian
# ('Gagadget', 'https://gagadget.com/nb/rss/'),
# ('Nyheter', 'https://gagadget.com/nb/rss/news/'),
# ('Anmeldelser', 'https://gagadget.com/nb/rss/reviews/'),
# ('Artikler', 'https://gagadget.com/nb/rss/articles/'),
# Dutch
# ('Gagadget', 'https://gagadget.com/nl/rss/'),
# ('Nieuws', 'https://gagadget.com/nl/rss/news/'),
# ('Recensies', 'https://gagadget.com/nl/rss/reviews/'),
# ('Artikelen', 'https://gagadget.com/nl/rss/articles/'),
# Spanish
# ('Gagadget', 'https://gagadget.com/es/rss/'),
# ('Noticias', 'https://gagadget.com/es/rss/news/'),
# ('Rese\u00F1as', 'https://gagadget.com/es/rss/reviews/'),
# ('Art\u00EDculos', 'https://gagadget.com/es/rss/articles/'),
# Italian
# ('Gagadget', 'https://gagadget.com/it/rss/'),
# ('Notizia', 'https://gagadget.com/it/rss/news/'),
# ('Recensioni', 'https://gagadget.com/it/rss/reviews/'),
# ('Articoli', 'https://gagadget.com/it/rss/articles/'),
# French
# ('Gagadget', 'https://gagadget.com/fr/rss/'),
# ('Nouvelles', 'https://gagadget.com/fr/rss/news/'),
# ('Commentaires', 'https://gagadget.com/fr/rss/reviews/'),
# ('Des articles', 'https://gagadget.com/fr/rss/articles/'),
]

View File

@ -47,7 +47,7 @@ def multiply_with_unknown_component(first_comp, second_comp, result):
def solve_captcha(captcha):
# # Convert from a word problem into a numeric problem
# Convert from a word problem into a numeric problem
numeric_problem = ''
for part in captcha.split(' '):
numeric_problem = numeric_problem + str(text2num(part))

View File

@ -136,7 +136,7 @@ class HNWithCommentsLink(BasicNewsRecipe):
article.text_summary = self.prettyify_url(article.url)
article.summary = article.text_summary
# def parse_index(self):
# feeds = []
# feeds.append((u'Hacker News',[{'title': 'Testing', 'url': 'https://news.ycombinator.com/item?id=2935944'}]))
# return feeds
# def parse_index(self):
# feeds = []
# feeds.append((u'Hacker News',[{'title': 'Testing', 'url': 'https://news.ycombinator.com/item?id=2935944'}]))
# return feeds

View File

@ -16,7 +16,7 @@ class IlMessaggero(BasicNewsRecipe):
__author__ = 'Gabriele Marini'
description = 'Italian News'
# cover_url = 'http://www.ilmessaggero.it/img_tst/logomsgr.gif'
# cover_url = 'http://www.ilmessaggero.it/img_tst/logomsgr.gif'
title = u'Il Messaggero'
publisher = 'Caltagirone Editore'
category = 'News, politics, culture, economy, general interest'

View File

@ -5,7 +5,7 @@ class ingr(BasicNewsRecipe):
title = 'in.gr'
__author__ = 'Stelios'
description = 'News from Greece'
# max_articles_per_feed = 100
# max_articles_per_feed = 100
oldest_article = 4
publisher = 'in.gr'
category = 'news, GR'

View File

@ -16,7 +16,7 @@ class LeggoIT(BasicNewsRecipe):
__author__ = 'Gabriele Marini'
description = 'Italian Free daily newspaper'
# cover_url = 'http://www.leggo.it/img/logo-leggo2.gif'
# cover_url = 'http://www.leggo.it/img/logo-leggo2.gif'
title = u'Leggo.it'
publisher = 'Ced Caltagirone Editore S.p.A.'
category = 'News, politics, culture, economy, general interest'

View File

@ -60,44 +60,44 @@ class CanWestPaper(BasicNewsRecipe):
]
# un-comment the following six lines for the Vancouver Province
# title = u'Vancouver Province'
# url_prefix = 'http://www.theprovince.com'
# description = u'News from Vancouver, BC'
# std_logo_url = 'http://www.theprovince.com/images/logo_theprovince.jpg'
# logo_url = 'vplogo.jpg'
# fp_tag = 'CAN_TP'
# # title = u'Vancouver Province'
# # url_prefix = 'http://www.theprovince.com'
# # description = u'News from Vancouver, BC'
# # std_logo_url = 'http://www.theprovince.com/images/logo_theprovince.jpg'
# # logo_url = 'vplogo.jpg'
# # fp_tag = 'CAN_TP'
# un-comment the following six lines for the Vancouver Sun
# title = u'Vancouver Sun'
# url_prefix = 'http://www.vancouversun.com'
# description = u'News from Vancouver, BC'
# std_logo_url = 'http://www.vancouversun.com/images/logo_vancouversun.jpg'
# logo_url = 'vslogo.jpg'
# fp_tag = 'CAN_VS'
# # title = u'Vancouver Sun'
# # url_prefix = 'http://www.vancouversun.com'
# # description = u'News from Vancouver, BC'
# # std_logo_url = 'http://www.vancouversun.com/images/logo_vancouversun.jpg'
# # logo_url = 'vslogo.jpg'
# # fp_tag = 'CAN_VS'
# un-comment the following six lines for the Calgary Herald
# title = u'Calgary Herald'
# url_prefix = 'http://www.calgaryherald.com'
# description = u'News from Calgary, AB'
# std_logo_url = 'http://www.calgaryherald.com/images/logo_calgaryherald.jpg'
# logo_url = 'chlogo.jpg'
# fp_tag = 'CAN_CH'
# # title = u'Calgary Herald'
# # url_prefix = 'http://www.calgaryherald.com'
# # description = u'News from Calgary, AB'
# # std_logo_url = 'http://www.calgaryherald.com/images/logo_calgaryherald.jpg'
# # logo_url = 'chlogo.jpg'
# # fp_tag = 'CAN_CH'
# un-comment the following six lines for the Edmonton Journal
# title = u'Edmonton Journal'
# url_prefix = 'http://www.edmontonjournal.com'
# description = u'News from Edmonton, AB'
# std_logo_url = 'http://www.edmontonjournal.com/images/logo_edmontonjournal.jpg'
# logo_url = 'ejlogo.jpg'
# fp_tag = 'CAN_EJ'
# # title = u'Edmonton Journal'
# # url_prefix = 'http://www.edmontonjournal.com'
# # description = u'News from Edmonton, AB'
# # std_logo_url = 'http://www.edmontonjournal.com/images/logo_edmontonjournal.jpg'
# # logo_url = 'ejlogo.jpg'
# # fp_tag = 'CAN_EJ'
# un-comment the following six lines for the Ottawa Citizen
# title = u'Ottawa Citizen'
# url_prefix = 'http://www.ottawacitizen.com'
# description = u'News from Ottawa, ON'
# std_logo_url = 'http://www.ottawacitizen.com/images/logo_ottawacitizen.jpg'
# logo_url = 'oclogo.jpg'
# fp_tag = 'CAN_OC'
# # title = u'Ottawa Citizen'
# # url_prefix = 'http://www.ottawacitizen.com'
# # description = u'News from Ottawa, ON'
# # std_logo_url = 'http://www.ottawacitizen.com/images/logo_ottawacitizen.jpg'
# # logo_url = 'oclogo.jpg'
# # fp_tag = 'CAN_OC'
# un-comment the following six lines for the Montreal Gazette
title = u'Montreal Gazette'

View File

@ -60,36 +60,36 @@ class CanWestPaper(BasicNewsRecipe):
]
# un-comment the following six lines for the Vancouver Province
# title = u'Vancouver Province'
# url_prefix = 'http://www.theprovince.com'
# description = u'News from Vancouver, BC'
# std_logo_url = 'http://www.theprovince.com/images/logo_theprovince.jpg'
# logo_url = 'vplogo.jpg'
# fp_tag = 'CAN_TP'
# # title = u'Vancouver Province'
# # url_prefix = 'http://www.theprovince.com'
# # description = u'News from Vancouver, BC'
# # std_logo_url = 'http://www.theprovince.com/images/logo_theprovince.jpg'
# # logo_url = 'vplogo.jpg'
# # fp_tag = 'CAN_TP'
# un-comment the following six lines for the Vancouver Sun
# title = u'Vancouver Sun'
# url_prefix = 'http://www.vancouversun.com'
# description = u'News from Vancouver, BC'
# std_logo_url = 'http://www.vancouversun.com/images/logo_vancouversun.jpg'
# logo_url = 'vslogo.jpg'
# fp_tag = 'CAN_VS'
# # title = u'Vancouver Sun'
# # url_prefix = 'http://www.vancouversun.com'
# # description = u'News from Vancouver, BC'
# # std_logo_url = 'http://www.vancouversun.com/images/logo_vancouversun.jpg'
# # logo_url = 'vslogo.jpg'
# # fp_tag = 'CAN_VS'
# un-comment the following six lines for the Calgary Herald
# title = u'Calgary Herald'
# url_prefix = 'http://www.calgaryherald.com'
# description = u'News from Calgary, AB'
# std_logo_url = 'http://www.calgaryherald.com/images/logo_calgaryherald.jpg'
# logo_url = 'chlogo.jpg'
# fp_tag = 'CAN_CH'
# # title = u'Calgary Herald'
# # url_prefix = 'http://www.calgaryherald.com'
# # description = u'News from Calgary, AB'
# # std_logo_url = 'http://www.calgaryherald.com/images/logo_calgaryherald.jpg'
# # logo_url = 'chlogo.jpg'
# # fp_tag = 'CAN_CH'
# un-comment the following six lines for the Edmonton Journal
# title = u'Edmonton Journal'
# url_prefix = 'http://www.edmontonjournal.com'
# description = u'News from Edmonton, AB'
# std_logo_url = 'http://www.edmontonjournal.com/images/logo_edmontonjournal.jpg'
# logo_url = 'ejlogo.jpg'
# fp_tag = 'CAN_EJ'
# # title = u'Edmonton Journal'
# # url_prefix = 'http://www.edmontonjournal.com'
# # description = u'News from Edmonton, AB'
# # std_logo_url = 'http://www.edmontonjournal.com/images/logo_edmontonjournal.jpg'
# # logo_url = 'ejlogo.jpg'
# # fp_tag = 'CAN_EJ'
# un-comment the following six lines for the Ottawa Citizen
title = u'Ottawa Citizen'
@ -100,12 +100,12 @@ class CanWestPaper(BasicNewsRecipe):
fp_tag = 'CAN_OC'
# un-comment the following six lines for the Montreal Gazette
# title = u'Montreal Gazette'
# url_prefix = 'http://www.montrealgazette.com'
# description = u'News from Montreal, QC'
# std_logo_url = 'http://www.montrealgazette.com/images/logo_montrealgazette.jpg'
# logo_url = 'mglogo.jpg'
# fp_tag = 'CAN_MG'
# # title = u'Montreal Gazette'
# # url_prefix = 'http://www.montrealgazette.com'
# # description = u'News from Montreal, QC'
# # std_logo_url = 'http://www.montrealgazette.com/images/logo_montrealgazette.jpg'
# # logo_url = 'mglogo.jpg'
# # fp_tag = 'CAN_MG'
Kindle_Fire = False
masthead_url = std_logo_url

View File

@ -50,5 +50,5 @@ class AdvancedUserRecipe1303841067(BasicNewsRecipe):
feeds = [
(u'Nachrichten', u'https://pro-physik.de/rss/news/'),
# (u'Veranstaltungen', u'https://pro-physik.de/rss/events/'), # AGe 2024-02-11
# (u'Veranstaltungen', u'https://pro-physik.de/rss/events/'), # AGe 2024-02-11
]

View File

@ -31,7 +31,7 @@ class ProSleduet(BasicNewsRecipe):
]
feeds = [
# ('\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0438\u0435 \u0441\u043B\u0435\u0434\u0443\u0435\u0442', 'https://prosleduet.media/feed/'),
# ('\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0438\u0435 \u0441\u043B\u0435\u0434\u0443\u0435\u0442', 'https://prosleduet.media/feed/'),
('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://prosleduet.media/category/news/feed/'),
('\u041B\u044E\u0434\u0438', 'https://prosleduet.media/category/people/feed/'),
('\u0421\u044E\u0436\u0435\u0442\u044B', 'https://prosleduet.media/category/syuzhety/feed/'),

View File

@ -19,61 +19,61 @@ class CanWestPaper(BasicNewsRecipe):
# # url_prefix = 'http://www.timescolonist.com'
# # description = u'News from Victoria, BC'
# # fp_tag = 'CAN_TC'
#
# un-comment the following four lines for the Vancouver Province
# # title = u'Vancouver Province'
# # url_prefix = 'http://www.theprovince.com'
# # description = u'News from Vancouver, BC'
# # fp_tag = 'CAN_VP'
#
# un-comment the following four lines for the Vancouver Sun
# # title = u'Vancouver Sun'
# # url_prefix = 'http://www.vancouversun.com'
# # description = u'News from Vancouver, BC'
# # fp_tag = 'CAN_VS'
#
# un-comment the following four lines for the Edmonton Journal
# # title = u'Edmonton Journal'
# # url_prefix = 'http://www.edmontonjournal.com'
# # description = u'News from Edmonton, AB'
# # fp_tag = 'CAN_EJ'
#
# un-comment the following four lines for the Calgary Herald
# # title = u'Calgary Herald'
# # url_prefix = 'http://www.calgaryherald.com'
# # description = u'News from Calgary, AB'
# # fp_tag = 'CAN_CH'
#
# un-comment the following four lines for the Regina Leader-Post
title = u'Regina Leader-Post'
url_prefix = 'http://www.leaderpost.com'
description = u'News from Regina, SK'
fp_tag = ''
# un-comment the following four lines for the Saskatoon Star-Phoenix
# # title = u'Saskatoon Star-Phoenix'
# # url_prefix = 'http://www.thestarphoenix.com'
# # description = u'News from Saskatoon, SK'
# # fp_tag = ''
#
# un-comment the following four lines for the Windsor Star
# # title = u'Windsor Star'
# # url_prefix = 'http://www.windsorstar.com'
# # description = u'News from Windsor, ON'
# # fp_tag = 'CAN_'
#
# un-comment the following four lines for the Ottawa Citizen
# # title = u'Ottawa Citizen'
# # url_prefix = 'http://www.ottawacitizen.com'
# # description = u'News from Ottawa, ON'
# # fp_tag = 'CAN_OC'
#
# un-comment the following four lines for the Montreal Gazette
# # title = u'Montreal Gazette'
# # url_prefix = 'http://www.montrealgazette.com'
# # description = u'News from Montreal, QC'
# # fp_tag = 'CAN_MG'
#
# un-comment the following four lines for the Saskatoon Star-Phoenix
# # title = u'Saskatoon Star-Phoenix'
# # url_prefix = 'http://www.thestarphoenix.com'
# # description = u'News from Saskatoon, SK'
# # fp_tag = ''
# un-comment the following four lines for the Windsor Star
# # title = u'Windsor Star'
# # url_prefix = 'http://www.windsorstar.com'
# # description = u'News from Windsor, ON'
# # fp_tag = 'CAN_'
# un-comment the following four lines for the Ottawa Citizen
# # title = u'Ottawa Citizen'
# # url_prefix = 'http://www.ottawacitizen.com'
# # description = u'News from Ottawa, ON'
# # fp_tag = 'CAN_OC'
# un-comment the following four lines for the Montreal Gazette
# # title = u'Montreal Gazette'
# # url_prefix = 'http://www.montrealgazette.com'
# # description = u'News from Montreal, QC'
# # fp_tag = 'CAN_MG'
language = 'en_CA'
__author__ = 'Nick Redding'
no_stylesheets = True

View File

@ -48,7 +48,7 @@ class Salon_com(BasicNewsRecipe):
# ('Sustainability', 'http://www.salon.com/category/sustainability/feed/rss/'),
# ('Entertainment', 'http://www.salon.com/category/entertainment/feed/rss/'),
# ('Life', 'http://www.salon.com/category/life/feed/rss/'),
#
('News and Politics', 'https://www.salon.com/category/news-and-politics/feed'),
('Culture', 'http://www.salon.com/category/culture/feed/'),
('Science & Health', 'https://www.salon.com/category/science-and-health/feed/'),

View File

@ -19,60 +19,60 @@ class CanWestPaper(BasicNewsRecipe):
# # url_prefix = 'http://www.timescolonist.com'
# # description = u'News from Victoria, BC'
# # fp_tag = 'CAN_TC'
#
# un-comment the following four lines for the Vancouver Province
# # title = u'Vancouver Province'
# # url_prefix = 'http://www.theprovince.com'
# # description = u'News from Vancouver, BC'
# # fp_tag = 'CAN_VP'
#
# un-comment the following four lines for the Vancouver Sun
# # title = u'Vancouver Sun'
# # url_prefix = 'http://www.vancouversun.com'
# # description = u'News from Vancouver, BC'
# # fp_tag = 'CAN_VS'
#
# un-comment the following four lines for the Edmonton Journal
# # title = u'Edmonton Journal'
# # url_prefix = 'http://www.edmontonjournal.com'
# # description = u'News from Edmonton, AB'
# # fp_tag = 'CAN_EJ'
#
# un-comment the following four lines for the Calgary Herald
# # title = u'Calgary Herald'
# # url_prefix = 'http://www.calgaryherald.com'
# # description = u'News from Calgary, AB'
# # fp_tag = 'CAN_CH'
#
# un-comment the following four lines for the Regina Leader-Post
# # title = u'Regina Leader-Post'
# # url_prefix = 'http://www.leaderpost.com'
# # description = u'News from Regina, SK'
# # fp_tag = ''
#
# un-comment the following four lines for the Saskatoon Star-Phoenix
title = u'Saskatoon Star-Phoenix'
url_prefix = 'http://www.thestarphoenix.com'
description = u'News from Saskatoon, SK'
fp_tag = ''
# un-comment the following four lines for the Windsor Star
# # title = u'Windsor Star'
# # url_prefix = 'http://www.windsorstar.com'
# # description = u'News from Windsor, ON'
# # fp_tag = 'CAN_'
#
# un-comment the following four lines for the Ottawa Citizen
# # title = u'Ottawa Citizen'
# # url_prefix = 'http://www.ottawacitizen.com'
# # description = u'News from Ottawa, ON'
# # fp_tag = 'CAN_OC'
#
# un-comment the following four lines for the Montreal Gazette
# # title = u'Montreal Gazette'
# # url_prefix = 'http://www.montrealgazette.com'
# # description = u'News from Montreal, QC'
# # fp_tag = 'CAN_MG'
# un-comment the following four lines for the Windsor Star
# # title = u'Windsor Star'
# # url_prefix = 'http://www.windsorstar.com'
# # description = u'News from Windsor, ON'
# # fp_tag = 'CAN_'
# un-comment the following four lines for the Ottawa Citizen
# # title = u'Ottawa Citizen'
# # url_prefix = 'http://www.ottawacitizen.com'
# # description = u'News from Ottawa, ON'
# # fp_tag = 'CAN_OC'
# un-comment the following four lines for the Montreal Gazette
# # title = u'Montreal Gazette'
# # url_prefix = 'http://www.montrealgazette.com'
# # description = u'News from Montreal, QC'
# # fp_tag = 'CAN_MG'
language = 'en_CA'
__author__ = 'Nick Redding'

View File

@ -13,12 +13,12 @@ class TInvariant(BasicNewsRecipe):
publisher = '\u0422-\u0438\u043D\u0432\u0430\u0440\u0438\u0430\u043D\u0442 / T-invariant'
category = 'news'
cover_url = u'https://t-invariant.org/wp-content/uploads/2023/02/logo-s.png'
# cover_url = u'https://tinyurl.com/t-invariant/wp-content/uploads/2023/02/logo-s.png'
# language = 'ru'
# cover_url = u'https://tinyurl.com/t-invariant/wp-content/uploads/2023/02/logo-s.png'
# language = 'ru'
language = 'en_RU'
# language = 'uk'
# language = 'de'
# language = 'he'
# language = 'uk'
# language = 'de'
# language = 'he'
no_stylesheets = False
remove_javascript = False
auto_cleanup = False
@ -38,134 +38,117 @@ class TInvariant(BasicNewsRecipe):
]
feeds = [
# Russian version
#
# Direct links
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', https://www.t-invariant.org/feed/'),
# ('\u0410\u0440\u0445\u0438\u0432', https://www.t-invariant.org/category/online/feed/'),
# ('\u0410\u0441\u0442\u0440\u043E\u043D\u043E\u043C\u0438\u044F', https://www.t-invariant.org/category/astronomy/feed/'),
# ('\u0411\u0438\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/biologiya/feed/'),
# ('\u0412\u043E\u0439\u043D\u0430', https://www.t-invariant.org/category/war/feed/'),
# ('\u0412\u0441\u0451 \u0441\u043B\u043E\u0436\u043D\u043E', https://www.t-invariant.org/category/vsyo-slozhno/feed/'),
# ('\u0414\u0432\u0430 \u0433\u043E\u0434\u0430 \u0432\u043E\u0439\u043D\u0435', https://www.t-invariant.org/category/dva-goda-vojne/feed/'),
# ('\u0414\u0432\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B \u043E\u0434\u043D\u043E\u0439 \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/dve-storony-odnoj-nauki/feed/'),
# ('\u0414\u0438\u0441\u043A\u0443\u0441\u0441\u0438\u0438', https://www.t-invariant.org/category/discussion/feed/'),
# ('\u0414\u0438\u0441\u0441\u0435\u0440\u043D\u0435\u0442', https://www.t-invariant.org/category/dissernet/feed/'),
# ('\u0418\u0418', https://www.t-invariant.org/category/ai/feed/'),
# ('\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/computer-science/feed/'),
# ('\u0418\u0441\u0442\u043E\u0440\u0438\u044F', https://www.t-invariant.org/category/history/feed/'),
# ('\u041A\u043B\u0438\u043C\u0430\u0442', https://www.t-invariant.org/category/climate-ru/feed/'),
# ('\u041A\u043E\u043D\u0442\u0440\u044D\u0432\u043E\u043B\u044E\u0446\u0438\u044F', https://www.t-invariant.org/category/kontrevolyutsiya/feed/'),
# ('\u041A\u043E\u0440\u0440\u0443\u043F\u0446\u0438\u044F', https://www.t-invariant.org/category/korruptsiya/feed/'),
# ('\u041B\u0436\u0435\u043D\u0430\u0443\u043A\u0430', https://www.t-invariant.org/category/pseudoscience/feed/'),
# ('\u041C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/mathematics/feed/'),
# ('\u041C\u043E\u0437\u0433', https://www.t-invariant.org/category/brain/feed/'),
# ('\u041D\u0430\u0443\u043A\u0430 \u0432 \u0423\u043A\u0440\u0430\u0438\u043D\u0435', https://www.t-invariant.org/category/ukrainian-science/feed/'),
# ('\u041D\u0430\u0443\u0447\u043D\u0430\u044F \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/science-policy-ru/feed/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', https://www.t-invariant.org/category/news/feed/'),
# ('\u041E\u043F\u0440\u043E\u0441', https://www.t-invariant.org/category/survey-ru/feed/'),
# ('\u041F\u043E\u0437\u0438\u0446\u0438\u044F', https://www.t-invariant.org/category/standpiont/feed/'),
# ('\u041F\u043E\u043B\u0438\u0442\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/political-science/feed/'),
# ('\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/popular-science/feed/'),
# ('\u041F\u0440\u0430\u0432\u043E', https://www.t-invariant.org/category/pravo/feed/'),
# ('\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441', https://www.t-invariant.org/category/progress/feed/'),
# ('\u041F\u0441\u0438\u0445\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/psihologiya/feed/'),
# ('\u0420\u0410\u041D', https://www.t-invariant.org/category/ras/feed/'),
# ('\u0420\u0435\u043B\u0438\u0433\u0438\u044F', https://www.t-invariant.org/category/religion/feed/'),
# ('\u0420\u0435\u043B\u043E\u043A\u0430\u0446\u0438\u044F', https://www.t-invariant.org/category/relocation/feed/'),
# ('\u0420\u0435\u043F\u0440\u0435\u0441\u0441\u0438\u0438', https://www.t-invariant.org/category/repression/feed/'),
# ('\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A', https://www.t-invariant.org/category/russian-language/feed/'),
# ('\u0421\u0430\u043D\u043A\u0446\u0438\u0438', https://www.t-invariant.org/category/sanctions/feed/'),
# ('\u0421\u043E\u0437\u0434\u0430\u0442\u0435\u043B\u0438', https://www.t-invariant.org/category/creators/feed/'),
# ('\u0421\u043E\u0446\u0438\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/sociology/feed/'),
# ('\u0422\u0435\u0440\u0440\u043E\u0440\u0438\u0437\u043C', https://www.t-invariant.org/category/terrorizm/feed/'),
# ('\u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u044B', https://www.t-invariant.org/category/universities/feed/'),
# ('\u0424\u0438\u0437\u0438\u043A\u0430', https://www.t-invariant.org/category/physics/feed/'),
# ('\u0424\u0438\u043B\u043E\u0441\u043E\u0444\u0438\u044F', https://www.t-invariant.org/category/philosophy/feed/'),
# ('\u0428\u043A\u043E\u043B\u0430', https://www.t-invariant.org/category/shkola/feed/'),
# ('\u042D\u043A\u0441\u043F\u0435\u0440\u0442\u0438\u0437\u0430 \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/science-assessment/feed/'),
# ('\u042D\u043D\u0435\u0440\u0433\u0435\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/energy/feed/'),
# ('\u042D\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/ethics/feed/'),
#
# Censorship bypass
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://tinyurl.com/t-invariant/feed/'),
# ('\u0410\u0440\u0445\u0438\u0432', 'https://tinyurl.com/t-invariant/category/online/feed/'),
# ('\u0410\u0441\u0442\u0440\u043E\u043D\u043E\u043C\u0438\u044F', 'https://tinyurl.com/t-invariant/category/astronomy/feed/'),
# ('\u0411\u0438\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/biologiya/feed/'),
# ('\u0412\u043E\u0439\u043D\u0430', 'https://tinyurl.com/t-invariant/category/war/feed/'),
# ('\u0412\u0441\u0451 \u0441\u043B\u043E\u0436\u043D\u043E', 'https://tinyurl.com/t-invariant/category/vsyo-slozhno/feed/'),
# ('\u0414\u0432\u0430 \u0433\u043E\u0434\u0430 \u0432\u043E\u0439\u043D\u0435', 'https://tinyurl.com/t-invariant/category/dva-goda-vojne/feed/'),
# ('\u0414\u0432\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B \u043E\u0434\u043D\u043E\u0439 \u043D\u0430\u0443\u043A\u0438', 'https://tinyurl.com/t-invariant/category/dve-storony-odnoj-nauki/feed/'),
# ('\u0414\u0438\u0441\u043A\u0443\u0441\u0441\u0438\u0438', 'https://tinyurl.com/t-invariant/category/discussion/feed/'),
# ('\u0414\u0438\u0441\u0441\u0435\u0440\u043D\u0435\u0442', 'https://tinyurl.com/t-invariant/category/dissernet/feed/'),
# ('\u0418\u0418', 'https://tinyurl.com/t-invariant/category/ai/feed/'),
# ('\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/computer-science/feed/'),
# ('\u0418\u0441\u0442\u043E\u0440\u0438\u044F', 'https://tinyurl.com/t-invariant/category/history/feed/'),
# ('\u041A\u043B\u0438\u043C\u0430\u0442', 'https://tinyurl.com/t-invariant/category/climate-ru/feed/'),
# ('\u041A\u043E\u043D\u0442\u0440\u044D\u0432\u043E\u043B\u044E\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/kontrevolyutsiya/feed/'),
# ('\u041A\u043E\u0440\u0440\u0443\u043F\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/korruptsiya/feed/'),
# ('\u041B\u0436\u0435\u043D\u0430\u0443\u043A\u0430', 'https://tinyurl.com/t-invariant/category/pseudoscience/feed/'),
# ('\u041C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/mathematics/feed/'),
# ('\u041C\u043E\u0437\u0433', 'https://tinyurl.com/t-invariant/category/brain/feed/'),
# ('\u041D\u0430\u0443\u043A\u0430 \u0432 \u0423\u043A\u0440\u0430\u0438\u043D\u0435', 'https://tinyurl.com/t-invariant/category/ukrainian-science/feed/'),
# ('\u041D\u0430\u0443\u0447\u043D\u0430\u044F \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/science-policy-ru/feed/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://tinyurl.com/t-invariant/category/news/feed/'),
# ('\u041E\u043F\u0440\u043E\u0441', 'https://tinyurl.com/t-invariant/category/survey-ru/feed/'),
# ('\u041F\u043E\u0437\u0438\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/standpiont/feed/'),
# ('\u041F\u043E\u043B\u0438\u0442\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/political-science/feed/'),
# ('\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430\u0443\u043A\u0438', 'https://tinyurl.com/t-invariant/category/popular-science/feed/'),
# ('\u041F\u0440\u0430\u0432\u043E', 'https://tinyurl.com/t-invariant/category/pravo/feed/'),
# ('\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441', 'https://tinyurl.com/t-invariant/category/progress/feed/'),
# ('\u041F\u0441\u0438\u0445\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/psihologiya/feed/'),
# ('\u0420\u0410\u041D', 'https://tinyurl.com/t-invariant/category/ras/feed/'),
# ('\u0420\u0435\u043B\u0438\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/religion/feed/'),
# ('\u0420\u0435\u043B\u043E\u043A\u0430\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/relocation/feed/'),
# ('\u0420\u0435\u043F\u0440\u0435\u0441\u0441\u0438\u0438', 'https://tinyurl.com/t-invariant/category/repression/feed/'),
# ('\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A', 'https://tinyurl.com/t-invariant/category/russian-language/feed/'),
# ('\u0421\u0430\u043D\u043A\u0446\u0438\u0438', 'https://tinyurl.com/t-invariant/category/sanctions/feed/'),
# ('\u0421\u043E\u0437\u0434\u0430\u0442\u0435\u043B\u0438', 'https://tinyurl.com/t-invariant/category/creators/feed/'),
# ('\u0421\u043E\u0446\u0438\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/sociology/feed/'),
# ('\u0422\u0435\u0440\u0440\u043E\u0440\u0438\u0437\u043C', 'https://tinyurl.com/t-invariant/category/terrorizm/feed/'),
# ('\u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u044B', 'https://tinyurl.com/t-invariant/category/universities/feed/'),
# ('\u0424\u0438\u0437\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/physics/feed/'),
# ('\u0424\u0438\u043B\u043E\u0441\u043E\u0444\u0438\u044F', 'https://tinyurl.com/t-invariant/category/philosophy/feed/'),
# ('\u0428\u043A\u043E\u043B\u0430', 'https://tinyurl.com/t-invariant/category/shkola/feed/'),
# ('\u042D\u043A\u0441\u043F\u0435\u0440\u0442\u0438\u0437\u0430 \u043D\u0430\u0443\u043A\u0438', 'https://tinyurl.com/t-invariant/category/science-assessment/feed/'),
# ('\u042D\u043D\u0435\u0440\u0433\u0435\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/energy/feed/'),
# ('\u042D\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/ethics/feed/'),
#
# English version
#
# ('T-invariant (English)', 'https://www.t-invariant.org/en/feed/'),
#
# Censorship bypass
#
# Russian version
# Direct links
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', https://www.t-invariant.org/feed/'),
# ('\u0410\u0440\u0445\u0438\u0432', https://www.t-invariant.org/category/online/feed/'),
# ('\u0410\u0441\u0442\u0440\u043E\u043D\u043E\u043C\u0438\u044F', https://www.t-invariant.org/category/astronomy/feed/'),
# ('\u0411\u0438\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/biologiya/feed/'),
# ('\u0412\u043E\u0439\u043D\u0430', https://www.t-invariant.org/category/war/feed/'),
# ('\u0412\u0441\u0451 \u0441\u043B\u043E\u0436\u043D\u043E', https://www.t-invariant.org/category/vsyo-slozhno/feed/'),
# ('\u0414\u0432\u0430 \u0433\u043E\u0434\u0430 \u0432\u043E\u0439\u043D\u0435', https://www.t-invariant.org/category/dva-goda-vojne/feed/'),
# ('\u0414\u0432\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B \u043E\u0434\u043D\u043E\u0439 \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/dve-storony-odnoj-nauki/feed/'),
# ('\u0414\u0438\u0441\u043A\u0443\u0441\u0441\u0438\u0438', https://www.t-invariant.org/category/discussion/feed/'),
# ('\u0414\u0438\u0441\u0441\u0435\u0440\u043D\u0435\u0442', https://www.t-invariant.org/category/dissernet/feed/'),
# ('\u0418\u0418', https://www.t-invariant.org/category/ai/feed/'),
# ('\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/computer-science/feed/'),
# ('\u0418\u0441\u0442\u043E\u0440\u0438\u044F', https://www.t-invariant.org/category/history/feed/'),
# ('\u041A\u043B\u0438\u043C\u0430\u0442', https://www.t-invariant.org/category/climate-ru/feed/'),
# ('\u041A\u043E\u043D\u0442\u0440\u044D\u0432\u043E\u043B\u044E\u0446\u0438\u044F', https://www.t-invariant.org/category/kontrevolyutsiya/feed/'),
# ('\u041A\u043E\u0440\u0440\u0443\u043F\u0446\u0438\u044F', https://www.t-invariant.org/category/korruptsiya/feed/'),
# ('\u041B\u0436\u0435\u043D\u0430\u0443\u043A\u0430', https://www.t-invariant.org/category/pseudoscience/feed/'),
# ('\u041C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/mathematics/feed/'),
# ('\u041C\u043E\u0437\u0433', https://www.t-invariant.org/category/brain/feed/'),
# ('\u041D\u0430\u0443\u043A\u0430 \u0432 \u0423\u043A\u0440\u0430\u0438\u043D\u0435', https://www.t-invariant.org/category/ukrainian-science/feed/'),
# ('\u041D\u0430\u0443\u0447\u043D\u0430\u044F \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/science-policy-ru/feed/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', https://www.t-invariant.org/category/news/feed/'),
# ('\u041E\u043F\u0440\u043E\u0441', https://www.t-invariant.org/category/survey-ru/feed/'),
# ('\u041F\u043E\u0437\u0438\u0446\u0438\u044F', https://www.t-invariant.org/category/standpiont/feed/'),
# ('\u041F\u043E\u043B\u0438\u0442\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/political-science/feed/'),
# ('\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/popular-science/feed/'),
# ('\u041F\u0440\u0430\u0432\u043E', https://www.t-invariant.org/category/pravo/feed/'),
# ('\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441', https://www.t-invariant.org/category/progress/feed/'),
# ('\u041F\u0441\u0438\u0445\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/psihologiya/feed/'),
# ('\u0420\u0410\u041D', https://www.t-invariant.org/category/ras/feed/'),
# ('\u0420\u0435\u043B\u0438\u0433\u0438\u044F', https://www.t-invariant.org/category/religion/feed/'),
# ('\u0420\u0435\u043B\u043E\u043A\u0430\u0446\u0438\u044F', https://www.t-invariant.org/category/relocation/feed/'),
# ('\u0420\u0435\u043F\u0440\u0435\u0441\u0441\u0438\u0438', https://www.t-invariant.org/category/repression/feed/'),
# ('\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A', https://www.t-invariant.org/category/russian-language/feed/'),
# ('\u0421\u0430\u043D\u043A\u0446\u0438\u0438', https://www.t-invariant.org/category/sanctions/feed/'),
# ('\u0421\u043E\u0437\u0434\u0430\u0442\u0435\u043B\u0438', https://www.t-invariant.org/category/creators/feed/'),
# ('\u0421\u043E\u0446\u0438\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/sociology/feed/'),
# ('\u0422\u0435\u0440\u0440\u043E\u0440\u0438\u0437\u043C', https://www.t-invariant.org/category/terrorizm/feed/'),
# ('\u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u044B', https://www.t-invariant.org/category/universities/feed/'),
# ('\u0424\u0438\u0437\u0438\u043A\u0430', https://www.t-invariant.org/category/physics/feed/'),
# ('\u0424\u0438\u043B\u043E\u0441\u043E\u0444\u0438\u044F', https://www.t-invariant.org/category/philosophy/feed/'),
# ('\u0428\u043A\u043E\u043B\u0430', https://www.t-invariant.org/category/shkola/feed/'),
# ('\u042D\u043A\u0441\u043F\u0435\u0440\u0442\u0438\u0437\u0430 \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/science-assessment/feed/'),
# ('\u042D\u043D\u0435\u0440\u0433\u0435\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/energy/feed/'),
# ('\u042D\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/ethics/feed/'),
# Censorship bypass
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://tinyurl.com/t-invariant/feed/'),
# ('\u0410\u0440\u0445\u0438\u0432', 'https://tinyurl.com/t-invariant/category/online/feed/'),
# ('\u0410\u0441\u0442\u0440\u043E\u043D\u043E\u043C\u0438\u044F', 'https://tinyurl.com/t-invariant/category/astronomy/feed/'),
# ('\u0411\u0438\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/biologiya/feed/'),
# ('\u0412\u043E\u0439\u043D\u0430', 'https://tinyurl.com/t-invariant/category/war/feed/'),
# ('\u0412\u0441\u0451 \u0441\u043B\u043E\u0436\u043D\u043E', 'https://tinyurl.com/t-invariant/category/vsyo-slozhno/feed/'),
# ('\u0414\u0432\u0430 \u0433\u043E\u0434\u0430 \u0432\u043E\u0439\u043D\u0435', 'https://tinyurl.com/t-invariant/category/dva-goda-vojne/feed/'),
# ('\u0414\u0432\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B \u043E\u0434\u043D\u043E\u0439 \u043D\u0430\u0443\u043A\u0438', 'https://tinyurl.com/t-invariant/category/dve-storony-odnoj-nauki/feed/'),
# ('\u0414\u0438\u0441\u043A\u0443\u0441\u0441\u0438\u0438', 'https://tinyurl.com/t-invariant/category/discussion/feed/'),
# ('\u0414\u0438\u0441\u0441\u0435\u0440\u043D\u0435\u0442', 'https://tinyurl.com/t-invariant/category/dissernet/feed/'),
# ('\u0418\u0418', 'https://tinyurl.com/t-invariant/category/ai/feed/'),
# ('\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/computer-science/feed/'),
# ('\u0418\u0441\u0442\u043E\u0440\u0438\u044F', 'https://tinyurl.com/t-invariant/category/history/feed/'),
# ('\u041A\u043B\u0438\u043C\u0430\u0442', 'https://tinyurl.com/t-invariant/category/climate-ru/feed/'),
# ('\u041A\u043E\u043D\u0442\u0440\u044D\u0432\u043E\u043B\u044E\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/kontrevolyutsiya/feed/'),
# ('\u041A\u043E\u0440\u0440\u0443\u043F\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/korruptsiya/feed/'),
# ('\u041B\u0436\u0435\u043D\u0430\u0443\u043A\u0430', 'https://tinyurl.com/t-invariant/category/pseudoscience/feed/'),
# ('\u041C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/mathematics/feed/'),
# ('\u041C\u043E\u0437\u0433', 'https://tinyurl.com/t-invariant/category/brain/feed/'),
# ('\u041D\u0430\u0443\u043A\u0430 \u0432 \u0423\u043A\u0440\u0430\u0438\u043D\u0435', 'https://tinyurl.com/t-invariant/category/ukrainian-science/feed/'),
# ('\u041D\u0430\u0443\u0447\u043D\u0430\u044F \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/science-policy-ru/feed/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://tinyurl.com/t-invariant/category/news/feed/'),
# ('\u041E\u043F\u0440\u043E\u0441', 'https://tinyurl.com/t-invariant/category/survey-ru/feed/'),
# ('\u041F\u043E\u0437\u0438\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/standpiont/feed/'),
# ('\u041F\u043E\u043B\u0438\u0442\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/political-science/feed/'),
# ('\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430\u0443\u043A\u0438', 'https://tinyurl.com/t-invariant/category/popular-science/feed/'),
# ('\u041F\u0440\u0430\u0432\u043E', 'https://tinyurl.com/t-invariant/category/pravo/feed/'),
# ('\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441', 'https://tinyurl.com/t-invariant/category/progress/feed/'),
# ('\u041F\u0441\u0438\u0445\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/psihologiya/feed/'),
# ('\u0420\u0410\u041D', 'https://tinyurl.com/t-invariant/category/ras/feed/'),
# ('\u0420\u0435\u043B\u0438\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/religion/feed/'),
# ('\u0420\u0435\u043B\u043E\u043A\u0430\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/relocation/feed/'),
# ('\u0420\u0435\u043F\u0440\u0435\u0441\u0441\u0438\u0438', 'https://tinyurl.com/t-invariant/category/repression/feed/'),
# ('\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A', 'https://tinyurl.com/t-invariant/category/russian-language/feed/'),
# ('\u0421\u0430\u043D\u043A\u0446\u0438\u0438', 'https://tinyurl.com/t-invariant/category/sanctions/feed/'),
# ('\u0421\u043E\u0437\u0434\u0430\u0442\u0435\u043B\u0438', 'https://tinyurl.com/t-invariant/category/creators/feed/'),
# ('\u0421\u043E\u0446\u0438\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/sociology/feed/'),
# ('\u0422\u0435\u0440\u0440\u043E\u0440\u0438\u0437\u043C', 'https://tinyurl.com/t-invariant/category/terrorizm/feed/'),
# ('\u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u044B', 'https://tinyurl.com/t-invariant/category/universities/feed/'),
# ('\u0424\u0438\u0437\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/physics/feed/'),
# ('\u0424\u0438\u043B\u043E\u0441\u043E\u0444\u0438\u044F', 'https://tinyurl.com/t-invariant/category/philosophy/feed/'),
# ('\u0428\u043A\u043E\u043B\u0430', 'https://tinyurl.com/t-invariant/category/shkola/feed/'),
# ('\u042D\u043A\u0441\u043F\u0435\u0440\u0442\u0438\u0437\u0430 \u043D\u0430\u0443\u043A\u0438', 'https://tinyurl.com/t-invariant/category/science-assessment/feed/'),
# ('\u042D\u043D\u0435\u0440\u0433\u0435\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/energy/feed/'),
# ('\u042D\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/ethics/feed/'),
# English version
# ('T-invariant (English)', 'https://www.t-invariant.org/en/feed/'),
# Censorship bypass
('T-invariant (English)', 'https://tinyurl.com/t-invariant/en/feed/'),
#
# Ukrainian version
#
# ('T-invariant (\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430)', 'https://www.t-invariant.org/uk/feed/'),
#
# Censorship bypass
#
# ('T-invariant (\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430)', 'https://tinyurl.com/t-invariant/uk/feed/'),
#
# German version
#
# ('T-invariant (Deutsch)', 'https://www.t-invariant.org/de/feed/'),
#
# Censorship bypass
#
# ('T-invariant (Deutsch)', 'https://tinyurl.com/t-invariant/de/feed/'),
#
# Hebrew version
#
# ('T-invariant (\u05E2\u05D1\u05E8\u05D9\u05EA)', 'https://www.t-invariant.org/he/feed/'),
#
# Censorship bypass
#
# ('T-invariant (\u05E2\u05D1\u05E8\u05D9\u05EA)', 'https://tinyurl.com/t-invariant/he/feed/'),
#
# Ukrainian version
# ('T-invariant (\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430)', 'https://www.t-invariant.org/uk/feed/'),
# Censorship bypass
# ('T-invariant (\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430)', 'https://tinyurl.com/t-invariant/uk/feed/'),
# German version
# ('T-invariant (Deutsch)', 'https://www.t-invariant.org/de/feed/'),
# Censorship bypass
# ('T-invariant (Deutsch)', 'https://tinyurl.com/t-invariant/de/feed/'),
# Hebrew version
# ('T-invariant (\u05E2\u05D1\u05E8\u05D9\u05EA)', 'https://www.t-invariant.org/he/feed/'),
# Censorship bypass
# ('T-invariant (\u05E2\u05D1\u05E8\u05D9\u05EA)', 'https://tinyurl.com/t-invariant/he/feed/'),
]

View File

@ -12,13 +12,13 @@ class TInvariant(BasicNewsRecipe):
description = '\u041C\u0443\u043B\u044C\u0442\u0438\u043C\u0435\u0434\u0438\u0439\u043D\u044B\u0439 \u043F\u0440\u043E\u0435\u043A\u0442 \u0443\u0447\u0435\u043D\u044B\u0445 \u0438 \u043D\u0430\u0443\u0447\u043D\u044B\u0445 \u0436\u0443\u0440\u043D\u0430\u043B\u0438\u0441\u0442\u043E\u0432.' # noqa: E501
publisher = '\u0422-\u0438\u043D\u0432\u0430\u0440\u0438\u0430\u043D\u0442 / T-invariant'
category = 'news'
# cover_url = u'https://t-invariant.org/wp-content/uploads/2023/02/logo-s.png'
# cover_url = u'https://t-invariant.org/wp-content/uploads/2023/02/logo-s.png'
cover_url = u'https://tinyurl.com/t-invariant/wp-content/uploads/2023/02/logo-s.png'
language = 'ru'
# language = 'en_RU'
# language = 'uk'
# language = 'de'
# language = 'he'
# language = 'en_RU'
# language = 'uk'
# language = 'de'
# language = 'he'
no_stylesheets = False
remove_javascript = False
auto_cleanup = False
@ -38,59 +38,55 @@ class TInvariant(BasicNewsRecipe):
]
feeds = [
# Russian version
#
# Direct links
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', https://www.t-invariant.org/feed/'),
# ('\u0410\u0440\u0445\u0438\u0432', https://www.t-invariant.org/category/online/feed/'),
# ('\u0410\u0441\u0442\u0440\u043E\u043D\u043E\u043C\u0438\u044F', https://www.t-invariant.org/category/astronomy/feed/'),
# ('\u0411\u0438\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/biologiya/feed/'),
# ('\u0412\u043E\u0439\u043D\u0430', https://www.t-invariant.org/category/war/feed/'),
# ('\u0412\u0441\u0451 \u0441\u043B\u043E\u0436\u043D\u043E', https://www.t-invariant.org/category/vsyo-slozhno/feed/'),
# ('\u0414\u0432\u0430 \u0433\u043E\u0434\u0430 \u0432\u043E\u0439\u043D\u0435', https://www.t-invariant.org/category/dva-goda-vojne/feed/'),
# ('\u0414\u0432\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B \u043E\u0434\u043D\u043E\u0439 \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/dve-storony-odnoj-nauki/feed/'),
# ('\u0414\u0438\u0441\u043A\u0443\u0441\u0441\u0438\u0438', https://www.t-invariant.org/category/discussion/feed/'),
# ('\u0414\u0438\u0441\u0441\u0435\u0440\u043D\u0435\u0442', https://www.t-invariant.org/category/dissernet/feed/'),
# ('\u0418\u0418', https://www.t-invariant.org/category/ai/feed/'),
# ('\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/computer-science/feed/'),
# ('\u0418\u0441\u0442\u043E\u0440\u0438\u044F', https://www.t-invariant.org/category/history/feed/'),
# ('\u041A\u043B\u0438\u043C\u0430\u0442', https://www.t-invariant.org/category/climate-ru/feed/'),
# ('\u041A\u043E\u043D\u0442\u0440\u044D\u0432\u043E\u043B\u044E\u0446\u0438\u044F', https://www.t-invariant.org/category/kontrevolyutsiya/feed/'),
# ('\u041A\u043E\u0440\u0440\u0443\u043F\u0446\u0438\u044F', https://www.t-invariant.org/category/korruptsiya/feed/'),
# ('\u041B\u0436\u0435\u043D\u0430\u0443\u043A\u0430', https://www.t-invariant.org/category/pseudoscience/feed/'),
# ('\u041C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/mathematics/feed/'),
# ('\u041C\u043E\u0437\u0433', https://www.t-invariant.org/category/brain/feed/'),
# ('\u041D\u0430\u0443\u043A\u0430 \u0432 \u0423\u043A\u0440\u0430\u0438\u043D\u0435', https://www.t-invariant.org/category/ukrainian-science/feed/'),
# ('\u041D\u0430\u0443\u0447\u043D\u0430\u044F \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/science-policy-ru/feed/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', https://www.t-invariant.org/category/news/feed/'),
# ('\u041E\u043F\u0440\u043E\u0441', https://www.t-invariant.org/category/survey-ru/feed/'),
# ('\u041F\u043E\u0437\u0438\u0446\u0438\u044F', https://www.t-invariant.org/category/standpiont/feed/'),
# ('\u041F\u043E\u043B\u0438\u0442\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/political-science/feed/'),
# ('\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/popular-science/feed/'),
# ('\u041F\u0440\u0430\u0432\u043E', https://www.t-invariant.org/category/pravo/feed/'),
# ('\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441', https://www.t-invariant.org/category/progress/feed/'),
# ('\u041F\u0441\u0438\u0445\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/psihologiya/feed/'),
# ('\u0420\u0410\u041D', https://www.t-invariant.org/category/ras/feed/'),
# ('\u0420\u0435\u043B\u0438\u0433\u0438\u044F', https://www.t-invariant.org/category/religion/feed/'),
# ('\u0420\u0435\u043B\u043E\u043A\u0430\u0446\u0438\u044F', https://www.t-invariant.org/category/relocation/feed/'),
# ('\u0420\u0435\u043F\u0440\u0435\u0441\u0441\u0438\u0438', https://www.t-invariant.org/category/repression/feed/'),
# ('\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A', https://www.t-invariant.org/category/russian-language/feed/'),
# ('\u0421\u0430\u043D\u043A\u0446\u0438\u0438', https://www.t-invariant.org/category/sanctions/feed/'),
# ('\u0421\u043E\u0437\u0434\u0430\u0442\u0435\u043B\u0438', https://www.t-invariant.org/category/creators/feed/'),
# ('\u0421\u043E\u0446\u0438\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/sociology/feed/'),
# ('\u0422\u0435\u0440\u0440\u043E\u0440\u0438\u0437\u043C', https://www.t-invariant.org/category/terrorizm/feed/'),
# ('\u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u044B', https://www.t-invariant.org/category/universities/feed/'),
# ('\u0424\u0438\u0437\u0438\u043A\u0430', https://www.t-invariant.org/category/physics/feed/'),
# ('\u0424\u0438\u043B\u043E\u0441\u043E\u0444\u0438\u044F', https://www.t-invariant.org/category/philosophy/feed/'),
# ('\u0428\u043A\u043E\u043B\u0430', https://www.t-invariant.org/category/shkola/feed/'),
# ('\u042D\u043A\u0441\u043F\u0435\u0440\u0442\u0438\u0437\u0430 \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/science-assessment/feed/'),
# ('\u042D\u043D\u0435\u0440\u0433\u0435\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/energy/feed/'),
# ('\u042D\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/ethics/feed/'),
#
# Censorship bypass
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://tinyurl.com/t-invariant/feed/'),
# Russian version
# Direct links
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', https://www.t-invariant.org/feed/'),
# ('\u0410\u0440\u0445\u0438\u0432', https://www.t-invariant.org/category/online/feed/'),
# ('\u0410\u0441\u0442\u0440\u043E\u043D\u043E\u043C\u0438\u044F', https://www.t-invariant.org/category/astronomy/feed/'),
# ('\u0411\u0438\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/biologiya/feed/'),
# ('\u0412\u043E\u0439\u043D\u0430', https://www.t-invariant.org/category/war/feed/'),
# ('\u0412\u0441\u0451 \u0441\u043B\u043E\u0436\u043D\u043E', https://www.t-invariant.org/category/vsyo-slozhno/feed/'),
# ('\u0414\u0432\u0430 \u0433\u043E\u0434\u0430 \u0432\u043E\u0439\u043D\u0435', https://www.t-invariant.org/category/dva-goda-vojne/feed/'),
# ('\u0414\u0432\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B \u043E\u0434\u043D\u043E\u0439 \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/dve-storony-odnoj-nauki/feed/'),
# ('\u0414\u0438\u0441\u043A\u0443\u0441\u0441\u0438\u0438', https://www.t-invariant.org/category/discussion/feed/'),
# ('\u0414\u0438\u0441\u0441\u0435\u0440\u043D\u0435\u0442', https://www.t-invariant.org/category/dissernet/feed/'),
# ('\u0418\u0418', https://www.t-invariant.org/category/ai/feed/'),
# ('\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/computer-science/feed/'),
# ('\u0418\u0441\u0442\u043E\u0440\u0438\u044F', https://www.t-invariant.org/category/history/feed/'),
# ('\u041A\u043B\u0438\u043C\u0430\u0442', https://www.t-invariant.org/category/climate-ru/feed/'),
# ('\u041A\u043E\u043D\u0442\u0440\u044D\u0432\u043E\u043B\u044E\u0446\u0438\u044F', https://www.t-invariant.org/category/kontrevolyutsiya/feed/'),
# ('\u041A\u043E\u0440\u0440\u0443\u043F\u0446\u0438\u044F', https://www.t-invariant.org/category/korruptsiya/feed/'),
# ('\u041B\u0436\u0435\u043D\u0430\u0443\u043A\u0430', https://www.t-invariant.org/category/pseudoscience/feed/'),
# ('\u041C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/mathematics/feed/'),
# ('\u041C\u043E\u0437\u0433', https://www.t-invariant.org/category/brain/feed/'),
# ('\u041D\u0430\u0443\u043A\u0430 \u0432 \u0423\u043A\u0440\u0430\u0438\u043D\u0435', https://www.t-invariant.org/category/ukrainian-science/feed/'),
# ('\u041D\u0430\u0443\u0447\u043D\u0430\u044F \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/science-policy-ru/feed/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', https://www.t-invariant.org/category/news/feed/'),
# ('\u041E\u043F\u0440\u043E\u0441', https://www.t-invariant.org/category/survey-ru/feed/'),
# ('\u041F\u043E\u0437\u0438\u0446\u0438\u044F', https://www.t-invariant.org/category/standpiont/feed/'),
# ('\u041F\u043E\u043B\u0438\u0442\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/political-science/feed/'),
# ('\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/popular-science/feed/'),
# ('\u041F\u0440\u0430\u0432\u043E', https://www.t-invariant.org/category/pravo/feed/'),
# ('\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441', https://www.t-invariant.org/category/progress/feed/'),
# ('\u041F\u0441\u0438\u0445\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/psihologiya/feed/'),
# ('\u0420\u0410\u041D', https://www.t-invariant.org/category/ras/feed/'),
# ('\u0420\u0435\u043B\u0438\u0433\u0438\u044F', https://www.t-invariant.org/category/religion/feed/'),
# ('\u0420\u0435\u043B\u043E\u043A\u0430\u0446\u0438\u044F', https://www.t-invariant.org/category/relocation/feed/'),
# ('\u0420\u0435\u043F\u0440\u0435\u0441\u0441\u0438\u0438', https://www.t-invariant.org/category/repression/feed/'),
# ('\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A', https://www.t-invariant.org/category/russian-language/feed/'),
# ('\u0421\u0430\u043D\u043A\u0446\u0438\u0438', https://www.t-invariant.org/category/sanctions/feed/'),
# ('\u0421\u043E\u0437\u0434\u0430\u0442\u0435\u043B\u0438', https://www.t-invariant.org/category/creators/feed/'),
# ('\u0421\u043E\u0446\u0438\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/sociology/feed/'),
# ('\u0422\u0435\u0440\u0440\u043E\u0440\u0438\u0437\u043C', https://www.t-invariant.org/category/terrorizm/feed/'),
# ('\u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u044B', https://www.t-invariant.org/category/universities/feed/'),
# ('\u0424\u0438\u0437\u0438\u043A\u0430', https://www.t-invariant.org/category/physics/feed/'),
# ('\u0424\u0438\u043B\u043E\u0441\u043E\u0444\u0438\u044F', https://www.t-invariant.org/category/philosophy/feed/'),
# ('\u0428\u043A\u043E\u043B\u0430', https://www.t-invariant.org/category/shkola/feed/'),
# ('\u042D\u043A\u0441\u043F\u0435\u0440\u0442\u0438\u0437\u0430 \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/science-assessment/feed/'),
# ('\u042D\u043D\u0435\u0440\u0433\u0435\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/energy/feed/'),
# ('\u042D\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/ethics/feed/'),
# Censorship bypass
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://tinyurl.com/t-invariant/feed/'),
('\u0410\u0440\u0445\u0438\u0432', 'https://tinyurl.com/t-invariant/category/online/feed/'),
('\u0410\u0441\u0442\u0440\u043E\u043D\u043E\u043C\u0438\u044F', 'https://tinyurl.com/t-invariant/category/astronomy/feed/'),
('\u0411\u0438\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/biologiya/feed/'),
@ -137,37 +133,24 @@ class TInvariant(BasicNewsRecipe):
('\u042D\u043A\u0441\u043F\u0435\u0440\u0442\u0438\u0437\u0430 \u043D\u0430\u0443\u043A\u0438', 'https://tinyurl.com/t-invariant/category/science-assessment/feed/'),
('\u042D\u043D\u0435\u0440\u0433\u0435\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/energy/feed/'),
('\u042D\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/ethics/feed/'),
#
# English version
#
# ('T-invariant (English)', 'https://www.t-invariant.org/en/feed/'),
#
# Censorship bypass
#
# ('T-invariant (English)', 'https://tinyurl.com/t-invariant/en/feed/'),
#
# Ukrainian version
#
# ('T-invariant (\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430)', 'https://www.t-invariant.org/uk/feed/'),
#
# Censorship bypass
#
# ('T-invariant (\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430)', 'https://tinyurl.com/t-invariant/uk/feed/'),
#
# German version
#
# ('T-invariant (Deutsch)', 'https://www.t-invariant.org/de/feed/'),
#
# Censorship bypass
#
# ('T-invariant (Deutsch)', 'https://tinyurl.com/t-invariant/de/feed/'),
#
# Hebrew version
#
# ('T-invariant (\u05E2\u05D1\u05E8\u05D9\u05EA)', 'https://www.t-invariant.org/he/feed/'),
#
# Censorship bypass
#
# ('T-invariant (\u05E2\u05D1\u05E8\u05D9\u05EA)', 'https://tinyurl.com/t-invariant/he/feed/'),
#
# English version
# ('T-invariant (English)', 'https://www.t-invariant.org/en/feed/'),
# Censorship bypass
# ('T-invariant (English)', 'https://tinyurl.com/t-invariant/en/feed/'),
# Ukrainian version
# ('T-invariant (\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430)', 'https://www.t-invariant.org/uk/feed/'),
# Censorship bypass
# ('T-invariant (\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430)', 'https://tinyurl.com/t-invariant/uk/feed/'),
# German version
# ('T-invariant (Deutsch)', 'https://www.t-invariant.org/de/feed/'),
# Censorship bypass
# ('T-invariant (Deutsch)', 'https://tinyurl.com/t-invariant/de/feed/'),
# Hebrew version
# ('T-invariant (\u05E2\u05D1\u05E8\u05D9\u05EA)', 'https://www.t-invariant.org/he/feed/'),
# Censorship bypass
# ('T-invariant (\u05E2\u05D1\u05E8\u05D9\u05EA)', 'https://tinyurl.com/t-invariant/he/feed/'),
]

View File

@ -13,12 +13,12 @@ class TInvariant(BasicNewsRecipe):
publisher = '\u0422-\u0438\u043D\u0432\u0430\u0440\u0438\u0430\u043D\u0442 / T-invariant'
category = 'news'
cover_url = u'https://t-invariant.org/wp-content/uploads/2023/02/logo-s.png'
# cover_url = u'https://tinyurl.com/t-invariant/wp-content/uploads/2023/02/logo-s.png'
# language = 'ru'
# language = 'en_RU'
# cover_url = u'https://tinyurl.com/t-invariant/wp-content/uploads/2023/02/logo-s.png'
# language = 'ru'
# language = 'en_RU'
language = 'uk'
# language = 'de'
# language = 'he'
# language = 'de'
# language = 'he'
no_stylesheets = False
remove_javascript = False
auto_cleanup = False
@ -38,134 +38,117 @@ class TInvariant(BasicNewsRecipe):
]
feeds = [
# Russian version
#
# Direct links
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', https://www.t-invariant.org/feed/'),
# ('\u0410\u0440\u0445\u0438\u0432', https://www.t-invariant.org/category/online/feed/'),
# ('\u0410\u0441\u0442\u0440\u043E\u043D\u043E\u043C\u0438\u044F', https://www.t-invariant.org/category/astronomy/feed/'),
# ('\u0411\u0438\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/biologiya/feed/'),
# ('\u0412\u043E\u0439\u043D\u0430', https://www.t-invariant.org/category/war/feed/'),
# ('\u0412\u0441\u0451 \u0441\u043B\u043E\u0436\u043D\u043E', https://www.t-invariant.org/category/vsyo-slozhno/feed/'),
# ('\u0414\u0432\u0430 \u0433\u043E\u0434\u0430 \u0432\u043E\u0439\u043D\u0435', https://www.t-invariant.org/category/dva-goda-vojne/feed/'),
# ('\u0414\u0432\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B \u043E\u0434\u043D\u043E\u0439 \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/dve-storony-odnoj-nauki/feed/'),
# ('\u0414\u0438\u0441\u043A\u0443\u0441\u0441\u0438\u0438', https://www.t-invariant.org/category/discussion/feed/'),
# ('\u0414\u0438\u0441\u0441\u0435\u0440\u043D\u0435\u0442', https://www.t-invariant.org/category/dissernet/feed/'),
# ('\u0418\u0418', https://www.t-invariant.org/category/ai/feed/'),
# ('\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/computer-science/feed/'),
# ('\u0418\u0441\u0442\u043E\u0440\u0438\u044F', https://www.t-invariant.org/category/history/feed/'),
# ('\u041A\u043B\u0438\u043C\u0430\u0442', https://www.t-invariant.org/category/climate-ru/feed/'),
# ('\u041A\u043E\u043D\u0442\u0440\u044D\u0432\u043E\u043B\u044E\u0446\u0438\u044F', https://www.t-invariant.org/category/kontrevolyutsiya/feed/'),
# ('\u041A\u043E\u0440\u0440\u0443\u043F\u0446\u0438\u044F', https://www.t-invariant.org/category/korruptsiya/feed/'),
# ('\u041B\u0436\u0435\u043D\u0430\u0443\u043A\u0430', https://www.t-invariant.org/category/pseudoscience/feed/'),
# ('\u041C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/mathematics/feed/'),
# ('\u041C\u043E\u0437\u0433', https://www.t-invariant.org/category/brain/feed/'),
# ('\u041D\u0430\u0443\u043A\u0430 \u0432 \u0423\u043A\u0440\u0430\u0438\u043D\u0435', https://www.t-invariant.org/category/ukrainian-science/feed/'),
# ('\u041D\u0430\u0443\u0447\u043D\u0430\u044F \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/science-policy-ru/feed/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', https://www.t-invariant.org/category/news/feed/'),
# ('\u041E\u043F\u0440\u043E\u0441', https://www.t-invariant.org/category/survey-ru/feed/'),
# ('\u041F\u043E\u0437\u0438\u0446\u0438\u044F', https://www.t-invariant.org/category/standpiont/feed/'),
# ('\u041F\u043E\u043B\u0438\u0442\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/political-science/feed/'),
# ('\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/popular-science/feed/'),
# ('\u041F\u0440\u0430\u0432\u043E', https://www.t-invariant.org/category/pravo/feed/'),
# ('\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441', https://www.t-invariant.org/category/progress/feed/'),
# ('\u041F\u0441\u0438\u0445\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/psihologiya/feed/'),
# ('\u0420\u0410\u041D', https://www.t-invariant.org/category/ras/feed/'),
# ('\u0420\u0435\u043B\u0438\u0433\u0438\u044F', https://www.t-invariant.org/category/religion/feed/'),
# ('\u0420\u0435\u043B\u043E\u043A\u0430\u0446\u0438\u044F', https://www.t-invariant.org/category/relocation/feed/'),
# ('\u0420\u0435\u043F\u0440\u0435\u0441\u0441\u0438\u0438', https://www.t-invariant.org/category/repression/feed/'),
# ('\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A', https://www.t-invariant.org/category/russian-language/feed/'),
# ('\u0421\u0430\u043D\u043A\u0446\u0438\u0438', https://www.t-invariant.org/category/sanctions/feed/'),
# ('\u0421\u043E\u0437\u0434\u0430\u0442\u0435\u043B\u0438', https://www.t-invariant.org/category/creators/feed/'),
# ('\u0421\u043E\u0446\u0438\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/sociology/feed/'),
# ('\u0422\u0435\u0440\u0440\u043E\u0440\u0438\u0437\u043C', https://www.t-invariant.org/category/terrorizm/feed/'),
# ('\u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u044B', https://www.t-invariant.org/category/universities/feed/'),
# ('\u0424\u0438\u0437\u0438\u043A\u0430', https://www.t-invariant.org/category/physics/feed/'),
# ('\u0424\u0438\u043B\u043E\u0441\u043E\u0444\u0438\u044F', https://www.t-invariant.org/category/philosophy/feed/'),
# ('\u0428\u043A\u043E\u043B\u0430', https://www.t-invariant.org/category/shkola/feed/'),
# ('\u042D\u043A\u0441\u043F\u0435\u0440\u0442\u0438\u0437\u0430 \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/science-assessment/feed/'),
# ('\u042D\u043D\u0435\u0440\u0433\u0435\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/energy/feed/'),
# ('\u042D\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/ethics/feed/'),
#
# Censorship bypass
#
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://tinyurl.com/t-invariant/feed/'),
# ('\u0410\u0440\u0445\u0438\u0432', 'https://tinyurl.com/t-invariant/category/online/feed/'),
# ('\u0410\u0441\u0442\u0440\u043E\u043D\u043E\u043C\u0438\u044F', 'https://tinyurl.com/t-invariant/category/astronomy/feed/'),
# ('\u0411\u0438\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/biologiya/feed/'),
# ('\u0412\u043E\u0439\u043D\u0430', 'https://tinyurl.com/t-invariant/category/war/feed/'),
# ('\u0412\u0441\u0451 \u0441\u043B\u043E\u0436\u043D\u043E', 'https://tinyurl.com/t-invariant/category/vsyo-slozhno/feed/'),
# ('\u0414\u0432\u0430 \u0433\u043E\u0434\u0430 \u0432\u043E\u0439\u043D\u0435', 'https://tinyurl.com/t-invariant/category/dva-goda-vojne/feed/'),
# ('\u0414\u0432\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B \u043E\u0434\u043D\u043E\u0439 \u043D\u0430\u0443\u043A\u0438', 'https://tinyurl.com/t-invariant/category/dve-storony-odnoj-nauki/feed/'),
# ('\u0414\u0438\u0441\u043A\u0443\u0441\u0441\u0438\u0438', 'https://tinyurl.com/t-invariant/category/discussion/feed/'),
# ('\u0414\u0438\u0441\u0441\u0435\u0440\u043D\u0435\u0442', 'https://tinyurl.com/t-invariant/category/dissernet/feed/'),
# ('\u0418\u0418', 'https://tinyurl.com/t-invariant/category/ai/feed/'),
# ('\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/computer-science/feed/'),
# ('\u0418\u0441\u0442\u043E\u0440\u0438\u044F', 'https://tinyurl.com/t-invariant/category/history/feed/'),
# ('\u041A\u043B\u0438\u043C\u0430\u0442', 'https://tinyurl.com/t-invariant/category/climate-ru/feed/'),
# ('\u041A\u043E\u043D\u0442\u0440\u044D\u0432\u043E\u043B\u044E\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/kontrevolyutsiya/feed/'),
# ('\u041A\u043E\u0440\u0440\u0443\u043F\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/korruptsiya/feed/'),
# ('\u041B\u0436\u0435\u043D\u0430\u0443\u043A\u0430', 'https://tinyurl.com/t-invariant/category/pseudoscience/feed/'),
# ('\u041C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/mathematics/feed/'),
# ('\u041C\u043E\u0437\u0433', 'https://tinyurl.com/t-invariant/category/brain/feed/'),
# ('\u041D\u0430\u0443\u043A\u0430 \u0432 \u0423\u043A\u0440\u0430\u0438\u043D\u0435', 'https://tinyurl.com/t-invariant/category/ukrainian-science/feed/'),
# ('\u041D\u0430\u0443\u0447\u043D\u0430\u044F \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/science-policy-ru/feed/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://tinyurl.com/t-invariant/category/news/feed/'),
# ('\u041E\u043F\u0440\u043E\u0441', 'https://tinyurl.com/t-invariant/category/survey-ru/feed/'),
# ('\u041F\u043E\u0437\u0438\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/standpiont/feed/'),
# ('\u041F\u043E\u043B\u0438\u0442\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/political-science/feed/'),
# ('\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430\u0443\u043A\u0438', 'https://tinyurl.com/t-invariant/category/popular-science/feed/'),
# ('\u041F\u0440\u0430\u0432\u043E', 'https://tinyurl.com/t-invariant/category/pravo/feed/'),
# ('\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441', 'https://tinyurl.com/t-invariant/category/progress/feed/'),
# ('\u041F\u0441\u0438\u0445\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/psihologiya/feed/'),
# ('\u0420\u0410\u041D', 'https://tinyurl.com/t-invariant/category/ras/feed/'),
# ('\u0420\u0435\u043B\u0438\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/religion/feed/'),
# ('\u0420\u0435\u043B\u043E\u043A\u0430\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/relocation/feed/'),
# ('\u0420\u0435\u043F\u0440\u0435\u0441\u0441\u0438\u0438', 'https://tinyurl.com/t-invariant/category/repression/feed/'),
# ('\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A', 'https://tinyurl.com/t-invariant/category/russian-language/feed/'),
# ('\u0421\u0430\u043D\u043A\u0446\u0438\u0438', 'https://tinyurl.com/t-invariant/category/sanctions/feed/'),
# ('\u0421\u043E\u0437\u0434\u0430\u0442\u0435\u043B\u0438', 'https://tinyurl.com/t-invariant/category/creators/feed/'),
# ('\u0421\u043E\u0446\u0438\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/sociology/feed/'),
# ('\u0422\u0435\u0440\u0440\u043E\u0440\u0438\u0437\u043C', 'https://tinyurl.com/t-invariant/category/terrorizm/feed/'),
# ('\u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u044B', 'https://tinyurl.com/t-invariant/category/universities/feed/'),
# ('\u0424\u0438\u0437\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/physics/feed/'),
# ('\u0424\u0438\u043B\u043E\u0441\u043E\u0444\u0438\u044F', 'https://tinyurl.com/t-invariant/category/philosophy/feed/'),
# ('\u0428\u043A\u043E\u043B\u0430', 'https://tinyurl.com/t-invariant/category/shkola/feed/'),
# ('\u042D\u043A\u0441\u043F\u0435\u0440\u0442\u0438\u0437\u0430 \u043D\u0430\u0443\u043A\u0438', 'https://tinyurl.com/t-invariant/category/science-assessment/feed/'),
# ('\u042D\u043D\u0435\u0440\u0433\u0435\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/energy/feed/'),
# ('\u042D\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/ethics/feed/'),
#
# English version
#
# ('T-invariant (English)', 'https://www.t-invariant.org/en/feed/'),
#
# Censorship bypass
#
# ('T-invariant (English)', 'https://tinyurl.com/t-invariant/en/feed/'),
#
# Ukrainian version
#
# ('T-invariant (\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430)', 'https://www.t-invariant.org/uk/feed/'),
#
# Censorship bypass
#
# Russian version
# Direct links
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', https://www.t-invariant.org/feed/'),
# ('\u0410\u0440\u0445\u0438\u0432', https://www.t-invariant.org/category/online/feed/'),
# ('\u0410\u0441\u0442\u0440\u043E\u043D\u043E\u043C\u0438\u044F', https://www.t-invariant.org/category/astronomy/feed/'),
# ('\u0411\u0438\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/biologiya/feed/'),
# ('\u0412\u043E\u0439\u043D\u0430', https://www.t-invariant.org/category/war/feed/'),
# ('\u0412\u0441\u0451 \u0441\u043B\u043E\u0436\u043D\u043E', https://www.t-invariant.org/category/vsyo-slozhno/feed/'),
# ('\u0414\u0432\u0430 \u0433\u043E\u0434\u0430 \u0432\u043E\u0439\u043D\u0435', https://www.t-invariant.org/category/dva-goda-vojne/feed/'),
# ('\u0414\u0432\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B \u043E\u0434\u043D\u043E\u0439 \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/dve-storony-odnoj-nauki/feed/'),
# ('\u0414\u0438\u0441\u043A\u0443\u0441\u0441\u0438\u0438', https://www.t-invariant.org/category/discussion/feed/'),
# ('\u0414\u0438\u0441\u0441\u0435\u0440\u043D\u0435\u0442', https://www.t-invariant.org/category/dissernet/feed/'),
# ('\u0418\u0418', https://www.t-invariant.org/category/ai/feed/'),
# ('\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/computer-science/feed/'),
# ('\u0418\u0441\u0442\u043E\u0440\u0438\u044F', https://www.t-invariant.org/category/history/feed/'),
# ('\u041A\u043B\u0438\u043C\u0430\u0442', https://www.t-invariant.org/category/climate-ru/feed/'),
# ('\u041A\u043E\u043D\u0442\u0440\u044D\u0432\u043E\u043B\u044E\u0446\u0438\u044F', https://www.t-invariant.org/category/kontrevolyutsiya/feed/'),
# ('\u041A\u043E\u0440\u0440\u0443\u043F\u0446\u0438\u044F', https://www.t-invariant.org/category/korruptsiya/feed/'),
# ('\u041B\u0436\u0435\u043D\u0430\u0443\u043A\u0430', https://www.t-invariant.org/category/pseudoscience/feed/'),
# ('\u041C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/mathematics/feed/'),
# ('\u041C\u043E\u0437\u0433', https://www.t-invariant.org/category/brain/feed/'),
# ('\u041D\u0430\u0443\u043A\u0430 \u0432 \u0423\u043A\u0440\u0430\u0438\u043D\u0435', https://www.t-invariant.org/category/ukrainian-science/feed/'),
# ('\u041D\u0430\u0443\u0447\u043D\u0430\u044F \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/science-policy-ru/feed/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', https://www.t-invariant.org/category/news/feed/'),
# ('\u041E\u043F\u0440\u043E\u0441', https://www.t-invariant.org/category/survey-ru/feed/'),
# ('\u041F\u043E\u0437\u0438\u0446\u0438\u044F', https://www.t-invariant.org/category/standpiont/feed/'),
# ('\u041F\u043E\u043B\u0438\u0442\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/political-science/feed/'),
# ('\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/popular-science/feed/'),
# ('\u041F\u0440\u0430\u0432\u043E', https://www.t-invariant.org/category/pravo/feed/'),
# ('\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441', https://www.t-invariant.org/category/progress/feed/'),
# ('\u041F\u0441\u0438\u0445\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/psihologiya/feed/'),
# ('\u0420\u0410\u041D', https://www.t-invariant.org/category/ras/feed/'),
# ('\u0420\u0435\u043B\u0438\u0433\u0438\u044F', https://www.t-invariant.org/category/religion/feed/'),
# ('\u0420\u0435\u043B\u043E\u043A\u0430\u0446\u0438\u044F', https://www.t-invariant.org/category/relocation/feed/'),
# ('\u0420\u0435\u043F\u0440\u0435\u0441\u0441\u0438\u0438', https://www.t-invariant.org/category/repression/feed/'),
# ('\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A', https://www.t-invariant.org/category/russian-language/feed/'),
# ('\u0421\u0430\u043D\u043A\u0446\u0438\u0438', https://www.t-invariant.org/category/sanctions/feed/'),
# ('\u0421\u043E\u0437\u0434\u0430\u0442\u0435\u043B\u0438', https://www.t-invariant.org/category/creators/feed/'),
# ('\u0421\u043E\u0446\u0438\u043E\u043B\u043E\u0433\u0438\u044F', https://www.t-invariant.org/category/sociology/feed/'),
# ('\u0422\u0435\u0440\u0440\u043E\u0440\u0438\u0437\u043C', https://www.t-invariant.org/category/terrorizm/feed/'),
# ('\u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u044B', https://www.t-invariant.org/category/universities/feed/'),
# ('\u0424\u0438\u0437\u0438\u043A\u0430', https://www.t-invariant.org/category/physics/feed/'),
# ('\u0424\u0438\u043B\u043E\u0441\u043E\u0444\u0438\u044F', https://www.t-invariant.org/category/philosophy/feed/'),
# ('\u0428\u043A\u043E\u043B\u0430', https://www.t-invariant.org/category/shkola/feed/'),
# ('\u042D\u043A\u0441\u043F\u0435\u0440\u0442\u0438\u0437\u0430 \u043D\u0430\u0443\u043A\u0438', https://www.t-invariant.org/category/science-assessment/feed/'),
# ('\u042D\u043D\u0435\u0440\u0433\u0435\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/energy/feed/'),
# ('\u042D\u0442\u0438\u043A\u0430', https://www.t-invariant.org/category/ethics/feed/'),
# Censorship bypass
# ('\u0412\u0441\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B', 'https://tinyurl.com/t-invariant/feed/'),
# ('\u0410\u0440\u0445\u0438\u0432', 'https://tinyurl.com/t-invariant/category/online/feed/'),
# ('\u0410\u0441\u0442\u0440\u043E\u043D\u043E\u043C\u0438\u044F', 'https://tinyurl.com/t-invariant/category/astronomy/feed/'),
# ('\u0411\u0438\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/biologiya/feed/'),
# ('\u0412\u043E\u0439\u043D\u0430', 'https://tinyurl.com/t-invariant/category/war/feed/'),
# ('\u0412\u0441\u0451 \u0441\u043B\u043E\u0436\u043D\u043E', 'https://tinyurl.com/t-invariant/category/vsyo-slozhno/feed/'),
# ('\u0414\u0432\u0430 \u0433\u043E\u0434\u0430 \u0432\u043E\u0439\u043D\u0435', 'https://tinyurl.com/t-invariant/category/dva-goda-vojne/feed/'),
# ('\u0414\u0432\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B \u043E\u0434\u043D\u043E\u0439 \u043D\u0430\u0443\u043A\u0438', 'https://tinyurl.com/t-invariant/category/dve-storony-odnoj-nauki/feed/'),
# ('\u0414\u0438\u0441\u043A\u0443\u0441\u0441\u0438\u0438', 'https://tinyurl.com/t-invariant/category/discussion/feed/'),
# ('\u0414\u0438\u0441\u0441\u0435\u0440\u043D\u0435\u0442', 'https://tinyurl.com/t-invariant/category/dissernet/feed/'),
# ('\u0418\u0418', 'https://tinyurl.com/t-invariant/category/ai/feed/'),
# ('\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/computer-science/feed/'),
# ('\u0418\u0441\u0442\u043E\u0440\u0438\u044F', 'https://tinyurl.com/t-invariant/category/history/feed/'),
# ('\u041A\u043B\u0438\u043C\u0430\u0442', 'https://tinyurl.com/t-invariant/category/climate-ru/feed/'),
# ('\u041A\u043E\u043D\u0442\u0440\u044D\u0432\u043E\u043B\u044E\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/kontrevolyutsiya/feed/'),
# ('\u041A\u043E\u0440\u0440\u0443\u043F\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/korruptsiya/feed/'),
# ('\u041B\u0436\u0435\u043D\u0430\u0443\u043A\u0430', 'https://tinyurl.com/t-invariant/category/pseudoscience/feed/'),
# ('\u041C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/mathematics/feed/'),
# ('\u041C\u043E\u0437\u0433', 'https://tinyurl.com/t-invariant/category/brain/feed/'),
# ('\u041D\u0430\u0443\u043A\u0430 \u0432 \u0423\u043A\u0440\u0430\u0438\u043D\u0435', 'https://tinyurl.com/t-invariant/category/ukrainian-science/feed/'),
# ('\u041D\u0430\u0443\u0447\u043D\u0430\u044F \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/science-policy-ru/feed/'),
# ('\u041D\u043E\u0432\u043E\u0441\u0442\u0438', 'https://tinyurl.com/t-invariant/category/news/feed/'),
# ('\u041E\u043F\u0440\u043E\u0441', 'https://tinyurl.com/t-invariant/category/survey-ru/feed/'),
# ('\u041F\u043E\u0437\u0438\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/standpiont/feed/'),
# ('\u041F\u043E\u043B\u0438\u0442\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/political-science/feed/'),
# ('\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430\u0443\u043A\u0438', 'https://tinyurl.com/t-invariant/category/popular-science/feed/'),
# ('\u041F\u0440\u0430\u0432\u043E', 'https://tinyurl.com/t-invariant/category/pravo/feed/'),
# ('\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441', 'https://tinyurl.com/t-invariant/category/progress/feed/'),
# ('\u041F\u0441\u0438\u0445\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/psihologiya/feed/'),
# ('\u0420\u0410\u041D', 'https://tinyurl.com/t-invariant/category/ras/feed/'),
# ('\u0420\u0435\u043B\u0438\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/religion/feed/'),
# ('\u0420\u0435\u043B\u043E\u043A\u0430\u0446\u0438\u044F', 'https://tinyurl.com/t-invariant/category/relocation/feed/'),
# ('\u0420\u0435\u043F\u0440\u0435\u0441\u0441\u0438\u0438', 'https://tinyurl.com/t-invariant/category/repression/feed/'),
# ('\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A', 'https://tinyurl.com/t-invariant/category/russian-language/feed/'),
# ('\u0421\u0430\u043D\u043A\u0446\u0438\u0438', 'https://tinyurl.com/t-invariant/category/sanctions/feed/'),
# ('\u0421\u043E\u0437\u0434\u0430\u0442\u0435\u043B\u0438', 'https://tinyurl.com/t-invariant/category/creators/feed/'),
# ('\u0421\u043E\u0446\u0438\u043E\u043B\u043E\u0433\u0438\u044F', 'https://tinyurl.com/t-invariant/category/sociology/feed/'),
# ('\u0422\u0435\u0440\u0440\u043E\u0440\u0438\u0437\u043C', 'https://tinyurl.com/t-invariant/category/terrorizm/feed/'),
# ('\u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u044B', 'https://tinyurl.com/t-invariant/category/universities/feed/'),
# ('\u0424\u0438\u0437\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/physics/feed/'),
# ('\u0424\u0438\u043B\u043E\u0441\u043E\u0444\u0438\u044F', 'https://tinyurl.com/t-invariant/category/philosophy/feed/'),
# ('\u0428\u043A\u043E\u043B\u0430', 'https://tinyurl.com/t-invariant/category/shkola/feed/'),
# ('\u042D\u043A\u0441\u043F\u0435\u0440\u0442\u0438\u0437\u0430 \u043D\u0430\u0443\u043A\u0438', 'https://tinyurl.com/t-invariant/category/science-assessment/feed/'),
# ('\u042D\u043D\u0435\u0440\u0433\u0435\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/energy/feed/'),
# ('\u042D\u0442\u0438\u043A\u0430', 'https://tinyurl.com/t-invariant/category/ethics/feed/'),
# English version
# ('T-invariant (English)', 'https://www.t-invariant.org/en/feed/'),
# Censorship bypass
# ('T-invariant (English)', 'https://tinyurl.com/t-invariant/en/feed/'),
# Ukrainian version
# ('T-invariant (\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430)', 'https://www.t-invariant.org/uk/feed/'),
# Censorship bypass
('T-invariant (\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430)', 'https://tinyurl.com/t-invariant/uk/feed/'),
#
# German version
#
# ('T-invariant (Deutsch)', 'https://www.t-invariant.org/de/feed/'),
#
# Censorship bypass
#
# ('T-invariant (Deutsch)', 'https://tinyurl.com/t-invariant/de/feed/'),
#
# Hebrew version
#
# ('T-invariant (\u05E2\u05D1\u05E8\u05D9\u05EA)', 'https://www.t-invariant.org/he/feed/'),
#
# Censorship bypass
#
# ('T-invariant (\u05E2\u05D1\u05E8\u05D9\u05EA)', 'https://tinyurl.com/t-invariant/he/feed/'),
#
# German version
# ('T-invariant (Deutsch)', 'https://www.t-invariant.org/de/feed/'),
# Censorship bypass
# ('T-invariant (Deutsch)', 'https://tinyurl.com/t-invariant/de/feed/'),
# Hebrew version
# ('T-invariant (\u05E2\u05D1\u05E8\u05D9\u05EA)', 'https://www.t-invariant.org/he/feed/'),
# Censorship bypass
# ('T-invariant (\u05E2\u05D1\u05E8\u05D9\u05EA)', 'https://tinyurl.com/t-invariant/he/feed/'),
]

View File

@ -90,7 +90,7 @@ class PrivateEyeRecipe(BasicNewsRecipe):
# oldie links/headings often contain the author (in one of various formats
# 1. Title. By author
# .2. Title by author: subtitle
# 2. Title by author: subtitle
# 3. Title: author: subtitle
title_author_re = re.compile(r'^(.*?)(?:(?: by )|(?:: ))(.*?): (.*?)$')

View File

@ -40,14 +40,14 @@ class UAFootball(BasicNewsRecipe):
remove_tags_after = dict(name='div', attrs={'class': 'show-post'})
remove_tags = [
dict(name='form'),
dict(name='iframe'),
dict(name='div', attrs={'class': 'language'}),
dict(name='div', attrs={'class': 'article__read-also'}),
dict(name='div', attrs={'class': 'card-player'}),
dict(name='div', attrs={'class': 'show-post-socials'})
]
dict(name='form'),
dict(name='iframe'),
dict(name='div', attrs={'class': 'language'}),
dict(name='div', attrs={'class': 'article__read-also'}),
dict(name='div', attrs={'class': 'card-player'}),
dict(name='div', attrs={'class': 'show-post-socials'})
]
# Replacing articles in Ukraininan for RU-feed
# def print_version(self, url):
# return url.replace('ua-football.com/ua/', 'ua-football.com/')
# Replacing articles in Ukraininan for RU-feed
# def print_version(self, url):
# return url.replace('ua-football.com/ua/', 'ua-football.com/')

View File

@ -68,44 +68,44 @@ class CanWestPaper(BasicNewsRecipe):
fp_tag = 'CAN_TP'
# un-comment the following six lines for the Vancouver Sun
# title = u'Vancouver Sun'
# url_prefix = 'http://www.vancouversun.com'
# description = u'News from Vancouver, BC'
# std_logo_url = 'http://www.vancouversun.com/images/logo_vancouversun.jpg'
# logo_url = 'vslogo.jpg'
# fp_tag = 'CAN_VS'
# # title = u'Vancouver Sun'
# # url_prefix = 'http://www.vancouversun.com'
# # description = u'News from Vancouver, BC'
# # std_logo_url = 'http://www.vancouversun.com/images/logo_vancouversun.jpg'
# # logo_url = 'vslogo.jpg'
# # fp_tag = 'CAN_VS'
# un-comment the following six lines for the Calgary Herald
# # title = u'Calgary Herald'
# # url_prefix = 'http://www.calgaryherald.com'
# # description = u'News from Calgary, AB'
# # std_logo_url = 'http://www.calgaryherald.com/images/logo_calgaryherald.jpg'
# # logo_url = 'chlogo.jpg'
# # fp_tag = 'CAN_CH'
#
# un-comment the following six lines for the Edmonton Journal
# # title = u'Edmonton Journal'
# # url_prefix = 'http://www.edmontonjournal.com'
# # description = u'News from Edmonton, AB'
# # std_logo_url = 'http://www.edmontonjournal.com/images/logo_edmontonjournal.jpg'
# # logo_url = 'ejlogo.jpg'
# # fp_tag = 'CAN_EJ'
#
# un-comment the following six lines for the Ottawa Citizen
# # title = u'Ottawa Citizen'
# # url_prefix = 'http://www.ottawacitizen.com'
# # description = u'News from Ottawa, ON'
# # std_logo_url = 'http://www.ottawacitizen.com/images/logo_ottawacitizen.jpg'
# # logo_url = 'oclogo.jpg'
# # fp_tag = 'CAN_OC'
#
# un-comment the following six lines for the Montreal Gazette
# # title = u'Montreal Gazette'
# # url_prefix = 'http://www.montrealgazette.com'
# # description = u'News from Montreal, QC'
# # std_logo_url = 'http://www.montrealgazette.com/images/logo_montrealgazette.jpg'
# # logo_url = 'mglogo.jpg'
# # fp_tag = 'CAN_MG'
# # title = u'Calgary Herald'
# # url_prefix = 'http://www.calgaryherald.com'
# # description = u'News from Calgary, AB'
# # std_logo_url = 'http://www.calgaryherald.com/images/logo_calgaryherald.jpg'
# # logo_url = 'chlogo.jpg'
# # fp_tag = 'CAN_CH'
# un-comment the following six lines for the Edmonton Journal
# # title = u'Edmonton Journal'
# # url_prefix = 'http://www.edmontonjournal.com'
# # description = u'News from Edmonton, AB'
# # std_logo_url = 'http://www.edmontonjournal.com/images/logo_edmontonjournal.jpg'
# # logo_url = 'ejlogo.jpg'
# # fp_tag = 'CAN_EJ'
# un-comment the following six lines for the Ottawa Citizen
# # title = u'Ottawa Citizen'
# # url_prefix = 'http://www.ottawacitizen.com'
# # description = u'News from Ottawa, ON'
# # std_logo_url = 'http://www.ottawacitizen.com/images/logo_ottawacitizen.jpg'
# # logo_url = 'oclogo.jpg'
# # fp_tag = 'CAN_OC'
# un-comment the following six lines for the Montreal Gazette
# # title = u'Montreal Gazette'
# # url_prefix = 'http://www.montrealgazette.com'
# # description = u'News from Montreal, QC'
# # std_logo_url = 'http://www.montrealgazette.com/images/logo_montrealgazette.jpg'
# # logo_url = 'mglogo.jpg'
# # fp_tag = 'CAN_MG'
Kindle_Fire = False
masthead_url = std_logo_url

View File

@ -61,12 +61,12 @@ class CanWestPaper(BasicNewsRecipe):
]
# un-comment the following six lines for the Vancouver Province
# title = u'Vancouver Province'
# url_prefix = 'http://www.theprovince.com'
# description = u'News from Vancouver, BC'
# std_logo_url = 'http://www.theprovince.com/images/logo_theprovince.jpg'
# logo_url = 'vplogo.jpg'
# fp_tag = 'CAN_TP'
# # title = u'Vancouver Province'
# # url_prefix = 'http://www.theprovince.com'
# # description = u'News from Vancouver, BC'
# # std_logo_url = 'http://www.theprovince.com/images/logo_theprovince.jpg'
# # logo_url = 'vplogo.jpg'
# # fp_tag = 'CAN_TP'
# un-comment the following six lines for the Vancouver Sun
title = u'Vancouver Sun'
@ -77,36 +77,36 @@ class CanWestPaper(BasicNewsRecipe):
fp_tag = 'CAN_VS'
# un-comment the following six lines for the Calgary Herald
# title = u'Calgary Herald'
# url_prefix = 'http://www.calgaryherald.com'
# description = u'News from Calgary, AB'
# std_logo_url = 'http://www.calgaryherald.com/images/logo_calgaryherald.jpg'
# logo_url = 'chlogo.jpg'
# fp_tag = 'CAN_CH'
# # title = u'Calgary Herald'
# # url_prefix = 'http://www.calgaryherald.com'
# # description = u'News from Calgary, AB'
# # std_logo_url = 'http://www.calgaryherald.com/images/logo_calgaryherald.jpg'
# # logo_url = 'chlogo.jpg'
# # fp_tag = 'CAN_CH'
# un-comment the following six lines for the Edmonton Journal
# title = u'Edmonton Journal'
# url_prefix = 'http://www.edmontonjournal.com'
# description = u'News from Edmonton, AB'
# std_logo_url = 'http://www.edmontonjournal.com/images/logo_edmontonjournal.jpg'
# logo_url = 'ejlogo.jpg'
# fp_tag = 'CAN_EJ'
# # title = u'Edmonton Journal'
# # url_prefix = 'http://www.edmontonjournal.com'
# # description = u'News from Edmonton, AB'
# # std_logo_url = 'http://www.edmontonjournal.com/images/logo_edmontonjournal.jpg'
# # logo_url = 'ejlogo.jpg'
# # fp_tag = 'CAN_EJ'
# un-comment the following six lines for the Ottawa Citizen
# title = u'Ottawa Citizen'
# url_prefix = 'http://www.ottawacitizen.com'
# description = u'News from Ottawa, ON'
# std_logo_url = 'http://www.ottawacitizen.com/images/logo_ottawacitizen.jpg'
# logo_url = 'oclogo.jpg'
# fp_tag = 'CAN_OC'
# # title = u'Ottawa Citizen'
# # url_prefix = 'http://www.ottawacitizen.com'
# # description = u'News from Ottawa, ON'
# # std_logo_url = 'http://www.ottawacitizen.com/images/logo_ottawacitizen.jpg'
# # logo_url = 'oclogo.jpg'
# # fp_tag = 'CAN_OC'
# un-comment the following six lines for the Montreal Gazette
# title = u'Montreal Gazette'
# url_prefix = 'http://www.montrealgazette.com'
# description = u'News from Montreal, QC'
# std_logo_url = 'http://www.montrealgazette.com/images/logo_montrealgazette.jpg'
# logo_url = 'mglogo.jpg'
# fp_tag = 'CAN_MG'
# # title = u'Montreal Gazette'
# # url_prefix = 'http://www.montrealgazette.com'
# # description = u'News from Montreal, QC'
# # std_logo_url = 'http://www.montrealgazette.com/images/logo_montrealgazette.jpg'
# # logo_url = 'mglogo.jpg'
# # fp_tag = 'CAN_MG'
Kindle_Fire = False
masthead_url = std_logo_url

View File

@ -25,12 +25,12 @@ class WiComix(BasicNewsRecipe):
remove_tags_after = dict(name='article')
remove_tags = [
# dict(name='div', attrs={'class': 'author-meta'}),
# dict(name='div', attrs={'class': 'author-meta'}),
dict(name='div', attrs={'id': 'jp-post-flair'}),
dict(name='footer', attrs={'class': 'entry-meta'})
]
feeds = [
('\u041F\u0443\u0431\u043B\u0438\u043A\u0430\u0446\u0438\u0438', 'https://wicomix.com/feed/')
# ('\u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438', 'https://wicomix.com/comments/feed/')
# ('\u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438', 'https://wicomix.com/comments/feed/')
]

View File

@ -17,14 +17,14 @@ class CanWestPaper(BasicNewsRecipe):
description = u'News from Windsor, ON'
# un-comment the following three lines for the Ottawa Citizen
# title = u'Ottawa Citizen'
# url_prefix = 'http://www.ottawacitizen.com'
# description = u'News from Ottawa, ON'
#
# # title = u'Ottawa Citizen'
# # url_prefix = 'http://www.ottawacitizen.com'
# # description = u'News from Ottawa, ON'
# un-comment the following three lines for the Montreal Gazette
# title = u'Montreal Gazette'
# url_prefix = 'http://www.montrealgazette.com'
# description = u'News from Montreal, QC'
# # title = u'Montreal Gazette'
# # url_prefix = 'http://www.montrealgazette.com'
# # description = u'News from Montreal, QC'
language = 'en_CA'
__author__ = 'Nick Redding'

View File

@ -15,46 +15,46 @@ from calibre.web.feeds.news import BasicNewsRecipe
class CanWestPaper(BasicNewsRecipe):
# un-comment the following four lines for the Victoria Times Colonist
# title = u'Victoria Times Colonist'
# url_prefix = 'http://www.timescolonist.com'
# description = u'News from Victoria, BC'
# fp_tag = 'CAN_TC'
# # title = u'Victoria Times Colonist'
# # url_prefix = 'http://www.timescolonist.com'
# # description = u'News from Victoria, BC'
# # fp_tag = 'CAN_TC'
# un-comment the following four lines for the Vancouver Province
# title = u'Vancouver Province'
# url_prefix = 'http://www.theprovince.com'
# description = u'News from Vancouver, BC'
# fp_tag = 'CAN_VP'
# # title = u'Vancouver Province'
# # url_prefix = 'http://www.theprovince.com'
# # description = u'News from Vancouver, BC'
# # fp_tag = 'CAN_VP'
# un-comment the following four lines for the Vancouver Sun
# title = u'Vancouver Sun'
# url_prefix = 'http://www.vancouversun.com'
# description = u'News from Vancouver, BC'
# fp_tag = 'CAN_VS'
# # title = u'Vancouver Sun'
# # url_prefix = 'http://www.vancouversun.com'
# # description = u'News from Vancouver, BC'
# # fp_tag = 'CAN_VS'
# un-comment the following four lines for the Edmonton Journal
# title = u'Edmonton Journal'
# url_prefix = 'http://www.edmontonjournal.com'
# description = u'News from Edmonton, AB'
# fp_tag = 'CAN_EJ'
# # title = u'Edmonton Journal'
# # url_prefix = 'http://www.edmontonjournal.com'
# # description = u'News from Edmonton, AB'
# # fp_tag = 'CAN_EJ'
# un-comment the following four lines for the Calgary Herald
# title = u'Calgary Herald'
# url_prefix = 'http://www.calgaryherald.com'
# description = u'News from Calgary, AB'
# fp_tag = 'CAN_CH'
# # title = u'Calgary Herald'
# # url_prefix = 'http://www.calgaryherald.com'
# # description = u'News from Calgary, AB'
# # fp_tag = 'CAN_CH'
# un-comment the following four lines for the Regina Leader-Post
# title = u'Regina Leader-Post'
# url_prefix = 'http://www.leaderpost.com'
# description = u'News from Regina, SK'
# fp_tag = ''
# # title = u'Regina Leader-Post'
# # url_prefix = 'http://www.leaderpost.com'
# # description = u'News from Regina, SK'
# # fp_tag = ''
# un-comment the following four lines for the Saskatoon Star-Phoenix
# title = u'Saskatoon Star-Phoenix'
# url_prefix = 'http://www.thestarphoenix.com'
# description = u'News from Saskatoon, SK'
# fp_tag = ''
# # title = u'Saskatoon Star-Phoenix'
# # url_prefix = 'http://www.thestarphoenix.com'
# # description = u'News from Saskatoon, SK'
# # fp_tag = ''
# un-comment the following four lines for the Windsor Star
title = u'Windsor Star'
@ -63,16 +63,16 @@ class CanWestPaper(BasicNewsRecipe):
fp_tag = 'CAN_'
# un-comment the following four lines for the Ottawa Citizen
# title = u'Ottawa Citizen'
# url_prefix = 'http://www.ottawacitizen.com'
# description = u'News from Ottawa, ON'
# fp_tag = 'CAN_OC'
# # title = u'Ottawa Citizen'
# # url_prefix = 'http://www.ottawacitizen.com'
# # description = u'News from Ottawa, ON'
# # fp_tag = 'CAN_OC'
# un-comment the following four lines for the Montreal Gazette
# title = u'Montreal Gazette'
# url_prefix = 'http://www.montrealgazette.com'
# description = u'News from Montreal, QC'
# fp_tag = 'CAN_MG'
# # title = u'Montreal Gazette'
# # url_prefix = 'http://www.montrealgazette.com'
# # description = u'News from Montreal, QC'
# # fp_tag = 'CAN_MG'
language = 'en_CA'
__author__ = 'Nick Redding'

View File

@ -18,7 +18,7 @@ class ZAOBAO(BasicNewsRecipe):
language = 'zh'
encoding = 'gbk'
masthead_url = 'http://www.zaobao.com/ssi/images1/zblogo_original.gif'
# multithreaded_fetch = True
# multithreaded_fetch = True
keep_only_tags = [
dict(name='td', attrs={'class': 'text'}),

View File

@ -28,14 +28,10 @@ class Zerkalo(BasicNewsRecipe):
]
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
#
# 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'),
]

View File

@ -221,10 +221,10 @@ per_language_title_sort_articles = {
'epo': (r'La\s+', r"L'", 'L´'),
# Spanish
'spa': (r'El\s+', r'La\s+', r'Lo\s+', r'Los\s+', r'Las\s+', r'Un\s+',
r'Una\s+', r'Unos\s+', r'Unas\s+'),
r'Una\s+', r'Unos\s+', r'Unas\s+'),
# French
'fra': (r'Le\s+', r'La\s+', r"L'", r'L´', r'L', r'Les\s+', r'Un\s+', r'Une\s+',
r'Des\s+', r'De\s+La\s+', r'De\s+', r"D'", r'D´', r'D'),
r'Des\s+', r'De\s+La\s+', r'De\s+', r"D'", r'D´', r'D'),
# Polish
'pol': (),
# Italian
@ -234,17 +234,17 @@ per_language_title_sort_articles = {
r'Della\s+', r'Dello\s+', r"Dell'", r'Dell´'),
# Portuguese
'por': (r'A\s+', r'O\s+', r'Os\s+', r'As\s+', r'Um\s+', r'Uns\s+',
r'Uma\s+', r'Umas\s+'),
r'Uma\s+', r'Umas\s+'),
# Romanian
'ron': (r'Un\s+', r'O\s+', r'Nişte\s+'),
# German
'deu': (r'Der\s+', r'Die\s+', r'Das\s+', r'Den\s+', r'Ein\s+',
r'Eine\s+', r'Einen\s+', r'Dem\s+', r'Des\s+', r'Einem\s+',
r'Eines\s+'),
r'Eine\s+', r'Einen\s+', r'Dem\s+', r'Des\s+', r'Einem\s+',
r'Eines\s+'),
# Dutch
'nld': (r'De\s+', r'Het\s+', r'Een\s+', r"'n\s+", r"'s\s+", r'Ene\s+',
r'Ener\s+', r'Enes\s+', r'Den\s+', r'Der\s+', r'Des\s+',
r"'t\s+"),
r'Ener\s+', r'Enes\s+', r'Den\s+', r'Der\s+', r'Des\s+',
r"'t\s+"),
# Swedish
'swe': (r'En\s+', r'Ett\s+', r'Det\s+', r'Den\s+', r'De\s+'),
# Turkish
@ -253,7 +253,7 @@ per_language_title_sort_articles = {
'afr': (r"'n\s+", r'Die\s+'),
# Greek
'ell': (r'O\s+', r'I\s+', r'To\s+', r'Ta\s+', r'Tus\s+', r'Tis\s+',
r"'Enas\s+", r"'Mia\s+", r"'Ena\s+", r"'Enan\s+"),
r"'Enas\s+", r"'Mia\s+", r"'Ena\s+", r"'Enan\s+"),
# Hungarian
'hun': (r'A\s+', r'Az\s+', r'Egy\s+'),
}

View File

@ -73,21 +73,21 @@ class SHLock: # {{{
def __init__(self):
self._lock = Lock()
# When a shared lock is held, is_shared will give the cumulative
# number of locks and _shared_owners maps each owning thread to
# the number of locks is holds.
# When a shared lock is held, is_shared will give the cumulative
# number of locks and _shared_owners maps each owning thread to
# the number of locks is holds.
self.is_shared = 0
self._shared_owners = {}
# When an exclusive lock is held, is_exclusive will give the number
# of locks held and _exclusive_owner will give the owning thread
# When an exclusive lock is held, is_exclusive will give the number
# of locks held and _exclusive_owner will give the owning thread
self.is_exclusive = 0
self._exclusive_owner = None
# When someone is forced to wait for a lock, they add themselves
# to one of these queues along with a "waiter" condition that
# is used to wake them up.
# When someone is forced to wait for a lock, they add themselves
# to one of these queues along with a "waiter" condition that
# is used to wake them up.
self._shared_queue = []
self._exclusive_queue = []
# This is for recycling waiter objects.
# This is for recycling waiter objects.
self._free_waiters = []
def acquire(self, blocking=True, shared=False):
@ -111,9 +111,9 @@ class SHLock: # {{{
def release(self):
''' Release the lock. '''
# This decrements the appropriate lock counters, and if the lock
# becomes free, it looks for a queued thread to hand it off to.
# By doing the handoff here we ensure fairness.
# This decrements the appropriate lock counters, and if the lock
# becomes free, it looks for a queued thread to hand it off to.
# By doing the handoff here we ensure fairness.
me = current_thread()
with self._lock:
if self.is_exclusive:
@ -122,16 +122,16 @@ class SHLock: # {{{
self.is_exclusive -= 1
if not self.is_exclusive:
self._exclusive_owner = None
# If there are waiting shared locks, issue them
# all and them wake everyone up.
# If there are waiting shared locks, issue them
# all and them wake everyone up.
if self._shared_queue:
for (thread, waiter) in self._shared_queue:
self.is_shared += 1
self._shared_owners[thread] = 1
waiter.notify()
del self._shared_queue[:]
# Otherwise, if there are waiting exclusive locks,
# they get first dibbs on the lock.
# Otherwise, if there are waiting exclusive locks,
# they get first dibbs on the lock.
elif self._exclusive_queue:
(thread, waiter) = self._exclusive_queue.pop(0)
self._exclusive_owner = thread
@ -146,8 +146,8 @@ class SHLock: # {{{
raise LockingError('release() called on unheld lock')
self.is_shared -= 1
if not self.is_shared:
# If there are waiting exclusive locks,
# they get first dibbs on the lock.
# If there are waiting exclusive locks,
# they get first dibbs on the lock.
if self._exclusive_queue:
(thread, waiter) = self._exclusive_queue.pop(0)
self._exclusive_owner = thread
@ -160,13 +160,13 @@ class SHLock: # {{{
def _acquire_shared(self, blocking=True):
me = current_thread()
# Each case: acquiring a lock we already hold.
# Each case: acquiring a lock we already hold.
if self.is_shared and me in self._shared_owners:
self.is_shared += 1
self._shared_owners[me] += 1
return True
# If the lock is already spoken for by an exclusive, add us
# to the shared queue and it will give us the lock eventually.
# If the lock is already spoken for by an exclusive, add us
# to the shared queue and it will give us the lock eventually.
if self.is_exclusive or self._exclusive_queue:
if self._exclusive_owner is me:
raise DowngradeLockError("can't downgrade SHLock object")
@ -186,7 +186,7 @@ class SHLock: # {{{
def _acquire_exclusive(self, blocking=True):
me = current_thread()
# Each case: acquiring a lock we already hold.
# Each case: acquiring a lock we already hold.
if self._exclusive_owner is me:
assert self.is_exclusive
self.is_exclusive += 1
@ -194,8 +194,8 @@ class SHLock: # {{{
# Do not allow upgrade of lock
if self.is_shared and me in self._shared_owners:
raise LockingError("can't upgrade SHLock object")
# If the lock is already spoken for, add us to the exclusive queue.
# This will eventually give us the lock when it's our turn.
# If the lock is already spoken for, add us to the exclusive queue.
# This will eventually give us the lock when it's our turn.
if self.is_shared or self.is_exclusive:
if not blocking:
return False

View File

@ -791,9 +791,9 @@ class CurrentlyConnectedDevice:
# A device driver can check if a device is currently connected to calibre using
# the following code::
# from calibre.device.interface import currently_connected_device
# if currently_connected_device.device is None:
# # no device connected
# from calibre.device.interface import currently_connected_device
# if currently_connected_device.device is None:
# # no device connected
# The device attribute will be either None or the device driver object
# (DevicePlugin instance) for the currently connected device.
currently_connected_device = CurrentlyConnectedDevice()

View File

@ -90,8 +90,8 @@ class Bookmark: # {{{
debug_print(f"Kobo::Bookmark::get_bookmark_data - getting kepub: chapter opf_reference='{opf_reference}'")
file_contentID_part = file_contentID_part[filename_index + 1:]
debug_print(f"Kobo::Bookmark::get_bookmark_data - getting kepub: chapter file_contentID_part='{file_contentID_part}'")
# from urllib import quote
# file_contentID_part = quote(file_contentID_part)
# from urllib import quote
# file_contentID_part = quote(file_contentID_part)
chapter_contentID = book_contentID_part + '!' + opf_reference + '!' + file_contentID_part
debug_print(f"Kobo::Bookmark::get_bookmark_data - getting kepub chapter chapter_contentID='{chapter_contentID}'")
kepub_chapter = kepub_chapters.get(chapter_contentID, None)
@ -152,7 +152,7 @@ class Bookmark: # {{{
# print(row[1])
cursor.close()
# self.last_read_location = self.last_read - self.pdf_page_offset
# self.last_read_location = self.last_read - self.pdf_page_offset
self.user_notes = user_notes
def get_book_length(self):

View File

@ -21,7 +21,7 @@ class Book(Book_):
def __init__(self, prefix, lpath, title=None, authors=None, mime=None, date=None, ContentType=None,
thumbnail_name=None, size=None, other=None):
from calibre.utils.date import parse_date
# debug_print('Book::__init__ - title=', title)
# debug_print('Book::__init__ - title=', title)
show_debug = title is not None and title.lower().find('xxxxx') >= 0
if other is not None:
other.title = title
@ -308,9 +308,9 @@ class KTCollectionsBookList(CollectionsBookList):
def is_debugging_title(self, title):
if not DEBUG:
return False
# debug_print("KTCollectionsBookList:is_debugging - title=", title, "self.debugging_title=", self.debugging_title)
# debug_print("KTCollectionsBookList:is_debugging - title=", title, "self.debugging_title=", self.debugging_title)
is_debugging = self.debugging_title is not None and len(self.debugging_title) > 0 and title is not None and (
title.lower().find(self.debugging_title.lower()) >= 0 or len(title) == 0)
# debug_print("KTCollectionsBookList:is_debugging - is_debugging=", is_debugging)
# debug_print("KTCollectionsBookList:is_debugging - is_debugging=", is_debugging)
return is_debugging

View File

@ -422,7 +422,7 @@ class KOBO(USBMS):
changed = False
for row in cursor:
# self.report_progress((i+1) / float(numrows), _('Getting list of books on device...'))
# self.report_progress((i+1) / float(numrows), _('Getting list of books on device...'))
if not hasattr(row['ContentID'], 'startswith') or row['ContentID'].startswith('file:///usr/local/Kobo/help/'):
# These are internal to the Kobo device and do not exist
continue
@ -466,21 +466,21 @@ class KOBO(USBMS):
return bl
def filename_callback(self, path, mi):
# debug_print("Kobo:filename_callback:Path - {0}".format(path))
# debug_print("Kobo:filename_callback:Path - {0}".format(path))
idx = path.rfind('.')
ext = path[idx:]
if ext == KEPUB_EXT:
path = path + EPUB_EXT
# debug_print("Kobo:filename_callback:New path - {0}".format(path))
# debug_print("Kobo:filename_callback:New path - {0}".format(path))
return path
def delete_via_sql(self, ContentID, ContentType):
# Delete Order:
# 1) shortcover_page
# 2) volume_shorcover
# 2) content
# 1) shortcover_page
# 2) volume_shorcover
# 2) content
debug_print('delete_via_sql: ContentID: ', ContentID, 'ContentType: ', ContentType)
with closing(self.device_database_connection()) as connection:
@ -915,14 +915,14 @@ class KOBO(USBMS):
'Preview':6,
'Recommendation':4,
}
# debug_print('Starting update_device_database_collections', collections_attributes)
# debug_print('Starting update_device_database_collections', collections_attributes)
# Force collections_attributes to be 'tags' as no other is currently supported
# debug_print('KOBO: overriding the provided collections_attributes:', collections_attributes)
# debug_print('KOBO: overriding the provided collections_attributes:', collections_attributes)
collections_attributes = ['tags']
collections = booklists.get_collections(collections_attributes)
# debug_print('Kobo:update_device_database_collections - Collections:', collections)
# debug_print('Kobo:update_device_database_collections - Collections:', collections)
# Create a connection to the sqlite database
# Needs to be outside books collection as in the case of removing
@ -970,7 +970,7 @@ class KOBO(USBMS):
debug_print('No Collections - resetting FavouritesIndex')
self.reset_favouritesindex(connection, oncard)
# debug_print('Finished update_device_database_collections', collections_attributes)
# debug_print('Finished update_device_database_collections', collections_attributes)
def get_collections_attributes(self):
collections = [x.lower().strip() for x in self.collections_columns.split(',')]
@ -999,7 +999,7 @@ class KOBO(USBMS):
def sync_booklists(self, booklists, end_session=True):
debug_print('KOBO:sync_booklists - start')
paths = self.get_device_paths()
# debug_print('KOBO:sync_booklists - booklists:', booklists)
# debug_print('KOBO:sync_booklists - booklists:', booklists)
blists = {}
for i in paths:
@ -1073,7 +1073,7 @@ class KOBO(USBMS):
cursor.execute('select ImageId from Content where BookID is Null and ContentID = ?', t)
try:
result = next(cursor)
# debug_print("ImageId: ", result[0])
# debug_print("ImageId: ", result[0])
ImageID = result[0]
except StopIteration:
debug_print('No rows exist in the database - cannot upload')
@ -1129,7 +1129,7 @@ class KOBO(USBMS):
with closing(open(path, 'rb')) as r:
tf = PersistentTemporaryFile(suffix='.epub')
shutil.copyfileobj(r, tf)
# tf.write(r.read())
# tf.write(r.read())
paths[idx] = tf.name
return paths
@ -1385,8 +1385,8 @@ class KOBO(USBMS):
# NOTE: As it is, this copied the book from the device back to the library. That meant it replaced the
# existing file. Taking this out for that reason, but some books have a ANNOT file that could be
# copied.
# db.add_format_with_hooks(db_id, bm.value.bookmark_extension,
# bm.value.path, index_is_id=True)
# db.add_format_with_hooks(db_id, bm.value.bookmark_extension,
# bm.value.path, index_is_id=True)
class KOBOTOUCH(KOBO):
@ -1402,7 +1402,7 @@ class KOBOTOUCH(KOBO):
' as well as tolino shine 5, shine color and'
' vision color eReaders.'
' Based on the existing Kobo driver by %s.') % KOBO.author
# icon = 'devices/kobotouch.jpg'
# icon = 'devices/kobotouch.jpg'
supported_dbversion = 190
min_supported_dbversion = 53
@ -1586,14 +1586,14 @@ class KOBOTOUCH(KOBO):
'': [(1264,1680), 0, 200,True,],
}
# Following are the sizes used with pre2.1.4 firmware
# COVER_FILE_ENDINGS = {
# ' - N3_LIBRARY_FULL.parsed':[(355,530),0, 99,], # Used for Details screen
# ' - N3_LIBRARY_FULL.parsed':[(600,800),0, 99,],
# ' - N3_LIBRARY_GRID.parsed':[(149,223),0, 99,], # Used for library lists
# ' - N3_LIBRARY_LIST.parsed':[(60,90),0, 53,],
# ' - N3_LIBRARY_SHELF.parsed': [(40,60),0, 52,],
# ' - N3_FULL.parsed':[(600,800),0, 99,], # Used for screensaver if "Full screen" is checked.
# }
# COVER_FILE_ENDINGS = {
# ' - N3_LIBRARY_FULL.parsed':[(355,530),0, 99,], # Used for Details screen
# ' - N3_LIBRARY_FULL.parsed':[(600,800),0, 99,],
# ' - N3_LIBRARY_GRID.parsed':[(149,223),0, 99,], # Used for library lists
# ' - N3_LIBRARY_LIST.parsed':[(60,90),0, 53,],
# ' - N3_LIBRARY_SHELF.parsed': [(40,60),0, 52,],
# ' - N3_FULL.parsed':[(600,800),0, 99,], # Used for screensaver if "Full screen" is checked.
# }
def __init__(self, *args, **kwargs):
KOBO.__init__(self, *args, **kwargs)
@ -1737,7 +1737,7 @@ class KOBOTOUCH(KOBO):
userid, bookshelves, book_stats=None
):
show_debug = self.is_debugging_title(title)
# show_debug = authors == 'L. Frank Baum'
# show_debug = authors == 'L. Frank Baum'
if show_debug:
debug_print("KoboTouch:update_booklist - title='%s'"%title, 'ContentType=%s'%ContentType, 'isdownloaded=', isdownloaded)
debug_print(
@ -1749,7 +1749,7 @@ class KOBOTOUCH(KOBO):
if lpath.startswith(os.sep):
lpath = lpath[len(os.sep):]
lpath = lpath.replace('\\', '/')
# debug_print("KoboTouch:update_booklist - LPATH: ", lpath, " - Title: " , title)
# debug_print("KoboTouch:update_booklist - LPATH: ", lpath, " - Title: " , title)
playlist_map = {}
@ -1896,7 +1896,7 @@ class KOBOTOUCH(KOBO):
if show_debug:
debug_print('KoboTouch:update_booklist - updated bl[idx].device_collections=', bl[idx].device_collections)
debug_print('KoboTouch:update_booklist - playlist_map=', playlist_map, 'changed=', changed)
# debug_print('KoboTouch:update_booklist - book=', bl[idx])
# debug_print('KoboTouch:update_booklist - book=', bl[idx])
debug_print('KoboTouch:update_booklist - book class=%s'%bl[idx].__class__)
debug_print('KoboTouch:update_booklist - book title=%s'%bl[idx].title)
else:
@ -1921,7 +1921,7 @@ class KOBOTOUCH(KOBO):
if show_debug:
debug_print('KoboTouch:update_booklist - class:', book.__class__)
# debug_print(' resolution:', book.__class__.__mro__)
# debug_print(' resolution:', book.__class__.__mro__)
debug_print(" contentid: '%s'"%book.contentID)
debug_print(" title:'%s'"%book.title)
debug_print(' the book:', book)
@ -1942,7 +1942,7 @@ class KOBOTOUCH(KOBO):
book.kobo_subtitle = Subtitle
book.kobo_bookstats = book_stats
book.can_put_on_shelves = allow_shelves
# debug_print('KoboTouch:update_booklist - title=', title, 'book.device_collections', book.device_collections)
# debug_print('KoboTouch:update_booklist - title=', title, 'book.device_collections', book.device_collections)
if not book.is_sideloaded and book.has_kobo_series and SeriesID is not None:
if show_debug:
@ -1977,7 +1977,7 @@ class KOBOTOUCH(KOBO):
bookshelves.append(row['ShelfName'])
cursor.close()
# debug_print("KoboTouch:get_bookshelvesforbook - count bookshelves=" + str(count_bookshelves))
# debug_print("KoboTouch:get_bookshelvesforbook - count bookshelves=" + str(count_bookshelves))
return bookshelves
self.debug_index = 0
@ -2090,7 +2090,7 @@ class KOBOTOUCH(KOBO):
i = 0
for row in cursor:
i += 1
# self.report_progress((i) / float(books_on_device), _('Getting list of books on device...'))
# self.report_progress((i) / float(books_on_device), _('Getting list of books on device...'))
show_debug = self.is_debugging_title(row['Title'])
if show_debug:
debug_print('KoboTouch:books - looping on database - row=%d' % i)
@ -2286,7 +2286,7 @@ class KOBOTOUCH(KOBO):
self.report_progress(0, 'Working...')
result = super().upload_books(files, names, on_card, end_session, metadata)
# debug_print('KoboTouch:upload_books - result=', result)
# debug_print('KoboTouch:upload_books - result=', result)
if self.dbversion >= 53:
try:
@ -2301,7 +2301,7 @@ class KOBOTOUCH(KOBO):
debug_print('KoboTouch:upload_books: contentID=', contentID)
cleanup_values = (contentID,)
# debug_print('KoboTouch:upload_books: Delete record left if deleted on Touch')
# debug_print('KoboTouch:upload_books: Delete record left if deleted on Touch')
cursor.execute(cleanup_query, cleanup_values)
if self.override_kobo_replace_existing:
@ -2565,7 +2565,7 @@ class KOBOTOUCH(KOBO):
'Preview':6,
'Recommendation':4,
}
# debug_print('KoboTouch:update_device_database_collections - collections_attributes=', collections_attributes)
# debug_print('KoboTouch:update_device_database_collections - collections_attributes=', collections_attributes)
create_collections = self.create_collections
delete_empty_collections = self.delete_empty_collections
@ -2588,7 +2588,7 @@ class KOBOTOUCH(KOBO):
'dbversion': self.dbversion,
}
) if have_bookshelf_attributes else None
# debug_print('KoboTouch:update_device_database_collections - Collections:', collections)
# debug_print('KoboTouch:update_device_database_collections - Collections:', collections)
# Create a connection to the sqlite database
# Needs to be outside books collection as in the case of removing
@ -2610,21 +2610,21 @@ class KOBOTOUCH(KOBO):
debug_print('KoboTouch:update_device_database_collections - calling reset_favouritesindex')
self.reset_favouritesindex(connection, oncard)
# debug_print("KoboTouch:update_device_database_collections - length collections=", len(collections))
# debug_print("KoboTouch:update_device_database_collections - self.bookshelvelist=", self.bookshelvelist)
# debug_print("KoboTouch:update_device_database_collections - length collections=", len(collections))
# debug_print("KoboTouch:update_device_database_collections - self.bookshelvelist=", self.bookshelvelist)
# Process any collections that exist
for category, books in collections.items():
debug_print("KoboTouch:update_device_database_collections - category='%s' books=%d"%(category, len(books)))
if create_collections and not (category in supportedcategories or category in readstatuslist or category in accessibilitylist):
self.check_for_bookshelf(connection, category)
# if category in self.bookshelvelist:
# debug_print("Category: ", category, " id = ", readstatuslist.get(category))
# if category in self.bookshelvelist:
# debug_print("Category: ", category, " id = ", readstatuslist.get(category))
for book in books:
# debug_print(' Title:', book.title, 'category: ', category)
show_debug = self.is_debugging_title(book.title)
if show_debug:
debug_print(' Title="%s"'%book.title, 'category="%s"'%category)
# debug_print(book)
# debug_print(book)
debug_print(' class=%s'%book.__class__)
debug_print(' book.contentID="%s"'%book.contentID)
debug_print(' book.application_id="%s"'%book.application_id)
@ -2761,7 +2761,7 @@ class KOBOTOUCH(KOBO):
if self._card_a_prefix and os.path.abspath(path).startswith(os.path.abspath(self._card_a_prefix)) and not self.supports_covers_on_sdcard():
return
# debug_print('KoboTouch: uploading cover')
# debug_print('KoboTouch: uploading cover')
try:
self._upload_cover(
path, filename, metadata, filepath,
@ -3058,7 +3058,7 @@ class KOBOTOUCH(KOBO):
cursor.close()
# debug_print("KoboTouch:set_filesize_in_device_database - end")
# debug_print("KoboTouch:set_filesize_in_device_database - end")
def delete_empty_bookshelves(self, connection):
debug_print('KoboTouch:delete_empty_bookshelves - start')
@ -3114,7 +3114,7 @@ class KOBOTOUCH(KOBO):
def get_bookshelflist(self, connection):
# Retrieve the list of booksehelves
# debug_print('KoboTouch:get_bookshelflist')
# debug_print('KoboTouch:get_bookshelflist')
bookshelves = []
if not self.supports_bookshelves:
@ -3123,13 +3123,13 @@ class KOBOTOUCH(KOBO):
query = f'SELECT Name FROM Shelf WHERE _IsDeleted = {self.bool_for_query(False)}'
cursor = connection.cursor()
cursor.execute(query)
# count_bookshelves = 0
# count_bookshelves = 0
for row in cursor:
bookshelves.append(row['Name'])
# count_bookshelves = i + 1
# count_bookshelves = i + 1
cursor.close()
# debug_print("KoboTouch:get_bookshelflist - count bookshelves=" + str(count_bookshelves))
# debug_print("KoboTouch:get_bookshelflist - count bookshelves=" + str(count_bookshelves))
return bookshelves
@ -3170,7 +3170,7 @@ class KOBOTOUCH(KOBO):
cursor.close()
# debug_print("KoboTouch:set_bookshelf - end")
# debug_print("KoboTouch:set_bookshelf - end")
def check_for_bookshelf(self, connection, bookshelf_name):
show_debug = self.is_debugging_title(bookshelf_name)
@ -3232,7 +3232,7 @@ class KOBOTOUCH(KOBO):
# Update the bookshelf list.
self.bookshelvelist = self.get_bookshelflist(connection)
# debug_print("KoboTouch:set_bookshelf - end")
# debug_print("KoboTouch:set_bookshelf - end")
def remove_from_bookshelves(self, connection, oncard, ContentID=None, bookshelves=None):
debug_print('KoboTouch:remove_from_bookshelf ContentID=', ContentID)
@ -3550,7 +3550,7 @@ class KOBOTOUCH(KOBO):
''' Get the setting named key. First looks for a device specific setting.
If that is not found looks for a device default and if that is not
found uses the global default.'''
# debug_print("KoboTouch::get_prefs - key=", key, "cls=", cls)
# debug_print("KoboTouch::get_prefs - key=", key, "cls=", cls)
if not cls.opts:
cls.opts = cls.settings()
try:
@ -4199,7 +4199,7 @@ class KOBOTOUCH(KOBO):
def is_debugging_title(self, title):
if not DEBUG:
return False
# debug_print("KoboTouch:is_debugging - title=", title)
# debug_print("KoboTouch:is_debugging - title=", title)
if not self.debugging_title and not self.debugging_title == '':
self.debugging_title = self.get_debugging_title()
@ -4263,16 +4263,16 @@ if __name__ == '__main__':
scanner = DeviceScanner()
scanner.scan()
devs = scanner.devices
# debug_print("unit test: devs.__class__=", devs.__class__)
# debug_print("unit test: devs.__class__=", devs.__class__.__name__)
# debug_print("unit test: devs.__class__=", devs.__class__)
# debug_print("unit test: devs.__class__=", devs.__class__.__name__)
debug_print('unit test: devs=', devs)
debug_print('unit test: dev=', dev)
# cd = dev.detect_managed_devices(devs)
# if cd is None:
# raise ValueError('Failed to detect KOBOTOUCH device')
# cd = dev.detect_managed_devices(devs)
# if cd is None:
# raise ValueError('Failed to detect KOBOTOUCH device')
dev.set_progress_reporter(prints)
# dev.open(cd, None)
# dev.filesystem_cache.dump()
# dev.open(cd, None)
# dev.filesystem_cache.dump()
print('Prefix for main memory:', dev.dbversion)
finally:
dev.shutdown()

View File

@ -515,7 +515,7 @@ class AdvancedGroupBox(DeviceOptionsGroupBox):
def __init__(self, parent, device):
super().__init__(parent, device, _('Advanced options'))
# self.setTitle(_("Advanced Options"))
# self.setTitle(_("Advanced Options"))
self.options_layout = QGridLayout()
self.options_layout.setObjectName('options_layout')
@ -844,9 +844,9 @@ if __name__ == '__main__':
app = Application([])
debug_print('KOBOTOUCH:', KOBOTOUCH)
dev = KOBOTOUCH(None)
# dev.startup()
# cd = dev.detect_managed_devices(s.devices)
# dev.open(cd, 'test')
# dev.startup()
# cd = dev.detect_managed_devices(s.devices)
# dev.open(cd, 'test')
cw = dev.config_widget()
d = QDialog()
d.l = QVBoxLayout()

View File

@ -166,7 +166,7 @@ class ConnectionListener(Thread):
self.driver._debug('unexpected socket exception', x.args[0])
self._close_socket(device_socket)
device_socket = None
# raise
# raise
class SDBook(Book):

View File

@ -19,13 +19,13 @@ XLINK_NS = 'http://www.w3.org/1999/xlink'
_span_pat = re.compile(r'<span.*?</span>', re.DOTALL|re.IGNORECASE)
LIGATURES = {
# 'Æ': 'AE',
# 'æ': 'ae',
# 'Œ': 'OE',
# 'œ': 'oe',
# 'IJ': 'IJ',
# 'ij': 'ij',
# 'ᵫ': 'ue',
# 'Æ': 'AE',
# 'æ': 'ae',
# 'Œ': 'OE',
# 'œ': 'oe',
# 'IJ': 'IJ',
# 'ij': 'ij',
# 'ᵫ': 'ue',
'': 'ff',
'': 'fi',
'': 'fl',
@ -146,9 +146,9 @@ class DocAnalysis:
# print('there are '+str(len(lines))+' lines')
# max = 0
# for line in self.lines:
# l = len(line)
# if l > max:
# max = l
# l = len(line)
# if l > max:
# max = l
# print('max line found is '+str(max))
# Build the line length histogram
hRaw = [0 for i in range(0,buckets)]

View File

@ -115,7 +115,7 @@ class HeuristicProcessor:
tot_htm_ends = len(htm_end)
tot_ln_fds = len(line_end)
# self.log.debug("There are " + str(tot_ln_fds) + " total Line feeds, and " +
# str(tot_htm_ends) + " marked up endings")
# str(tot_htm_ends) + " marked up endings")
if percent > 1:
percent = 1

View File

@ -177,7 +177,7 @@ class TextBlock(etree.XSLTExtension):
self.log.warn('Found deeply nested spans. Flattening.')
# with open('/t/before.xml', 'wb') as f:
# f.write(etree.tostring(node, method='xml'))
# f.write(etree.tostring(node, method='xml'))
spans = [(depth(span), span) for span in node.xpath('descendant::Span')]
spans.sort(key=operator.itemgetter(0), reverse=True)
@ -206,7 +206,7 @@ class TextBlock(etree.XSLTExtension):
gp.insert(pidx+1, child)
# with open('/t/after.xml', 'wb') as f:
# f.write(etree.tostring(node, method='xml'))
# f.write(etree.tostring(node, method='xml'))
def add_text(self, text):
if text:
@ -377,8 +377,8 @@ class Styles(etree.XSLTExtension):
ans['font-weight'] = ('bold' if fw >= 700 else 'normal')
# fn = getattr(obj, 'fontfacename', None)
# if fn is not None:
# fn = cls.FONT_MAP[fn]
# item('font-family: %s;'%fn)
# fn = cls.FONT_MAP[fn]
# item('font-family: %s;'%fn)
fg = self.color(node.get('textcolor', None))
if fg is not None:
ans['color'] = fg
@ -391,7 +391,7 @@ class Styles(etree.XSLTExtension):
ans['text-align'] = all.get(al, 'left')
# lh = self.to_num(node.get('linespace', None), 0.1)
# if lh is not None:
# ans['line-height'] = '%fpt'%lh
# ans['line-height'] = '%fpt'%lh
pi = self.to_num(node.get('parindent', None), 0.1)
if pi is not None:
ans['text-indent'] = '%fpt'%pi

View File

@ -138,7 +138,7 @@ def get_metadata(stream, cover=True):
au = string_to_authors(au)
mi = MetaInformation(title, au)
# if isbn is not None:
# mi.isbn = isbn
# mi.isbn = isbn
creator = info.get('Creator', None)
if creator:

View File

@ -1775,7 +1775,7 @@ def manual_tests(domain, **kw): # {{{
from calibre.ebooks.metadata.sources.test import authors_test, comments_test, isbn_test, series_test, test_identify_plugin, title_test
all_tests = {}
all_tests['com'] = [ # {{{
( # # in title
( # in title
{'title': 'Expert C# 2008 Business Objects',
'authors': ['Lhotka']},
[title_test('Expert C#'),
@ -1970,7 +1970,7 @@ def manual_tests(domain, **kw): # {{{
[title_test('Parting Shot', exact=True),
authors_test(['Mary Calmes'])]
),
( # # in title
( # in title
{'title': 'Expert C# 2008 Business Objects',
'authors': ['Lhotka']},
[title_test('Expert C# 2008 Business Objects'),

View File

@ -108,7 +108,7 @@ class EXTHHeader: # {{{
except Exception:
pass
# else:
# print('unknown record', idx, repr(content))
# print('unknown record', idx, repr(content))
if title:
self.mi.title = replace_entities(clean_xml_chars(clean_ascii_chars(title)))
@ -184,7 +184,7 @@ class EXTHHeader: # {{{
if self.kf8_header == NULL_INDEX:
self.kf8_header = None
# else:
# print('unhandled metadata record', idx, repr(content))
# print('unhandled metadata record', idx, repr(content))
# }}}

View File

@ -140,7 +140,7 @@ class CoverManager:
self.log.warning('Failed to read cover dimensions')
width, height = 600, 800
# if self.preserve_aspect_ratio:
# width, height = 600, 800
# width, height = 600, 800
self.svg_template = self.svg_template.replace('__viewbox__',
'0 0 %d %d'%(width, height))
self.svg_template = self.svg_template.replace('__width__',

View File

@ -199,7 +199,7 @@ class Text(Element):
self.font = {}
self.font_size = 0.0
self.font_size_em = 0.0
# self.color = 0
# self.color = 0
text.tail = ''
self.text_as_string = etree.tostring(text, method='text', encoding='unicode')
@ -373,9 +373,9 @@ class Text(Element):
self.raw = matchObj.group(1)+matchObj.group(3)+m2+matchObj.group(4)+m5+matchObj.group(6)
# This needs more work
# if sub_super < 0:
# other.raw = '<sup>' + other.raw + '</sup>'
# other.raw = '<sup>' + other.raw + '</sup>'
# elif sub_super > 0:
# other.raw = '<sub>' + other.raw + '</sub>'
# other.raw = '<sub>' + other.raw + '</sub>'
if has_float:
self.raw += has_float
@ -413,7 +413,7 @@ class Paragraph(Text):
else:
self.font = {}
self.font_size = 0
# self.color = 0
# self.color = 0
text.tail = ''
self.text_as_string = etree.tostring(text, method='text',
@ -1106,8 +1106,8 @@ class Page:
t = self.texts[0]
# match = self.find_match(t)
# while match is not None:
# self.texts.remove(match)
# match = self.find_match(t)
# self.texts.remove(match)
# match = self.find_match(t)
self.texts.remove(t)
if len(opts.pdf_footer_regex) > 0 \
@ -1121,8 +1121,8 @@ class Page:
t = self.texts[-1]
# match = self.find_match(t)
# while match is not None:
# self.texts.remove(match)
# match = self.find_match(t)
# self.texts.remove(match)
# match = self.find_match(t)
self.texts.remove(t)
def create_page_format(self, stats, opts):
@ -1343,7 +1343,7 @@ class Page:
# self.elements = list(self.texts)
# for img in page.xpath('descendant::img'):
# self.elements.append(Image(img, self.opts, self.log, idc))
# self.elements.append(Image(img, self.opts, self.log, idc))
# self.elements.sort(cmp=lambda x,y:cmp(x.top, y.top))
return
@ -1802,7 +1802,7 @@ class PDFDocument:
break # Short page
t = page.texts[head_ind].text_as_string
# if len(page.texts) > 1 and page.texts[0].top == page.texts[1].top:
# t += ' ' + page.texts[1].text_as_string
# t += ' ' + page.texts[1].text_as_string
if len(head_text[head_ind]) == 0:
head_text[head_ind] = t
else:
@ -1835,7 +1835,7 @@ class PDFDocument:
break # Short page
t = page.texts[-foot_ind-1].text_as_string
# if len(page.texts) > 1 and page.texts[-1].top == page.texts[-2].top:
# t += ' ' + page.texts[-2].text_as_string
# t += ' ' + page.texts[-2].text_as_string
if len(foot_text[foot_ind]) == 0:
foot_text[foot_ind] = t
else:

View File

@ -356,7 +356,7 @@ class PMLMLizer:
text += self.close_tags(tags)
# if tag in SEPARATE_TAGS:
# text.append('\n\n')
# text.append('\n\n')
if style['page-break-after'] == 'always':
text.append(r'\p')

View File

@ -188,7 +188,7 @@ class Document:
if append:
parent.append(sibling)
# if output is not None:
# output.append(best_elem)
# output.append(best_elem)
return output.find('body')
def select_best_candidate(self, candidates):
@ -208,7 +208,7 @@ class Document:
for i in elem.findall('.//a'):
link_length += text_length(i)
# if len(elem.findall(".//div") or elem.findall(".//p")):
# link_length = link_length
# link_length = link_length
total_length = text_length(elem)
return float(link_length) / max(total_length, 1)
@ -243,7 +243,7 @@ class Document:
content_score += len(inner_text.split(','))
content_score += min((inner_text_len / 100), 3)
# if elem not in candidates:
# candidates[elem] = self.score_node(elem)
# candidates[elem] = self.score_node(elem)
# WTF? candidates[elem]['content_score'] += content_score
candidates[parent_node]['content_score'] += content_score
@ -384,16 +384,16 @@ class Document:
else:
content_score = 0
# if parent_node is not None:
# pweight = self.class_weight(parent_node) + content_score
# pname = describe(parent_node)
# pweight = self.class_weight(parent_node) + content_score
# pname = describe(parent_node)
# else:
# pweight = 0
# pname = "no parent"
# pweight = 0
# pname = "no parent"
to_remove = False
reason = ''
# if el.tag == 'div' and counts["img"] >= 1:
# continue
# continue
if counts['p'] and counts['img'] > counts['p']:
reason = 'too many images (%s)' % counts['img']
to_remove = True
@ -415,24 +415,24 @@ class Document:
elif (counts['embed'] == 1 and content_length < 75) or counts['embed'] > 1:
reason = '<embed>s with too short content length, or too many <embed>s'
to_remove = True
# if el.tag == 'div' and counts['img'] >= 1 and to_remove:
# imgs = el.findall('.//img')
# valid_img = False
# self.debug(tounicode(el))
# for img in imgs:
#
# height = img.get('height')
# text_length = img.get('text_length')
# self.debug ("height %s text_length %s" %(repr(height), repr(text_length)))
# if to_int(height) >= 100 or to_int(text_length) >= 100:
# valid_img = True
# self.debug("valid image" + tounicode(img))
# break
# if valid_img:
# to_remove = False
# self.debug("Allowing %s" %el.text_content())
# for desnode in self.tags(el, "table", "ul", "div"):
# allowed[desnode] = True
# if el.tag == 'div' and counts['img'] >= 1 and to_remove:
# imgs = el.findall('.//img')
# valid_img = False
# self.debug(tounicode(el))
# for img in imgs:
#
# height = img.get('height')
# text_length = img.get('text_length')
# self.debug ("height %s text_length %s" %(repr(height), repr(text_length)))
# if to_int(height) >= 100 or to_int(text_length) >= 100:
# valid_img = True
# self.debug("valid image" + tounicode(img))
# break
# if valid_img:
# to_remove = False
# self.debug("Allowing %s" %el.text_content())
# for desnode in self.tags(el, "table", "ul", "div"):
# allowed[desnode] = True
# find x non empty preceding and succeeding siblings
i, j = 0, 0

View File

@ -188,7 +188,7 @@ class Hex2Utf8:
self.__dingbats_dict.update(ms_dingbats_dict)
# load dictionary for caps, and make a string for the replacement
self.__caps_uni_dict = char_map_obj.get_char_map(map='caps_uni')
# # print(self.__caps_uni_dict)
# print(self.__caps_uni_dict)
# don't think I'll need this
# keys = self.__caps_uni_dict.keys()
# self.__caps_uni_replace = '|'.join(keys)

View File

@ -371,9 +371,9 @@ class MakeLists:
% (id)
)
# sys.stderr.write(repr(self.__list_of_lists))
# if self.__run_level > 3:
# msg = 'level is "%s"\n' % self.__run_level
# self.__bug_handler
# if self.__run_level > 3:
# msg = 'level is "%s"\n' % self.__run_level
# self.__bug_handler
def __write_start_item(self):
self.__write_obj.write('mi<mk<item_start\n')

View File

@ -34,15 +34,15 @@ class ParseOptions:
def __init__(self, system_string, options_dict):
self.__system_string = system_string[1:]
long_list = self.__make_long_list_func(options_dict)
# # print(long_list)
# print(long_list)
short_list = self.__make_short_list_func(options_dict)
# # print(short_list)
# print(short_list)
self.__legal_options = long_list + short_list
# # print(self.__legal_options)
# print(self.__legal_options)
self.__short_long_dict = self.__make_short_long_dict_func(options_dict)
# # print(self.__short_long_dict)
# print(self.__short_long_dict)
self.__opt_with_args = self.__make_options_with_arg_list(options_dict)
# # print(self.__opt_with_args)
# print(self.__opt_with_args)
self.__options_okay = 1
def __make_long_list_func(self, options_dict):
@ -256,16 +256,16 @@ class ParseOptions:
def parse_options(self):
self.__system_string = self.__sub_short_with_long()
# # print('subbed list is %s' % self.__system_string)
# print('subbed list is %s' % self.__system_string)
self.__system_string = self.__pair_arg_with_option()
# # print('list with pairing is %s' % self.__system_string)
# print('list with pairing is %s' % self.__system_string)
options, arguments = self.__get_just_options()
# # print('options are %s ' % options)
# # print('arguments are %s ' % arguments)
# print('options are %s ' % options)
# print('arguments are %s ' % arguments)
self.__is_legal_option_func()
if self.__options_okay:
options_dict = self.__make_options_dict(options)
# # print(options_dict)
# print(options_dict)
return options_dict, arguments
else:
return 0,0

View File

@ -285,7 +285,7 @@ class Sections:
my_string += f'<{key}>{self.__section_values[key]}'
my_string += '\n'
my_string += self.__mark_end
# # my_string += line
# my_string += line
if self.__state == 'body':
self.__write_obj.write(my_string)
elif self.__state == 'sec_in_field':

View File

@ -127,8 +127,8 @@ class SNBFile:
return False
if self.rev80 != SNBFile.REV80:
return False
# if self.revA3 != SNBFile.REVA3:
# return False
# if self.revA3 != SNBFile.REVA3:
# return False
if self.revZ1 != SNBFile.REVZ1:
return False
if self.revZ2 != SNBFile.REVZ2:

View File

@ -57,7 +57,7 @@ CALIBRE_SNB_PRE_TAG = '<$$calibre_snb_pre_tag$$>'
class SNBMLizer:
curSubItem = ''
# curText = [ ]
# curText = [ ]
def __init__(self, log):
self.log = log
@ -86,7 +86,7 @@ class SNBMLizer:
output = ['']
stylizer = Stylizer(self.item.data, self.item.href, self.oeb_book, self.opts, self.opts.output_profile)
content = etree.tostring(self.item.data.find(XHTML('body')), encoding='unicode')
# content = self.remove_newlines(content)
# content = self.remove_newlines(content)
trees = {}
for subitem, subtitle in self.subitems:
snbcTree = etree.Element('snbc')

View File

@ -1521,8 +1521,7 @@ class Editor(QWidget): # {{{
self.editor.html = v
def change_tab(self, index):
# print('reloading:', (index and self.wyswyg_dirty) or (not index and
# self.source_dirty))
# print('reloading:', (index and self.wyswyg_dirty) or (not index and self.source_dirty))
if index == 1: # changing to code view
if self.wyswyg_dirty:
self.code_edit.setPlainText(self.editor.html)

View File

@ -89,7 +89,7 @@ class TabbedDeviceConfig(QTabWidget):
self.all_formats = set(self.all_formats) | set(BOOK_EXTENSIONS)
self.base = QWidget(self)
# self.insertTab(0, self.base, _('Configure %s') % self.device.current_friendly_name)
# self.insertTab(0, self.base, _('Configure %s') % self.device.current_friendly_name)
self.insertTab(0, self.base, _('File formats'))
l = self.base.l = QGridLayout(self.base)
self.base.setLayout(l)
@ -392,9 +392,9 @@ if __name__ == '__main__':
app = Application([])
dev = KOBO(None)
debug_print('KOBO:', KOBO)
# dev.startup()
# cd = dev.detect_managed_devices(s.devices)
# dev.open(cd, 'test')
# dev.startup()
# cd = dev.detect_managed_devices(s.devices)
# dev.open(cd, 'test')
cw = dev.config_widget()
d = QDialog()
d.l = QVBoxLayout()

View File

@ -1127,8 +1127,8 @@ class BooksModel(QAbstractTableModel): # {{{
cname = self.column_map[index.column()]
return self.styled_columns.get(cname)
# elif role == Qt.ItemDataRole.ToolTipRole and index.isValid():
# if self.column_map[index.column()] in self.editable_cols:
# return (_("Double click to <b>edit</b> me<br><br>"))
# if self.column_map[index.column()] in self.editable_cols:
# return (_("Double click to <b>edit</b> me<br><br>"))
return None
def headerData(self, section, orientation, role):

View File

@ -71,5 +71,5 @@ class BeamEBooksDEStore(BasicStoreConfig, StorePlugin):
s.price = price
s.drm = SearchResult.DRM_UNLOCKED
s.detail_item = id_
# s.formats = None
# s.formats = None
yield s

View File

@ -78,9 +78,9 @@ class EmpikStore(BasicStoreConfig, StorePlugin):
price = ''.join(data.xpath('.//div[@class="price ta-price-tile "]/text()'))
# with closing(br.open('https://empik.com' + id.strip(), timeout=timeout/4)) as nf:
# idata = html.fromstring(nf.read())
# crawled = idata.xpath('.//a[(@class="chosen hrefstyle") or (@class="connectionsLink hrefstyle")]/text()')
# formats = ','.join([re.sub(r'ebook, ','', x.strip()) for x in crawled if 'ebook' in x])
# idata = html.fromstring(nf.read())
# crawled = idata.xpath('.//a[(@class="chosen hrefstyle") or (@class="connectionsLink hrefstyle")]/text()')
# formats = ','.join([re.sub(r'ebook, ','', x.strip()) for x in crawled if 'ebook' in x])
counter -= 1

View File

@ -56,7 +56,7 @@ def convert_single_ebook(parent, db, book_ids, auto_conversion=False, # {{{
if result == QDialog.DialogCode.Accepted:
# if not convert_existing(parent, db, [book_id], d.output_format):
# continue
# continue
mi = db.get_metadata(book_id, True)
in_file = PersistentTemporaryFile('.'+d.input_format)

View File

@ -822,10 +822,10 @@ ALTER TABLE books ADD COLUMN isbn TEXT DEFAULT "" COLLATE NOCASE;
func(self.conn)
def close(self):
# global _lock_file
# _lock_file.close()
# os.unlink(_lock_file.name)
# _lock_file = None
# global _lock_file
# _lock_file.close()
# os.unlink(_lock_file.name)
# _lock_file = None
self.conn.close()
@property

View File

@ -99,7 +99,7 @@ def generate():
output = struct.pack('Iiiiiii',
0x950412de, # Magic
0, # Version
len(keys), # # of entries
len(keys), # of entries
7*4, # start of key index
7*4+len(keys)*8, # start of value index
0, 0) # size and offset of hash table

View File

@ -38,9 +38,9 @@ class AllIpAddressesGetter(Thread):
def run(self):
global _all_ip_addresses
# print('sleeping')
# time.sleep(15)
# print('slept')
# print('sleeping')
# time.sleep(15)
# print('slept')
_all_ip_addresses = self.get_all_ips()

View File

@ -424,8 +424,8 @@ class SearchQueryParser:
# return self.universal_set().difference(self.evaluate(argument[0]))
return candidates.difference(self.evaluate(argument[0], candidates))
# def evaluate_parenthesis(self, argument, candidates):
# return self.evaluate(argument[0], candidates)
# def evaluate_parenthesis(self, argument, candidates):
# return self.evaluate(argument[0], candidates)
def _check_saved_search_recursion(self, query):
if query.startswith('='):

View File

@ -1068,10 +1068,10 @@ class ZipFile:
zd = _ZipDecrypter(pwd)
# The first 12 bytes in the cypher stream is an encryption header
# used to strengthen the algorithm. The first 11 bytes are
# completely random, while the 12th contains the MSB of the CRC,
# or the MSB of the file time depending on the header type
# and is used to check the correctness of the password.
# used to strengthen the algorithm. The first 11 bytes are
# completely random, while the 12th contains the MSB of the CRC,
# or the MSB of the file time depending on the header type
# and is used to check the correctness of the password.
byts = zef_file.read(12)
h = list(map(zd, bytearray(byts[0:12])))
if zinfo.flag_bits & 0x8:

View File

@ -104,7 +104,7 @@ Has content : %s
def is_same_as(self, other_article):
# if self.title != getattr(other_article, 'title', False):
# return False
# return False
if self.url:
return self.url == getattr(other_article, 'url', False)
return self.content == getattr(other_article, 'content', False)

View File

@ -52,28 +52,28 @@ def Title(**args):
# these elements
# def Contributor(**args):
# return Element(qname = (DCNS,'contributor'), **args)
# return Element(qname = (DCNS,'contributor'), **args)
# def Coverage(**args):
# return Element(qname = (DCNS,'coverage'), **args)
# return Element(qname = (DCNS,'coverage'), **args)
# def Format(**args):
# return Element(qname = (DCNS,'format'), **args)
# return Element(qname = (DCNS,'format'), **args)
# def Identifier(**args):
# return Element(qname = (DCNS,'identifier'), **args)
# return Element(qname = (DCNS,'identifier'), **args)
# def Publisher(**args):
# return Element(qname = (DCNS,'publisher'), **args)
# return Element(qname = (DCNS,'publisher'), **args)
# def Relation(**args):
# return Element(qname = (DCNS,'relation'), **args)
# return Element(qname = (DCNS,'relation'), **args)
# def Rights(**args):
# return Element(qname = (DCNS,'rights'), **args)
# return Element(qname = (DCNS,'rights'), **args)
# def Source(**args):
# return Element(qname = (DCNS,'source'), **args)
# return Element(qname = (DCNS,'source'), **args)
# def Type(**args):
# return Element(qname = (DCNS,'type'), **args)
# return Element(qname = (DCNS,'type'), **args)

File diff suppressed because it is too large Load Diff

View File

@ -424,22 +424,22 @@ class ODF2XHTML(handler.ContentHandler):
(OFFICENS, 'scripts'):(self.s_ignorexml, None),
(OFFICENS, 'settings'):(self.s_ignorexml, None),
(PRESENTATIONNS, 'notes'):(self.s_ignorexml, None),
# (STYLENS, "default-page-layout"):(self.s_style_default_page_layout, self.e_style_page_layout),
# (STYLENS, "default-page-layout"):(self.s_style_default_page_layout, self.e_style_page_layout),
(STYLENS, 'default-page-layout'):(self.s_ignorexml, None),
(STYLENS, 'default-style'):(self.s_style_default_style, self.e_style_default_style),
(STYLENS, 'drawing-page-properties'):(self.s_style_handle_properties, None),
(STYLENS, 'font-face'):(self.s_style_font_face, None),
# (STYLENS, "footer"):(self.s_style_footer, self.e_style_footer),
# (STYLENS, "footer-style"):(self.s_style_footer_style, None),
# (STYLENS, "footer"):(self.s_style_footer, self.e_style_footer),
# (STYLENS, "footer-style"):(self.s_style_footer_style, None),
(STYLENS, 'graphic-properties'):(self.s_style_handle_properties, None),
(STYLENS, 'handout-master'):(self.s_ignorexml, None),
# (STYLENS, "header"):(self.s_style_header, self.e_style_header),
# (STYLENS, "header-footer-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "header-style"):(self.s_style_header_style, None),
# (STYLENS, "header"):(self.s_style_header, self.e_style_header),
# (STYLENS, "header-footer-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "header-style"):(self.s_style_header_style, None),
(STYLENS, 'master-page'):(self.s_style_master_page, None),
(STYLENS, 'page-layout-properties'):(self.s_style_handle_properties, None),
(STYLENS, 'page-layout'):(self.s_style_page_layout, self.e_style_page_layout),
# (STYLENS, "page-layout"):(self.s_ignorexml, None),
# (STYLENS, "page-layout"):(self.s_ignorexml, None),
(STYLENS, 'paragraph-properties'):(self.s_style_handle_properties, None),
(STYLENS, 'style'):(self.s_style_style, self.e_style_style),
(STYLENS, 'table-cell-properties'):(self.s_style_handle_properties, None),
@ -792,10 +792,10 @@ class ODF2XHTML(handler.ContentHandler):
return # Added by Kovid
objhref = attrs[(XLINKNS,'href')]
# Remove leading "./": from "./Object 1" to "Object 1"
# objhref = objhref [2:]
# objhref = objhref [2:]
# Not using os.path.join since it fails to find the file on Windows.
# objcontentpath = '/'.join([objhref, 'content.xml'])
# objcontentpath = '/'.join([objhref, 'content.xml'])
for c in self.document.childnodes:
if c.folder == objhref:
@ -839,7 +839,7 @@ class ODF2XHTML(handler.ContentHandler):
if (FONS,'min-height') in attrs:
style = style + 'min-height:' + attrs[(FONS,'min-height')] + ';'
self.opentag('div')
# self.opentag('div', {'style': style})
# self.opentag('div', {'style': style})
def e_draw_textbox(self, tag, attrs):
''' End the <draw:text-box>
@ -937,11 +937,11 @@ dl.notes dd:last-of-type { page-break-after: avoid }
self.opentag('dl', {'class':'notes'})
for key in range(1,self.currentnote+1):
note = self.notedict[key]
# for key,note in self.notedict.items():
# for key,note in self.notedict.items():
self.opentag('dt', {'id':f'footnote-{key}'})
# self.opentag('sup')
# self.writeout(escape(note['citation']))
# self.closetag('sup', False)
# self.opentag('sup')
# self.writeout(escape(note['citation']))
# self.closetag('sup', False)
self.writeout('[')
self.opentag('a', {'href': f'#citation-{key}'})
self.writeout(f'{key}')
@ -1030,7 +1030,7 @@ dl.notes dd:last-of-type { page-break-after: avoid }
family = attrs[(STYLENS,'family')]
htmlfamily = self.familymap.get(family,'unknown')
self.currentstyle = htmlfamily
# self.stylestack.append(self.currentstyle)
# self.stylestack.append(self.currentstyle)
self.styledict[self.currentstyle] = {}
def e_style_default_style(self, tag, attrs):
@ -1475,7 +1475,7 @@ dl.notes dd:last-of-type { page-break-after: avoid }
'class': 'citation',
'id':f'citation-{self.currentnote}',
})
# self.writeout( escape(mark) )
# self.writeout( escape(mark) )
# Since HTML only knows about endnotes, there is too much risk that the
# marker is reused in the source. Therefore we force numeric markers
self.writeout(str(self.currentnote))
@ -1672,11 +1672,11 @@ class ODF2XHTMLembedded(ODF2XHTML):
# Tags
self.generate_css = generate_css
self.elements = {
# (DCNS, 'title'): (self.s_processcont, self.e_dc_title),
# (DCNS, 'language'): (self.s_processcont, self.e_dc_contentlanguage),
# (DCNS, 'creator'): (self.s_processcont, self.e_dc_metatag),
# (DCNS, 'description'): (self.s_processcont, self.e_dc_metatag),
# (DCNS, 'date'): (self.s_processcont, self.e_dc_metatag),
# (DCNS, 'title'): (self.s_processcont, self.e_dc_title),
# (DCNS, 'language'): (self.s_processcont, self.e_dc_contentlanguage),
# (DCNS, 'creator'): (self.s_processcont, self.e_dc_metatag),
# (DCNS, 'description'): (self.s_processcont, self.e_dc_metatag),
# (DCNS, 'date'): (self.s_processcont, self.e_dc_metatag),
(DRAWNS, 'frame'): (self.s_draw_frame, self.e_draw_frame),
(DRAWNS, 'image'): (self.s_draw_image, None),
(DRAWNS, 'fill-image'): (self.s_draw_fill_image, None),
@ -1685,48 +1685,48 @@ class ODF2XHTMLembedded(ODF2XHTML):
(DRAWNS, 'object'): (self.s_draw_object, None),
(DRAWNS, 'object-ole'): (self.s_draw_object_ole, None),
(DRAWNS, 'text-box'): (self.s_draw_textbox, self.e_draw_textbox),
# (METANS, 'creation-date'):(self.s_processcont, self.e_dc_metatag),
# (METANS, 'generator'):(self.s_processcont, self.e_dc_metatag),
# (METANS, 'initial-creator'): (self.s_processcont, self.e_dc_metatag),
# (METANS, 'keyword'): (self.s_processcont, self.e_dc_metatag),
# (METANS, 'creation-date'):(self.s_processcont, self.e_dc_metatag),
# (METANS, 'generator'):(self.s_processcont, self.e_dc_metatag),
# (METANS, 'initial-creator'): (self.s_processcont, self.e_dc_metatag),
# (METANS, 'keyword'): (self.s_processcont, self.e_dc_metatag),
(NUMBERNS, 'boolean-style'):(self.s_ignorexml, None),
(NUMBERNS, 'currency-style'):(self.s_ignorexml, None),
(NUMBERNS, 'date-style'):(self.s_ignorexml, None),
(NUMBERNS, 'number-style'):(self.s_ignorexml, None),
(NUMBERNS, 'text-style'):(self.s_ignorexml, None),
# (OFFICENS, "automatic-styles"):(self.s_office_automatic_styles, None),
# (OFFICENS, "document-content"):(self.s_office_document_content, self.e_office_document_content),
# (OFFICENS, "automatic-styles"):(self.s_office_automatic_styles, None),
# (OFFICENS, "document-content"):(self.s_office_document_content, self.e_office_document_content),
(OFFICENS, 'forms'):(self.s_ignorexml, None),
# (OFFICENS, "master-styles"):(self.s_office_master_styles, None),
# (OFFICENS, "master-styles"):(self.s_office_master_styles, None),
(OFFICENS, 'meta'):(self.s_ignorecont, None),
# (OFFICENS, "presentation"):(self.s_office_presentation, self.e_office_presentation),
# (OFFICENS, "spreadsheet"):(self.s_office_spreadsheet, self.e_office_spreadsheet),
# (OFFICENS, "styles"):(self.s_office_styles, None),
# (OFFICENS, "text"):(self.s_office_text, self.e_office_text),
# (OFFICENS, "presentation"):(self.s_office_presentation, self.e_office_presentation),
# (OFFICENS, "spreadsheet"):(self.s_office_spreadsheet, self.e_office_spreadsheet),
# (OFFICENS, "styles"):(self.s_office_styles, None),
# (OFFICENS, "text"):(self.s_office_text, self.e_office_text),
(OFFICENS, 'scripts'):(self.s_ignorexml, None),
(PRESENTATIONNS, 'notes'):(self.s_ignorexml, None),
# (STYLENS, "default-page-layout"):(self.s_style_default_page_layout, self.e_style_page_layout),
# (STYLENS, "default-page-layout"):(self.s_ignorexml, None),
# (STYLENS, "default-style"):(self.s_style_default_style, self.e_style_default_style),
# (STYLENS, "drawing-page-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "font-face"):(self.s_style_font_face, None),
# (STYLENS, "footer"):(self.s_style_footer, self.e_style_footer),
# (STYLENS, "footer-style"):(self.s_style_footer_style, None),
# (STYLENS, "graphic-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "handout-master"):(self.s_ignorexml, None),
# (STYLENS, "header"):(self.s_style_header, self.e_style_header),
# (STYLENS, "header-footer-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "header-style"):(self.s_style_header_style, None),
# (STYLENS, "master-page"):(self.s_style_master_page, None),
# (STYLENS, "page-layout-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "page-layout"):(self.s_style_page_layout, self.e_style_page_layout),
# (STYLENS, "page-layout"):(self.s_ignorexml, None),
# (STYLENS, "paragraph-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "style"):(self.s_style_style, self.e_style_style),
# (STYLENS, "table-cell-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "table-column-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "table-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "text-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "default-page-layout"):(self.s_style_default_page_layout, self.e_style_page_layout),
# (STYLENS, "default-page-layout"):(self.s_ignorexml, None),
# (STYLENS, "default-style"):(self.s_style_default_style, self.e_style_default_style),
# (STYLENS, "drawing-page-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "font-face"):(self.s_style_font_face, None),
# (STYLENS, "footer"):(self.s_style_footer, self.e_style_footer),
# (STYLENS, "footer-style"):(self.s_style_footer_style, None),
# (STYLENS, "graphic-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "handout-master"):(self.s_ignorexml, None),
# (STYLENS, "header"):(self.s_style_header, self.e_style_header),
# (STYLENS, "header-footer-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "header-style"):(self.s_style_header_style, None),
# (STYLENS, "master-page"):(self.s_style_master_page, None),
# (STYLENS, "page-layout-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "page-layout"):(self.s_style_page_layout, self.e_style_page_layout),
# (STYLENS, "page-layout"):(self.s_ignorexml, None),
# (STYLENS, "paragraph-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "style"):(self.s_style_style, self.e_style_style),
# (STYLENS, "table-cell-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "table-column-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "table-properties"):(self.s_style_handle_properties, None),
# (STYLENS, "text-properties"):(self.s_style_handle_properties, None),
(SVGNS, 'desc'): (self.s_ignorexml, None),
(TABLENS, 'covered-table-cell'): (self.s_ignorexml, None),
(TABLENS, 'table-cell'): (self.s_table_table_cell, self.e_table_table_cell),

View File

@ -402,8 +402,8 @@ class OpenDocument:
zi.external_attr = UNIXPERMS
self._z.writestr(zi, fileobj)
# According to section 17.7.3 in ODF 1.1, the pictures folder should not have a manifest entry
# if hasPictures:
# self.manifest.addElement(manifest.FileEntry(fullpath=f"{folder}Pictures/", mediatype=""))
# if hasPictures:
# self.manifest.addElement(manifest.FileEntry(fullpath=f"{folder}Pictures/", mediatype=""))
# Look in subobjects
subobjectnum = 1
for subobject in object.childobjects: