import itertools from sopel import plugin from sopel_SpiceBot_Core_1 import sb from sopel_SpiceBot_Core_Prerun import prerun @prerun() @plugin.nickname_command('test') def sb_test_commands(bot, trigger): bot.say("%s" % trigger.raw) @plugin.nickname_command('command_groups') def sb_test_command_groups(bot, trigger): plugin_commands = itertools.chain( bot.rules.get_all_commands(), bot.rules.get_all_action_commands(), bot.rules.get_all_nick_commands(), ) for plugin_name, commands in plugin_commands: for command in commands.values(): bot.say(str(command.name)) sb.osd(str(dir(command)), trigger.sender) return commands = ( (command, command.get_doc(), command.get_usages()) for plugin_name, commands in plugin_commands for command in commands.values() ) for command, doc, usages in commands: bot.say(str(dir(command))) return realcommands = dict( (name, (doc.splitlines(), [u['text'] for u in usages])) for command, doc, usages in commands for name in ((command.name,) + command.aliases) ) sb.osd(str(realcommands), trigger.sender) # sb.osd(msgs, trigger.sender) @prerun() @plugin.nickname_command('commands') def sopel_commands(bot, trigger): bot.say("testing commands") sb.osd(sb.commands.sopel_commands, trigger.sender) @prerun() @plugin.nickname_command('nickname_commands') def sopel_nickname_commands(bot, trigger): bot.say("testing nickname_commands") sb.osd(sb.commands.sopel_nickname_commands, trigger.sender) @prerun() @plugin.nickname_command('action_commands') def sopel_action_commands(bot, trigger): bot.say("testing action_commands") sb.osd(sb.commands.sopel_action_commands, trigger.sender)