mirror of https://gitlab.com/bashrc2/epicyon
Update theme after adding custom font
parent
21b0f0c752
commit
b107668452
|
@ -15,7 +15,6 @@ from functools import partial
|
||||||
# for saving images
|
# for saving images
|
||||||
from hashlib import sha256
|
from hashlib import sha256
|
||||||
from hashlib import sha1
|
from hashlib import sha1
|
||||||
from shutil import copyfile
|
|
||||||
from session import createSession
|
from session import createSession
|
||||||
from webfinger import parseHandle
|
from webfinger import parseHandle
|
||||||
from webfinger import webfingerMeta
|
from webfinger import webfingerMeta
|
||||||
|
@ -170,6 +169,7 @@ from cache import storePersonInCache
|
||||||
from cache import getPersonFromCache
|
from cache import getPersonFromCache
|
||||||
from httpsig import verifyPostHeaders
|
from httpsig import verifyPostHeaders
|
||||||
from theme import setTheme
|
from theme import setTheme
|
||||||
|
from theme import getTheme
|
||||||
from schedule import runPostSchedule
|
from schedule import runPostSchedule
|
||||||
from schedule import runPostScheduleWatchdog
|
from schedule import runPostScheduleWatchdog
|
||||||
from schedule import removeScheduledPosts
|
from schedule import removeScheduledPosts
|
||||||
|
@ -5470,6 +5470,8 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
postImageFilename = filename.replace('.temp', '')
|
postImageFilename = filename.replace('.temp', '')
|
||||||
if mType == 'customFont':
|
if mType == 'customFont':
|
||||||
os.rename(filename, postImageFilename)
|
os.rename(filename, postImageFilename)
|
||||||
|
setTheme(self.server.baseDir,
|
||||||
|
getTheme(self.server.baseDir))
|
||||||
print('profile POST ' + mType +
|
print('profile POST ' + mType +
|
||||||
' image or font filename ' + postImageFilename)
|
' image or font filename ' + postImageFilename)
|
||||||
else:
|
else:
|
||||||
|
|
66
theme.py
66
theme.py
|
@ -22,6 +22,18 @@ def setThemeInConfig(baseDir: str, name: str) -> bool:
|
||||||
return saveJson(configJson, configFilename)
|
return saveJson(configJson, configFilename)
|
||||||
|
|
||||||
|
|
||||||
|
def getTheme(baseDir: str) -> str:
|
||||||
|
configFilename = baseDir + '/config.json'
|
||||||
|
if not os.path.isfile(configFilename):
|
||||||
|
return 'default'
|
||||||
|
configJson = loadJson(configFilename, 0)
|
||||||
|
if not configJson:
|
||||||
|
return 'default'
|
||||||
|
if configJson.get('theme'):
|
||||||
|
return configJson['theme']
|
||||||
|
return 'default'
|
||||||
|
|
||||||
|
|
||||||
def removeTheme(baseDir: str):
|
def removeTheme(baseDir: str):
|
||||||
themeFiles = ('epicyon.css', 'login.css', 'follow.css',
|
themeFiles = ('epicyon.css', 'login.css', 'follow.css',
|
||||||
'suspended.css', 'calendar.css', 'blog.css')
|
'suspended.css', 'calendar.css', 'blog.css')
|
||||||
|
@ -89,6 +101,46 @@ def setThemeFromDict(baseDir: str, name: str, themeParams: {}):
|
||||||
cssfile.write(css)
|
cssfile.write(css)
|
||||||
|
|
||||||
|
|
||||||
|
def setCustomFont(baseDir: str):
|
||||||
|
"""Uses a dictionary to set a theme
|
||||||
|
"""
|
||||||
|
customFontExt = None
|
||||||
|
customFontType = None
|
||||||
|
fontExtension = {
|
||||||
|
'woff': 'woff',
|
||||||
|
'woff2': 'woff2',
|
||||||
|
'otf': 'opentype',
|
||||||
|
'ttf': 'truetype'
|
||||||
|
}
|
||||||
|
for ext, extType in fontExtension.items():
|
||||||
|
filename = baseDir + '/fonts/custom.' + ext
|
||||||
|
if os.path.isfile(filename):
|
||||||
|
customFontExt = ext
|
||||||
|
customFontType = extType
|
||||||
|
if not customFontExt:
|
||||||
|
return
|
||||||
|
|
||||||
|
themeFiles = ('epicyon.css', 'login.css', 'follow.css',
|
||||||
|
'suspended.css', 'calendar.css', 'blog.css')
|
||||||
|
for filename in themeFiles:
|
||||||
|
templateFilename = baseDir + '/epicyon-' + filename
|
||||||
|
if filename == 'epicyon.css':
|
||||||
|
templateFilename = baseDir + '/epicyon-profile.css'
|
||||||
|
if not os.path.isfile(templateFilename):
|
||||||
|
continue
|
||||||
|
with open(templateFilename, 'r') as cssfile:
|
||||||
|
css = cssfile.read()
|
||||||
|
css = \
|
||||||
|
setCSSparam(css, "*src",
|
||||||
|
"url('./fonts/custom." +
|
||||||
|
customFontExt +
|
||||||
|
"') format('" +
|
||||||
|
customFontType + "')")
|
||||||
|
filename = baseDir + '/' + filename
|
||||||
|
with open(filename, 'w') as cssfile:
|
||||||
|
cssfile.write(css)
|
||||||
|
|
||||||
|
|
||||||
def setThemeHighVis(baseDir: str):
|
def setThemeHighVis(baseDir: str):
|
||||||
themeParams = {
|
themeParams = {
|
||||||
"font-size-header": "22px",
|
"font-size-header": "22px",
|
||||||
|
@ -209,19 +261,21 @@ def setThemeLight(baseDir: str):
|
||||||
|
|
||||||
|
|
||||||
def setTheme(baseDir: str, name: str) -> bool:
|
def setTheme(baseDir: str, name: str) -> bool:
|
||||||
|
result = False
|
||||||
if name == 'default':
|
if name == 'default':
|
||||||
setThemeDefault(baseDir)
|
setThemeDefault(baseDir)
|
||||||
return True
|
result = True
|
||||||
elif name == 'purple':
|
elif name == 'purple':
|
||||||
setThemePurple(baseDir)
|
setThemePurple(baseDir)
|
||||||
return True
|
result = True
|
||||||
elif name == 'light':
|
elif name == 'light':
|
||||||
setThemeLight(baseDir)
|
setThemeLight(baseDir)
|
||||||
return True
|
result = True
|
||||||
elif name == 'hacker':
|
elif name == 'hacker':
|
||||||
setThemeHacker(baseDir)
|
setThemeHacker(baseDir)
|
||||||
return True
|
result = True
|
||||||
elif name == 'highvis':
|
elif name == 'highvis':
|
||||||
setThemeHighVis(baseDir)
|
setThemeHighVis(baseDir)
|
||||||
return True
|
result = True
|
||||||
return False
|
setCustomFont(baseDir)
|
||||||
|
return result
|
||||||
|
|
Loading…
Reference in New Issue