mirror of
https://github.com/gilbN/theme.park.git
synced 2024-10-05 15:07:11 +02:00
pep8 formatting
This commit is contained in:
parent
fe8e159673
commit
8377a5617f
77
themes.py
77
themes.py
@ -1,43 +1,48 @@
|
|||||||
from os import listdir
|
from os import listdir
|
||||||
from os.path import isdir, isfile, join
|
from os.path import isdir, isfile, join
|
||||||
from json import dump,dumps, loads
|
from json import dump, dumps, loads
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
def get_shas(output):
|
def get_shas(output):
|
||||||
"""Returns a dict of CSS files and SHAs"""
|
"""Returns a dict of CSS files and SHAs"""
|
||||||
output_lines = output.splitlines()
|
output_lines = output.splitlines()
|
||||||
sha_dict = {}
|
sha_dict = {}
|
||||||
for line in output_lines:
|
for line in output_lines:
|
||||||
line = line.decode('utf-8').replace("\t","").split(" ")
|
line = line.decode('utf-8').replace("\t", "").split(" ")
|
||||||
sha = line[1]
|
sha = line[1]
|
||||||
css_file = [file for file in line[2].split("/") if "css" in file][0]
|
css_file = [file for file in line[2].split("/") if "css" in file][0]
|
||||||
sha_dict.update({css_file: sha})
|
sha_dict.update({css_file: sha})
|
||||||
return(sha_dict)
|
return(sha_dict)
|
||||||
|
|
||||||
|
|
||||||
def create_addons_json():
|
def create_addons_json():
|
||||||
addon_shas = subprocess.check_output(["git", "ls-files", "-s", "./CSS/addons/*.css"])
|
addon_shas = subprocess.check_output(
|
||||||
|
["git", "ls-files", "-s", "./CSS/addons/*.css"])
|
||||||
SHAS = get_shas(addon_shas)
|
SHAS = get_shas(addon_shas)
|
||||||
ADDONS = {"addons":{}}
|
ADDONS = {"addons": {}}
|
||||||
addon_root = './CSS/addons'
|
addon_root = './CSS/addons'
|
||||||
addon_folders = [name for name in listdir(addon_root) if isdir(join(addon_root, name))]
|
addon_folders = [name for name in listdir(
|
||||||
|
addon_root) if isdir(join(addon_root, name))]
|
||||||
for app in addon_folders:
|
for app in addon_folders:
|
||||||
app_addons = [addon for addon in listdir(f"{addon_root}/{app}")]
|
app_addons = [addon for addon in listdir(f"{addon_root}/{app}")]
|
||||||
ADDONS["addons"].update({
|
ADDONS["addons"].update({
|
||||||
app: {
|
app: {
|
||||||
addon: {} for addon in app_addons
|
addon: {} for addon in app_addons
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
for addon in app_addons:
|
for addon in app_addons:
|
||||||
files = [file for file in listdir(f"{addon_root}/{app}/{addon}") if isfile(join(f"{addon_root}/{app}/{addon}", file))]
|
files = [file for file in listdir(
|
||||||
|
f"{addon_root}/{app}/{addon}") if isfile(join(f"{addon_root}/{app}/{addon}", file))]
|
||||||
if len([f for f in files if f.endswith('.css')]) > 1:
|
if len([f for f in files if f.endswith('.css')]) > 1:
|
||||||
ADDONS["addons"][app][addon].update({
|
ADDONS["addons"][app][addon].update({
|
||||||
"css": [f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{file}?sha={SHAS.get(file)}" for file in files if file.split(".")[1] == "css"]
|
"css": [f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{file}?sha={SHAS.get(file)}" for file in files if file.split(".")[1] == "css"]
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
ADDONS["addons"][app].update({
|
ADDONS["addons"][app].update({
|
||||||
addon: f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{file}?sha={SHAS.get(file)}" for file in files if file.split(".")[1] == "css"
|
addon: f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{file}?sha={SHAS.get(file)}" for file in files if file.split(".")[1] == "css"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
extra_dirs = [dir for dir in listdir(
|
extra_dirs = [dir for dir in listdir(
|
||||||
f"{addon_root}/{app}/{addon}") if isdir(join(f"{addon_root}/{app}/{addon}", dir))]
|
f"{addon_root}/{app}/{addon}") if isdir(join(f"{addon_root}/{app}/{addon}", dir))]
|
||||||
@ -46,52 +51,58 @@ def create_addons_json():
|
|||||||
extra_dir_files = [file for file in listdir(
|
extra_dir_files = [file for file in listdir(
|
||||||
f"{addon_root}/{app}/{addon}/{dir}") if isfile(join(f"{addon_root}/{app}/{addon}/{dir}", file))]
|
f"{addon_root}/{app}/{addon}/{dir}") if isfile(join(f"{addon_root}/{app}/{addon}/{dir}", file))]
|
||||||
ADDONS["addons"][app][addon].update({
|
ADDONS["addons"][app][addon].update({
|
||||||
dir: {
|
dir: {
|
||||||
"css": [f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{dir}/{extra_file}?sha={SHAS.get(extra_file)}" for extra_file in extra_dir_files if extra_file.split(".")[1] == "css"]
|
"css": [f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{dir}/{extra_file}?sha={SHAS.get(extra_file)}" for extra_file in extra_dir_files if extra_file.split(".")[1] == "css"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
return dumps(ADDONS)
|
return dumps(ADDONS)
|
||||||
|
|
||||||
def create_json(app_folders:list=None,themes:list=None,no_sub_folders=False):
|
|
||||||
|
def create_json(app_folders: list = None, themes: list = None, no_sub_folders=False):
|
||||||
if no_sub_folders:
|
if no_sub_folders:
|
||||||
THEMES = {}
|
THEMES = {}
|
||||||
theme_shas = subprocess.check_output(["git", "ls-files", "-s", "./CSS/variables/*.css"])
|
theme_shas = subprocess.check_output(
|
||||||
|
["git", "ls-files", "-s", "./CSS/variables/*.css"])
|
||||||
SHAS = get_shas(theme_shas)
|
SHAS = get_shas(theme_shas)
|
||||||
for theme in themes:
|
for theme in themes:
|
||||||
THEMES.update({
|
THEMES.update({
|
||||||
"themes": {
|
"themes": {
|
||||||
theme.split(".")[0].capitalize(): {
|
theme.split(".")[0].capitalize(): {
|
||||||
"url": f"https://{DOMAIN}/CSS/variables/{theme}?sha={SHAS.get(theme)}"
|
"url": f"https://{DOMAIN}/CSS/variables/{theme}?sha={SHAS.get(theme)}"
|
||||||
}for theme in themes
|
}for theme in themes
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return dumps(THEMES)
|
return dumps(THEMES)
|
||||||
else:
|
else:
|
||||||
ADDONS = loads(create_addons_json())
|
ADDONS = loads(create_addons_json())
|
||||||
APPS = {"applications":{}}
|
APPS = {"applications": {}}
|
||||||
app_shas = subprocess.check_output(["git", "ls-files", "-s", "./CSS/themes/*base.css"])
|
app_shas = subprocess.check_output(
|
||||||
|
["git", "ls-files", "-s", "./CSS/themes/*base.css"])
|
||||||
SHAS = get_shas(app_shas)
|
SHAS = get_shas(app_shas)
|
||||||
for app in app_folders:
|
for app in app_folders:
|
||||||
APPS.update({
|
APPS.update({
|
||||||
"applications":{
|
"applications": {
|
||||||
app: {
|
app: {
|
||||||
"base_css": f"https://{DOMAIN}/CSS/themes/{app}/{app}-base.css?sha={SHAS.get(f'{app}-base.css')}",
|
"base_css": f"https://{DOMAIN}/CSS/themes/{app}/{app}-base.css?sha={SHAS.get(f'{app}-base.css')}",
|
||||||
"addons": ADDONS["addons"][app] if app in ADDONS["addons"] else {}
|
"addons": ADDONS["addons"][app] if app in ADDONS["addons"] else {}
|
||||||
} for app in app_folders
|
} for app in app_folders
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
)
|
)
|
||||||
THEMES = loads(create_json(themes=themes,no_sub_folders=True))
|
THEMES = loads(create_json(themes=themes, no_sub_folders=True))
|
||||||
APPS.update(ADDONS)
|
APPS.update(ADDONS)
|
||||||
APPS.update(THEMES)
|
APPS.update(THEMES)
|
||||||
return dumps(APPS)
|
return dumps(APPS)
|
||||||
|
|
||||||
if __name__== "__main__":
|
|
||||||
app_folders = [name for name in listdir('./CSS/themes') if isdir(join('./CSS/themes', name))]
|
if __name__ == "__main__":
|
||||||
themes = [name for name in listdir('./CSS/variables') if isfile(join('./CSS/variables', name))]
|
app_folders = [name for name in listdir(
|
||||||
DOMAIN = open("CNAME","rt",closefd=True).readline()
|
'./CSS/themes') if isdir(join('./CSS/themes', name))]
|
||||||
apps = loads(create_json(app_folders,themes))
|
themes = [name for name in listdir(
|
||||||
|
'./CSS/variables') if isfile(join('./CSS/variables', name))]
|
||||||
|
DOMAIN = open("CNAME", "rt", closefd=True).readline()
|
||||||
|
apps = loads(create_json(app_folders, themes))
|
||||||
|
|
||||||
with open("themes.json", "w") as outfile:
|
with open("themes.json", "w") as outfile:
|
||||||
dump(apps, outfile,indent=2)
|
dump(apps, outfile, indent=2)
|
||||||
|
Loading…
Reference in New Issue
Block a user