Source code for peony.commands.utils

# -*- coding: utf-8 -*-


[docs]def doc(func): """ Find the message shown when someone calls the help command Parameters ---------- func : function the function Returns ------- str The help message for this command """ stripped_chars = " \t" if hasattr(func, '__doc__'): docstring = func.__doc__.lstrip(" \n\t") if "\n" in docstring: i = docstring.index("\n") return docstring[:i].rstrip(stripped_chars) elif docstring: return docstring.rstrip(stripped_chars) return ""
[docs]def permission_check(data, command_permissions, command=None, permissions=None): """ Check the permissions of the user requesting a command Parameters ---------- data : dict message data command_permissions : dict permissions of the command, contains all the roles as key and users with these permissions as values command : function the command that is run permissions : tuple or list a list of permissions for the command Returns ------- bool True if the user has the right permissions, False otherwise """ if permissions: pass elif command: if hasattr(command, 'permissions'): permissions = command.permissions else: return True # true if no permission is required else: msg = "{name} must be called with command or permissions argument" raise RuntimeError(msg.format(name="_permission_check")) return any(data['sender']['id'] in command_permissions[permission] for permission in permissions if permission in command_permissions)