Merge branch 'main' of ssh://code.freedombone.net:2222/bashrc/epicyon

main
Bob Mottram 2021-05-30 12:45:00 +01:00
commit 1a1371233d
3 changed files with 44 additions and 3 deletions

16
defaultthemes.txt 100644
View File

@ -0,0 +1,16 @@
Blue
Debian
Default
Hacker
Henge
Indymediaclassic
Indymediamodern
Lcd
Light
Night
Pixel
Purple
Rc3
Solidaric
Starlight
Zen

View File

@ -101,6 +101,7 @@ from content import removeLongWords
from content import replaceContentDuplicates
from content import removeTextFormatting
from content import removeHtmlTag
from theme import updateDefaultThemesList
from theme import setCSSparam
from linked_data_sig import generateJsonSignature
from linked_data_sig import verifyJsonSignature
@ -3721,6 +3722,7 @@ def testRoles() -> None:
def runAllTests():
print('Running tests...')
updateDefaultThemesList(os.getcwd())
testFunctions()
testRoles()
testSkills()

View File

@ -14,6 +14,7 @@ from utils import copytree
from shutil import copyfile
from shutil import make_archive
from shutil import unpack_archive
from shutil import rmtree
from content import dangerousCSS
@ -23,8 +24,9 @@ def importTheme(baseDir: str, filename: str) -> bool:
if not os.path.isfile(filename):
return False
tempThemeDir = baseDir + '/imports/files'
if not os.path.isdir(tempThemeDir):
os.mkdir(tempThemeDir)
if os.path.isdir(tempThemeDir):
rmtree(tempThemeDir)
os.mkdir(tempThemeDir)
unpack_archive(filename, tempThemeDir, 'zip')
essentialThemeFiles = ('name.txt', 'theme.json')
for themeFile in essentialThemeFiles:
@ -52,11 +54,19 @@ def importTheme(baseDir: str, filename: str) -> bool:
return False
if not newThemeName:
return False
# if the theme name in the default themes list?
defaultThemesFilename = baseDir + '/defaultthemes.txt'
if os.path.isfile(defaultThemesFilename):
if newThemeName.title() + '\n' in open(defaultThemesFilename).read():
newThemeName = newThemeName + '2'
themeDir = baseDir + '/theme/' + newThemeName
if not os.path.isdir(themeDir):
os.mkdir(themeDir)
copytree(tempThemeDir, themeDir)
os.remove(tempThemeDir)
if os.path.isdir(tempThemeDir):
rmtree(tempThemeDir)
return os.path.isfile(themeDir + '/theme.json')
@ -791,3 +801,16 @@ def setTheme(baseDir: str, name: str, domain: str,
_setThemeInConfig(baseDir, name)
_setClearCacheFlag(baseDir)
return result
def updateDefaultThemesList(baseDir: str) -> None:
"""Recreates the list of default themes
"""
themeNames = getThemesList(baseDir)
defaultThemesFilename = baseDir + '/defaultthemes.txt'
defaultThemesFile = open(defaultThemesFilename, "w+")
if not defaultThemesFile:
return
for name in themeNames:
defaultThemesFile.write(name + '\n')
defaultThemesFile.close()