webapp-tools/dump_webapp_signatures.py

39 lines
1.6 KiB
Python

#!/usr/bin/env python
import kopano
from MAPI.Util import *
try:
import json
except ImportError:
import simplejson as json
def opt_args():
parser = kopano.parser('skpcf')
parser.add_option("--user", dest="user", action="store", help="Dump signatures for user")
return parser.parse_args()
def main():
options, args = opt_args()
if not options.user:
print 'Please use:\n %s --user <username>' % (sys.argv[0])
else:
user = kopano.Server(options=options).user(options.user)
try:
settings = json.loads(user.store.prop(PR_EC_WEBACCESS_SETTINGS_JSON).value)
except Exception as e:
print 'Could not load WebApp settings for user %s (Error: %s)' % (user.name, repr(e))
else:
if len(settings['settings']['zarafa']['v1']['contexts']['mail']):
if 'signatures' in settings['settings']['zarafa']['v1']['contexts']['mail']:
for item in settings['settings']['zarafa']['v1']['contexts']['mail']['signatures']['all']:
name = settings['settings']['zarafa']['v1']['contexts']['mail']['signatures']['all'][item]['name']
filename = '%s-%s-%s.html' % (user.name, name.replace(' ', '-'), item)
with open(filename, 'w') as outfile:
print 'Dumping: \'%s\' to \'%s\' ' % (name, filename)
outfile.write(settings['settings']['zarafa']['v1']['contexts']['mail']['signatures']['all'][item]['content'].encode('utf-8'))
if __name__ == '__main__':
main()