Source code for mods.edit
# mods/edit.py
#
#
""" plugin to change config values. """
from mads.templates import templates
from mads.object import Config
from mads.join import j
import logging
import json
import time
import ast
import os
from mids import kernel, users
[docs]def edit(event):
if not users.allowed(event.origin, "OPER"):
return
args = event._parsed.args
if not args:
event.reply("edit <item> <key> <value>")
return
name = args[0]
logging.warn("# edit %s" % name)
obj = kernel.last("cfg", name)
if not obj:
template = getattr(templates, name, None)
if template:
logging.warn("# template %s" % template)
obj = Config(template)
try:
key = args[1]
except IndexError:
event.reply(obj)
return
if len(args) > 3:
val = args[2:]
else:
val = args[2]
try:
obj[key] = json.loads('"%s"' % val)
except (SyntaxError, ValueError) as ex:
event.reply(str(ex))
return
if key == "user" and "@" in obj[key]:
obj["username"], obj["server"] = obj[key].split("@")
obj.save()
event.reply(obj)