Setting custom theme values

merge-requests/30/head
Bob Mottram 2021-12-05 11:03:25 +00:00
parent ca4b116f25
commit 37be686862
2 changed files with 46 additions and 20 deletions

View File

@ -317,7 +317,7 @@ from cache import storePersonInCache
from cache import getPersonFromCache
from cache import getPersonPubKey
from httpsig import verifyPostHeaders
# from theme import setThemeFromDesigner
from theme import setThemeFromDesigner
from theme import scanThemesForScripts
from theme import importTheme
from theme import exportTheme
@ -2118,7 +2118,8 @@ class PubServer(BaseHTTPRequestHandler):
onionDomain: str, i2pDomain: str,
debug: bool, accessKeys: {},
defaultTimeline: str, themeName: str,
allowLocalNetworkAccess: bool) -> None:
allowLocalNetworkAccess: bool,
systemLanguage: str) -> None:
"""Receive POST from webapp_themeDesigner
"""
usersPath = '/users/' + nickname
@ -2174,14 +2175,16 @@ class PubServer(BaseHTTPRequestHandler):
print('themeDesigner3: ' + str(fields))
# get the parameters from the theme designer screen
# themeDesignerParams = {}
themeDesignerParams = {}
for variableName, key in fields.items():
if variableName.startswith('themeSetting_'):
variableName = variableName.replace('themeSetting_', '')
# themeDesignerParams[variableName] = key
themeDesignerParams[variableName] = key
# setThemeFromDesigner(baseDir, themeName, themeDesignerParams,
# allowLocalNetworkAccess)
setThemeFromDesigner(baseDir, themeName, domain,
themeDesignerParams,
allowLocalNetworkAccess,
systemLanguage)
# redirect back from theme designer screen
if callingDomain.endswith('.onion') and onionDomain:
@ -17867,7 +17870,8 @@ class PubServer(BaseHTTPRequestHandler):
accessKeys,
self.server.defaultTimeline,
self.server.themeName,
self.server.allowLocalNetworkAccess)
self.server.allowLocalNetworkAccess,
self.server.systemLanguage)
return
# update the shared item federation token for the calling domain

View File

@ -492,17 +492,14 @@ def _setCustomFont(baseDir: str):
cssfile.write(css)
def setThemeFromDesigner(baseDir: str, themeName: str,
def setThemeFromDesigner(baseDir: str, themeName: str, domain: str,
themeParams: {},
allowLocalNetworkAccess: bool):
bgParams = {
"login": "jpg",
"follow": "jpg",
"options": "jpg",
"search": "jpg"
}
_setThemeFromDict(baseDir, themeName, themeParams, bgParams,
allowLocalNetworkAccess)
allowLocalNetworkAccess: bool,
systemLanguage: str):
customThemeFilename = baseDir + '/accounts/theme.json'
saveJson(themeParams, customThemeFilename)
setTheme(baseDir, themeName, domain,
allowLocalNetworkAccess, systemLanguage)
def _readVariablesFile(baseDir: str, themeName: str,
@ -513,9 +510,23 @@ def _readVariablesFile(baseDir: str, themeName: str,
themeParams = loadJson(variablesFile, 0)
if not themeParams:
return
setThemeFromDesigner(baseDir, themeName,
themeParams,
allowLocalNetworkAccess)
# set custom theme parameters
customVariablesFile = baseDir + '/accounts/theme.json'
if os.path.isfile(customVariablesFile):
customThemeParams = loadJson(customVariablesFile, 0)
if customThemeParams:
for variableName, value in customThemeParams.items():
themeParams[variableName] = value
bgParams = {
"login": "jpg",
"follow": "jpg",
"options": "jpg",
"search": "jpg"
}
_setThemeFromDict(baseDir, themeName, themeParams, bgParams,
allowLocalNetworkAccess)
def _setThemeDefault(baseDir: str, allowLocalNetworkAccess: bool):
@ -797,6 +808,17 @@ def setTheme(baseDir: str, name: str, domain: str,
result = False
prevThemeName = getTheme(baseDir)
# if the theme has changed then remove any custom settings
if prevThemeName != name:
customVariablesFile = baseDir + '/accounts/theme.json'
if os.path.isfile(customVariablesFile):
print('Removing theme designer settings')
try:
os.remove(customVariablesFile)
except OSError:
print('EX: removing theme designer settings')
_removeTheme(baseDir)
themes = getThemesList(baseDir)