mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
comment formating (extra-edit)
This commit is contained in:
parent
dba73b96b7
commit
0ce6645f15
@ -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
|
||||
]
|
||||
|
@ -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
|
||||
|
@ -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'}),
|
||||
|
@ -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'
|
||||
|
@ -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!
|
||||
|
@ -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
|
||||
|
@ -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')
|
||||
|
@ -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/'),
|
||||
]
|
||||
|
@ -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/'),
|
||||
]
|
||||
|
@ -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/'),
|
||||
]
|
||||
|
@ -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/'),
|
||||
]
|
||||
|
@ -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/'),
|
||||
]
|
||||
|
@ -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/'),
|
||||
]
|
||||
|
@ -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/'),
|
||||
]
|
||||
|
@ -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/'),
|
||||
]
|
||||
|
@ -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/'),
|
||||
]
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
|
@ -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'
|
||||
|
@ -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'
|
||||
|
@ -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'
|
||||
|
@ -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'
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
]
|
||||
|
@ -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/'),
|
||||
|
@ -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
|
||||
|
@ -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/'),
|
||||
|
@ -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'
|
||||
|
@ -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/'),
|
||||
]
|
||||
|
@ -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/'),
|
||||
]
|
||||
|
@ -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/'),
|
||||
]
|
||||
|
@ -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 )|(?:: ))(.*?): (.*?)$')
|
||||
|
||||
|
@ -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/')
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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/')
|
||||
]
|
||||
|
@ -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'
|
||||
|
@ -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'
|
||||
|
@ -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'}),
|
||||
|
@ -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'),
|
||||
]
|
||||
|
@ -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+'),
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
|
@ -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):
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -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):
|
||||
|
@ -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': 'ff',
|
||||
'fi': 'fi',
|
||||
'fl': '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)]
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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'),
|
||||
|
@ -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))
|
||||
# }}}
|
||||
|
||||
|
||||
|
@ -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__',
|
||||
|
@ -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:
|
||||
|
@ -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')
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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')
|
||||
|
@ -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
|
||||
|
@ -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':
|
||||
|
@ -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:
|
||||
|
@ -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')
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
@ -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):
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
|
||||
|
||||
|
@ -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('='):
|
||||
|
@ -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:
|
||||
|
@ -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)
|
||||
|
@ -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
@ -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),
|
||||
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user