Add !help [modulename]
This commit is contained in:
parent
b6774f15a4
commit
77d30c6a82
|
@ -75,7 +75,18 @@ class BotModule(ABC):
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def help(self):
|
def help(self):
|
||||||
"""Return one-liner help text"""
|
"""Return one-liner help text"""
|
||||||
pass
|
return 'A cool hemppa module'
|
||||||
|
|
||||||
|
def long_help(self, bot=None, room=None, event=None, args=[]):
|
||||||
|
"""Return longer help text
|
||||||
|
|
||||||
|
Used by help module as !help modulename [args ...]
|
||||||
|
bot, room, and event are passed to allow a module
|
||||||
|
to give contextual help
|
||||||
|
|
||||||
|
If not defined, falls back to short help
|
||||||
|
"""
|
||||||
|
return self.help()
|
||||||
|
|
||||||
def get_settings(self):
|
def get_settings(self):
|
||||||
"""Must return a dict object that can be converted to JSON and sent to server
|
"""Must return a dict object that can be converted to JSON and sent to server
|
||||||
|
|
|
@ -4,16 +4,30 @@ from modules.common.module import BotModule
|
||||||
class MatrixModule(BotModule):
|
class MatrixModule(BotModule):
|
||||||
|
|
||||||
async def matrix_message(self, bot, room, event):
|
async def matrix_message(self, bot, room, event):
|
||||||
msg = f'This is Hemppa {bot.version}, a generic Matrix bot. Known commands:\n\n'
|
|
||||||
|
|
||||||
for modulename, moduleobject in bot.modules.items():
|
args = event.body.split()[1:]
|
||||||
if moduleobject.enabled:
|
if len(args) > 0:
|
||||||
msg = msg + '!' + modulename
|
msg = ''
|
||||||
try:
|
modulename = args.pop(0)
|
||||||
msg = msg + ' - ' + moduleobject.help() + '\n'
|
moduleobject = bot.modules.get(modulename)
|
||||||
except AttributeError:
|
if not moduleobject.enabled:
|
||||||
pass
|
msg += f'{modulename} is disabled\n'
|
||||||
msg = msg + "\nMore information at https://github.com/vranki/hemppa"
|
try:
|
||||||
|
msg += moduleobject.long_help(bot=bot, room=room, event=event, args=args)
|
||||||
|
except AttributeError:
|
||||||
|
msg += f'{modulename} has no help'
|
||||||
|
|
||||||
|
else:
|
||||||
|
msg = f'This is Hemppa {bot.version}, a generic Matrix bot. Known commands:\n\n'
|
||||||
|
|
||||||
|
for modulename, moduleobject in bot.modules.items():
|
||||||
|
if moduleobject.enabled:
|
||||||
|
msg = msg + '!' + modulename
|
||||||
|
try:
|
||||||
|
msg = msg + ' - ' + moduleobject.help() + '\n'
|
||||||
|
except AttributeError:
|
||||||
|
pass
|
||||||
|
msg = msg + "\nMore information at https://github.com/vranki/hemppa"
|
||||||
await bot.send_text(room, msg)
|
await bot.send_text(room, msg)
|
||||||
|
|
||||||
def help(self):
|
def help(self):
|
||||||
|
|
Loading…
Reference in New Issue