#!/usr/bin/env python3 """ Displays help docs and examples for commands, as well as lists all commands available. """ import random from module import commands, example @commands('help', 'commands') @example('.help tell') def help(bot, trigger): """Shows a command's documentation, and possibly an example.""" if trigger.group(2): name = trigger.group(2) name = name.lower() if name not in bot.commands: return cmd = bot.commands[name] docstring, examples = cmd.doc if examples: ex = random.choice(examples) bot.msg(docstring) if cmd.aliases: bot.msg("Aliases: " + ", ".join(cmd.aliases)) if ex[0]: bot.msg("Ex. In: " + ex[0]) if ex[1]: bot.msg("Ex. Out: " + ex[1]) else: if trigger.owner: cmds = [cmd for _, cmd in bot.commands.items()] elif trigger.admin: cmds = [cmd for _, cmd in bot.commands.items() if cmd.priv <= 5] else: priv = bot.channels[trigger.channel].privileges[trigger.nick] cmds = [cmd for _, cmd in bot.commands.items() if cmd.priv <= priv] cmds = [cmd.name for cmd in cmds if cmd.canonical] cmds = sorted(cmds) msg = "Available commands: " + ", ".join(cmds) bot.msg(msg)