From a8e0bff26ee5e6725de87023a08cd17cc11050d9 Mon Sep 17 00:00:00 2001 From: Joscha Date: Wed, 12 Sep 2018 21:35:56 +0000 Subject: [PATCH] Convert to yaboli module --- morse.py | 42 ++++++++++++++---------------------------- 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/morse.py b/morse.py index 0fb4b0c..e591314 100644 --- a/morse.py +++ b/morse.py @@ -7,8 +7,7 @@ import yaboli from yaboli.utils import * -class Morse: - SHORT_DESCRIPTION = "convert to and from morse code" +class Morse(yaboli.Module): DESCRIPTION = ( "'morse' converts to and from morse code.\n" "In morse code, letters should be separated by spaces and words" @@ -25,6 +24,12 @@ class Morse: AUTHOR = "Created by @Garmy using github.com/Garmelon/yaboli\n" CREDITS = "Original bot by Leidenfrost.\n" + SHORT_DESCRIPTION = "convert to and from morse code" + SHORT_HELP = "/me converts to and from morse code" + + LONG_DESCRIPTION = DESCRIPTION + COMMANDS + CREDITS + LONG_HELP = DESCRIPTION + COMMANDS + AUTHOR + CREDITS + MORSE_RE = r"[\.\-\/ ]+" TO_MORSE = { @@ -81,6 +86,10 @@ class Morse: } FROM_MORSE = {v: i for i, v in TO_MORSE.items()} + async def on_command_general(self, room, message, command, argstr): + await self.command_demorse(room, message, command, argstr) + await self.command_morse(room, message, command, argstr) + @classmethod def from_morse(cls, text): words = [word.strip() for word in text.split("/")] @@ -161,31 +170,6 @@ class Morse: translated = [self.to_morse(line) for line in lines] await room.send("\n".join(translated), message.mid) -class MorseBot(yaboli.Bot): - SHORT_HELP = Morse.SHORT_DESCRIPTION - LONG_HELP = Morse.DESCRIPTION + Morse.COMMANDS + Morse.AUTHOR + Morse.CREDITS - PING_TEXT = ".--. --- -. --." - - def __init__(self, nick, cookiefile=None): - super().__init__(nick, cookiefile=cookiefile) - self.morse = Morse() - - async def on_command_specific(self, room, message, command, nick, argstr): - if similar(nick, room.session.nick) and not argstr: - await self.botrulez_ping(room, message, command, text=self.PING_TEXT) - await self.botrulez_help(room, message, command, text=self.LONG_HELP) - await self.botrulez_uptime(room, message, command) - await self.botrulez_kill(room, message, command) - await self.botrulez_restart(room, message, command) - - async def on_command_general(self, room, message, command, argstr): - if not argstr: - await self.botrulez_ping(room, message, command, text=self.PING_TEXT) - await self.botrulez_help(room, message, command, text=self.SHORT_HELP) - - await self.morse.command_demorse(room, message, command, argstr) - await self.morse.command_morse(room, message, command, argstr) - def main(configfile): logging.basicConfig(level=logging.INFO) @@ -194,7 +178,9 @@ def main(configfile): nick = config.get("general", "nick") cookiefile = config.get("general", "cookiefile", fallback=None) - bot = MorseBot(nick, cookiefile=cookiefile) + module = Morse() + + bot = yaboli.ModuleBot(module, nick, cookiefile=cookiefile) for room, password in config.items("rooms"): if not password: