aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorJesús <heckyel@hyperbola.info>2020-02-04 21:03:27 -0500
committerJesús <heckyel@hyperbola.info>2020-02-04 21:03:27 -0500
commitedcc28d056fa30681248910a63cf202870d26d1c (patch)
tree25d3f918d129ed66729358b161b202fee01d26d6 /plugins
parent8ce14267858a6ec60cd86d22f086d43067b1fd9c (diff)
downloadlibretube-edcc28d056fa30681248910a63cf202870d26d1c.tar.lz
libretube-edcc28d056fa30681248910a63cf202870d26d1c.tar.xz
libretube-edcc28d056fa30681248910a63cf202870d26d1c.zip
pep8
Diffstat (limited to 'plugins')
-rw-r--r--plugins/compressor/compressor.py5
-rw-r--r--plugins/compressor/js_minifer.py4
-rw-r--r--plugins/compressor/minify.py18
-rw-r--r--plugins/i18n_subsites/i18n_subsites.py53
-rw-r--r--plugins/i18n_subsites/test_i18n_subsites.py8
-rw-r--r--plugins/neighbors/neighbors.py13
-rw-r--r--plugins/pelican-css-js/pelican_css_js.py3
-rw-r--r--plugins/sitemap/sitemap.py14
8 files changed, 68 insertions, 50 deletions
diff --git a/plugins/compressor/compressor.py b/plugins/compressor/compressor.py
index 7dd4406..af2d704 100644
--- a/plugins/compressor/compressor.py
+++ b/plugins/compressor/compressor.py
@@ -4,8 +4,6 @@ css-js-minify wrapper for Pelican
"""
import glob
-import os
-import sys
from .minify import (
process_single_css_file,
@@ -17,6 +15,7 @@ from pelican import signals
CSS_DIR = '/theme/css'
JS_DIR = '/theme/js'
+
def main(pelican):
""" Compiler """
for file in glob.iglob(pelican.output_path + CSS_DIR + '/**/*.css', recursive=True):
@@ -24,10 +23,12 @@ def main(pelican):
for file in glob.iglob(pelican.output_path + JS_DIR + '/**/*.js', recursive=True):
process_single_js_file(file, overwrite=True)
+
def register():
""" Register """
signals.finalized.connect(main)
+
SUPPORT_JS = """
-----------------------------------------------------------------
COMPRESSOR:
diff --git a/plugins/compressor/js_minifer.py b/plugins/compressor/js_minifer.py
index c03f887..6654b76 100644
--- a/plugins/compressor/js_minifer.py
+++ b/plugins/compressor/js_minifer.py
@@ -13,8 +13,8 @@ def remove_commented_lines(js):
"""Force remove commented out lines from Javascript."""
result = ""
for line in js.splitlines():
- line = re.sub(r"/\*.*\*/", "", line) # (/*COMMENT */)
- line = re.sub(r"//.*", "", line) # (//COMMENT)
+ line = re.sub(r"/\*.*\*/", "", line) # (/*COMMENT */)
+ line = re.sub(r"//.*", "", line) # (//COMMENT)
result += '\n'+line
return result
diff --git a/plugins/compressor/minify.py b/plugins/compressor/minify.py
index dcf50fe..9107882 100644
--- a/plugins/compressor/minify.py
+++ b/plugins/compressor/minify.py
@@ -27,11 +27,12 @@ __all__ = ('process_multiple_files', 'prefixer_extensioner',
'make_arguments_parser', 'main')
color = {
- 'cyan' : '\033[1;36m',
- 'end' : '\033[0m',
- 'green' : '\033[1;32m'
+ 'cyan': '\033[1;36m',
+ 'end': '\033[0m',
+ 'green': '\033[1;32m'
}
+
def process_multiple_files(file_path, watch=False, wrap=False, timestamp=False,
comments=False, sort=False, overwrite=False,
zipy=False, prefix='', add_hash=False):
@@ -95,7 +96,9 @@ def process_single_css_file(css_file_path, wrap=False, timestamp=False,
zipy=False, prefix='', add_hash=False,
output_path=None):
"""Process a single CSS file."""
- print("Processing %sCSS%s file: %s" % (color['cyan'], color['end'], css_file_path))
+ print("Processing %sCSS%s file: %s" % (color['cyan'],
+ color['end'],
+ css_file_path))
with open(css_file_path, encoding="utf-8") as css_file:
original_css = css_file.read()
@@ -134,7 +137,9 @@ def process_single_css_file(css_file_path, wrap=False, timestamp=False,
def process_single_js_file(js_file_path, timestamp=False, overwrite=False,
zipy=False, output_path=None):
"""Process a single JS file."""
- print("Processing %sJS%s file: %s" % (color['green'], color['end'], js_file_path))
+ print("Processing %sJS%s file: %s" % (color['green'],
+ color['end'],
+ js_file_path))
with open(js_file_path, encoding="utf-8") as js_file:
original_js = js_file.read()
print("INPUT: Reading JS file %s" % js_file_path)
@@ -173,7 +178,8 @@ def make_arguments_parser():
SHA1 HEX-Digest 11 Chars Hash on Filenames is used for Server Cache.
CSS Properties are Alpha-Sorted, to help spot cloned ones, Selectors not.
Watch works for whole folders, with minimum of ~60 Secs between runs.""")
- # parser.add_argument('--version', action='version', version=css_js_minify.__version__)
+ # parser.add_argument('--version', action='version',
+ # version=css_js_minify.__version__)
parser.add_argument('fullpath', metavar='fullpath', type=str,
help='Full path to local file or folder.')
parser.add_argument('--wrap', action='store_true',
diff --git a/plugins/i18n_subsites/i18n_subsites.py b/plugins/i18n_subsites/i18n_subsites.py
index dc27799..33cfaab 100644
--- a/plugins/i18n_subsites/i18n_subsites.py
+++ b/plugins/i18n_subsites/i18n_subsites.py
@@ -32,16 +32,16 @@ except ImportError:
# Global vars
-_MAIN_SETTINGS = None # settings dict of the main Pelican instance
-_MAIN_LANG = None # lang of the main Pelican instance
-_MAIN_SITEURL = None # siteurl of the main Pelican instance
-_MAIN_STATIC_FILES = None # list of Static instances the main Pelican instance
-_SUBSITE_QUEUE = {} # map: lang -> settings overrides
-_SITE_DB = OrderedDict() # OrderedDict: lang -> siteurl
-_SITES_RELPATH_DB = {} # map: (lang, base_lang) -> relpath
+_MAIN_SETTINGS = None # settings dict of the main Pelican instance
+_MAIN_LANG = None # lang of the main Pelican instance
+_MAIN_SITEURL = None # siteurl of the main Pelican instance
+_MAIN_STATIC_FILES = None # list of Static instances the main Pelican
+_SUBSITE_QUEUE = {} # map: lang -> settings overrides
+_SITE_DB = OrderedDict() # OrderedDict: lang -> siteurl
+_SITES_RELPATH_DB = {} # map: (lang, base_lang) -> relpath
# map: generator -> list of removed contents that need interlinking
_GENERATOR_DB = {}
-_NATIVE_CONTENT_URL_DB = {} # map: source_path -> content in its native lang
+_NATIVE_CONTENT_URL_DB = {} # map: source_path -> content in its native lang
_LOGGER = logging.getLogger(__name__)
@@ -81,30 +81,37 @@ def prepare_site_db_and_overrides():
_SITE_DB.keys() need to be ready for filter_translations
'''
+
_SITE_DB.clear()
_SITE_DB[_MAIN_LANG] = _MAIN_SITEURL
+
# make sure it works for both root-relative and absolute
- main_siteurl = '/' if _MAIN_SITEURL == '' else _MAIN_SITEURL
- for lang, overrides in _SUBSITE_QUEUE.items():
+
+ main_siteurl = ('/' if _MAIN_SITEURL == '' else _MAIN_SITEURL)
+ for (lang, overrides) in _SUBSITE_QUEUE.items():
if 'SITEURL' not in overrides:
overrides['SITEURL'] = posixpath.join(main_siteurl, lang)
_SITE_DB[lang] = overrides['SITEURL']
+
# default subsite hierarchy
+
if 'OUTPUT_PATH' not in overrides:
- overrides['OUTPUT_PATH'] = os.path.join(
- _MAIN_SETTINGS['OUTPUT_PATH'], lang)
+ overrides['OUTPUT_PATH'] = \
+ os.path.join(_MAIN_SETTINGS['OUTPUT_PATH'], lang)
if 'CACHE_PATH' not in overrides:
- overrides['CACHE_PATH'] = os.path.join(
- _MAIN_SETTINGS['CACHE_PATH'], lang)
+ overrides['CACHE_PATH'] = \
+ os.path.join(_MAIN_SETTINGS['CACHE_PATH'], lang)
if 'STATIC_PATHS' not in overrides:
overrides['STATIC_PATHS'] = []
- if ('THEME' not in overrides and 'THEME_STATIC_DIR' not in overrides and
- 'THEME_STATIC_PATHS' not in overrides):
+ if 'THEME' not in overrides and 'THEME_STATIC_DIR' \
+ not in overrides and 'THEME_STATIC_PATHS' not in overrides:
relpath = relpath_to_site(lang, _MAIN_LANG)
overrides['THEME_STATIC_DIR'] = posixpath.join(
relpath, _MAIN_SETTINGS['THEME_STATIC_DIR'])
overrides['THEME_STATIC_PATHS'] = []
+
# to change what is perceived as translations
+
overrides['DEFAULT_LANG'] = lang
@@ -254,12 +261,12 @@ def filter_contents_translations(generator):
hiding_func = inspector.hiding_function()
untrans_policy = inspector.untranslated_policy(default='hide')
for (contents, other_contents) in inspector.contents_list_pairs():
- for content in other_contents: # save any hidden native content first
- if content.lang == current_lang: # in native lang
+ for content in other_contents: # save any hidden native content first
+ if content.lang == current_lang: # in native lang
# save the native URL attr formatted in the current locale
_NATIVE_CONTENT_URL_DB[content.source_path] = content.url
- for content in contents[:]: # copy for removing in loop
- if content.lang == current_lang: # in native lang
+ for content in contents[:]: # copy for removing in loop
+ if content.lang == current_lang: # in native lang
# save the native URL attr formatted in the current locale
_NATIVE_CONTENT_URL_DB[content.source_path] = content.url
elif content.lang in langs_with_sites and untrans_policy != 'keep':
@@ -276,7 +283,7 @@ def install_templates_translations(generator):
Only if the 'jinja2.ext.i18n' jinja2 extension is enabled
the translations for the current DEFAULT_LANG are installed.
'''
- if 'JINJA_ENVIRONMENT' in generator.settings: # pelican 3.7+
+ if 'JINJA_ENVIRONMENT' in generator.settings: # pelican 3.7+
jinja_extensions = generator.settings['JINJA_ENVIRONMENT'].get(
'extensions', [])
else:
@@ -359,14 +366,14 @@ def interlink_static_files(generator):
'''Add links to static files in the main site if necessary'''
if generator.settings['STATIC_PATHS'] != []:
return # customized STATIC_PATHS
- try: # minimize attr lookup
+ try: # minimize attr lookup
static_content = generator.context['static_content']
except KeyError:
static_content = generator.context['filenames']
relpath = relpath_to_site(generator.settings['DEFAULT_LANG'], _MAIN_LANG)
for staticfile in _MAIN_STATIC_FILES:
if staticfile.get_relative_source_path() not in static_content:
- staticfile = copy(staticfile) # prevent override in main site
+ staticfile = copy(staticfile) # prevent override in main site
staticfile.override_url = posixpath.join(relpath, staticfile.url)
try:
generator.add_source_path(staticfile, static=True)
diff --git a/plugins/i18n_subsites/test_i18n_subsites.py b/plugins/i18n_subsites/test_i18n_subsites.py
index c6c1d6a..07c603a 100644
--- a/plugins/i18n_subsites/test_i18n_subsites.py
+++ b/plugins/i18n_subsites/test_i18n_subsites.py
@@ -42,12 +42,12 @@ class TestSettingsManipulation(unittest.TestCase):
self.settings['PELICAN_CLASS'] = object
cls = i18ns.get_pelican_cls(self.settings)
self.assertIs(cls, object)
-
+
def test_get_pelican_cls_str(self):
'''Test that we get correct class given by string'''
cls = i18ns.get_pelican_cls(self.settings)
self.assertIs(cls, Pelican)
-
+
class TestSitesRelpath(unittest.TestCase):
'''Test relative path between sites generation'''
@@ -72,7 +72,7 @@ class TestSitesRelpath(unittest.TestCase):
self.assertEqual(i18ns.relpath_to_site('en', 'de'), 'de')
self.assertEqual(i18ns.relpath_to_site('de', 'en'), '..')
-
+
class TestRegistration(unittest.TestCase):
'''Test plugin registration'''
@@ -91,7 +91,7 @@ class TestRegistration(unittest.TestCase):
self.assertIn(id(handler), sig.receivers)
# clean up
sig.disconnect(handler)
-
+
class TestFullRun(unittest.TestCase):
'''Test running Pelican with the Plugin'''
diff --git a/plugins/neighbors/neighbors.py b/plugins/neighbors/neighbors.py
index aaa564e..b3c6e99 100644
--- a/plugins/neighbors/neighbors.py
+++ b/plugins/neighbors/neighbors.py
@@ -8,6 +8,7 @@ variables to the article's context
"""
from pelican import signals
+
def iter3(seq):
it = iter(seq)
nxt = None
@@ -17,6 +18,7 @@ def iter3(seq):
nxt, cur = cur, prv
yield nxt, cur, None
+
def get_translation(article, prefered_language):
if not article:
return None
@@ -25,18 +27,16 @@ def get_translation(article, prefered_language):
return translation
return article
+
def set_neighbors(articles, next_name, prev_name):
for nxt, cur, prv in iter3(articles):
exec("cur.{} = nxt".format(next_name))
exec("cur.{} = prv".format(prev_name))
for translation in cur.translations:
- exec(
- "translation.{} = get_translation(nxt, translation.lang)".format(
- next_name))
- exec(
- "translation.{} = get_translation(prv, translation.lang)".format(
- prev_name))
+ exec("translation.{} = get_translation(nxt, translation.lang)".format(next_name))
+ exec("translation.{} = get_translation(prv, translation.lang)".format(prev_name))
+
def neighbors(generator):
set_neighbors(generator.articles, 'next_article', 'prev_article')
@@ -54,5 +54,6 @@ def neighbors(generator):
prev_name = 'prev_article_in_subcategory{}'.format(index)
set_neighbors(articles, next_name, prev_name)
+
def register():
signals.article_generator_finalized.connect(neighbors)
diff --git a/plugins/pelican-css-js/pelican_css_js.py b/plugins/pelican-css-js/pelican_css_js.py
index d3c5420..9cab8a6 100644
--- a/plugins/pelican-css-js/pelican_css_js.py
+++ b/plugins/pelican-css-js/pelican_css_js.py
@@ -10,6 +10,7 @@ import shutil
from pelican import signals
+
def copy_resources(src, dest, file_list):
"""
Copy files from content folder to output folder
@@ -33,6 +34,7 @@ def copy_resources(src, dest, file_list):
file_src = os.path.join(src, file_)
shutil.copy2(file_src, dest)
+
def add_files(gen, metadata):
"""
The registered handler for the dynamic resources plugin. It will
@@ -59,6 +61,7 @@ def add_files(gen, metadata):
htmls.append(html)
metadata[key] = htmls
+
def move_resources(gen):
"""
Move files from js/css folders to output folder
diff --git a/plugins/sitemap/sitemap.py b/plugins/sitemap/sitemap.py
index 364c700..b4dea40 100644
--- a/plugins/sitemap/sitemap.py
+++ b/plugins/sitemap/sitemap.py
@@ -54,6 +54,7 @@ def format_date(date):
tz = "-00:00"
return date.strftime("%Y-%m-%dT%H:%M:%S") + tz
+
class SitemapGenerator(object):
def __init__(self, context, settings, path, theme, output_path, *null):
@@ -63,7 +64,6 @@ class SitemapGenerator(object):
self.now = datetime.now()
self.siteurl = settings.get('SITEURL')
-
self.default_timezone = settings.get('TIMEZONE', 'UTC')
self.timezone = getattr(self, 'timezone', self.default_timezone)
self.timezone = timezone(self.timezone)
@@ -103,7 +103,7 @@ class SitemapGenerator(object):
valid_keys = ('articles', 'indexes', 'pages')
valid_chfreqs = ('always', 'hourly', 'daily', 'weekly', 'monthly',
- 'yearly', 'never')
+ 'yearly', 'never')
if isinstance(pris, dict):
# We use items for Py3k compat. .iteritems() otherwise
@@ -137,7 +137,7 @@ class SitemapGenerator(object):
if getattr(page, 'status', 'published') != 'published':
return
-
+
if getattr(page, 'private', 'False') == 'True':
return
@@ -169,7 +169,7 @@ class SitemapGenerator(object):
pageurl = '' if page.url == 'index.html' else page.url
- #Exclude URLs from the sitemap:
+ # Exclude URLs from the sitemap:
if self.format == 'xml':
flag = False
for regstr in self.sitemapExclude:
@@ -206,9 +206,9 @@ class SitemapGenerator(object):
path = os.path.join(self.output_path, 'sitemap.{0}'.format(self.format))
pages = self.context['pages'] + self.context['articles'] \
- + [ c for (c, a) in self.context['categories']] \
- + [ t for (t, a) in self.context['tags']] \
- + [ a for (a, b) in self.context['authors']]
+ + [c for (c, a) in self.context['categories']] \
+ + [t for (t, a) in self.context['tags']] \
+ + [a for (a, b) in self.context['authors']]
self.set_url_wrappers_modification_date(self.context['categories'])
self.set_url_wrappers_modification_date(self.context['tags'])