fulvia/modules/help.py

42 lines
1.0 KiB
Python
Raw Normal View History

2018-03-16 03:13:43 -04:00
#!/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:
2018-03-16 03:13:43 -04:00
return
doc = bot.commands[name].doc
2018-03-16 03:13:43 -04:00
docstring, examples = doc
if examples:
ex = random.choice(examples)
bot.msg(docstring)
if ex[0]:
2018-03-16 03:13:43 -04:00
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:
cmds = [cmd for _, cmd in bot.commands.items() if cmd.priv < 5]
cmds = [cmd.name for cmd in cmds if not cmd.alias]
cmds = sorted(cmds)
2018-03-16 03:13:43 -04:00
msg = "Available commands: " + ", ".join(cmds)
bot.msg(msg)