from src import ModuleManager, utils

LOWHIGH = {
    "low": "v",
    "high": "o"
}
@utils.export("channelset", {"setting": "mode-low",
    "help": "Set which channel mode is considered to be 'low' access"})
@utils.export("channelset", {"setting": "mode-high",
    "help": "Set which channel mode is considered to be 'high' access"})
class Module(ModuleManager.BaseModule):
    @utils.hook("preprocess.command")
    def preprocess_command(self, event):
        require_mode = event["hook"].get_kwarg("require_mode")
        if event["is_channel"] and require_mode:
            if require_mode.lower() in LOWHIGH:
                require_mode = event["target"].get_setting(
                    "mode-%s" % require_mode.lower(),
                    LOWHIGH[require_mode.lower()])

            if not event["target"].mode_or_above(event["user"],
                    require_mode):
                return "You do not have permission to do this"
            else:
                return utils.consts.PERMISSION_FORCE_SUCCESS