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)