__filename__ = "webapp_accesskeys.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" __version__ = "1.2.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" __module_group__ = "Accessibility" import os from utils import is_account_dir from utils import load_json from utils import get_config_param from utils import acct_dir from webapp_utils import htmlHeaderWithExternalStyle from webapp_utils import htmlFooter def loadAccessKeysForAccounts(base_dir: str, keyShortcuts: {}, accessKeysTemplate: {}) -> None: """Loads key shortcuts for each account """ for subdir, dirs, files in os.walk(base_dir + '/accounts'): for acct in dirs: if not is_account_dir(acct): continue accountDir = os.path.join(base_dir + '/accounts', acct) accessKeysFilename = accountDir + '/accessKeys.json' if not os.path.isfile(accessKeysFilename): continue nickname = acct.split('@')[0] accessKeys = load_json(accessKeysFilename) if accessKeys: keyShortcuts[nickname] = accessKeysTemplate.copy() for variableName, key in accessKeysTemplate.items(): if accessKeys.get(variableName): keyShortcuts[nickname][variableName] = \ accessKeys[variableName] break def htmlAccessKeys(cssCache: {}, base_dir: str, nickname: str, domain: str, translate: {}, accessKeys: {}, defaultAccessKeys: {}, defaultTimeline: str) -> str: """Show and edit key shortcuts """ accessKeysFilename = \ acct_dir(base_dir, nickname, domain) + '/accessKeys.json' if os.path.isfile(accessKeysFilename): accessKeysFromFile = load_json(accessKeysFilename) if accessKeysFromFile: accessKeys = accessKeysFromFile accessKeysForm = '' cssFilename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): cssFilename = base_dir + '/epicyon.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') accessKeysForm = \ htmlHeaderWithExternalStyle(cssFilename, instanceTitle, None) accessKeysForm += '
' + translate['These access keys may be used'] + \ '
' accessKeysForm += ' \n' accessKeysForm += '