From 82b7067f2210d207a8443e3976df4bb422a9e8cb Mon Sep 17 00:00:00 2001 From: Gordon Shumway <39967334+oddluck@users.noreply.github.com> Date: Mon, 11 Mar 2019 21:18:15 -0400 Subject: [PATCH] cleaner output --- Frotz/plugin.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/Frotz/plugin.py b/Frotz/plugin.py index 0adfed9..3c2214f 100644 --- a/Frotz/plugin.py +++ b/Frotz/plugin.py @@ -35,6 +35,7 @@ class Frotz(callbacks.Plugin): self.game = {} self.game_path = "{0}/games/".format(os.path.dirname(os.path.abspath(__file__))) self.binary = '{0}/frotz/dfrotz'.format(os.path.dirname(os.path.abspath(__file__))) + #self.prompts = [">", "***MORE***", pexpect.TIMEOUT, pexpect.EOF] def load(self, irc, msg, args, input): """ @@ -53,10 +54,10 @@ class Frotz(callbacks.Plugin): self.game[channel] = pexpect.spawn("{0} -S 0 {1}".format(self.binary, game_file)) response = self.output(self.game[channel]) if len(response) > 2: - irc.reply(re.sub(' +', ' ', response[0].strip(". ")), prefixNick=False) - irc.reply(" ".join(response[1:]).replace(' .', '.').strip(". "), prefixNick=False) + irc.reply(response[0].strip(), prefixNick=False) + irc.reply(" ".join(response[1:]).replace(" .", ".").strip(". ").strip(), prefixNick=False) else: - irc.reply(" ".join(response).replace(' .', '.').strip(". "), prefixNick=False) + irc.reply(" ".join(response).replace(" .", ".").strip(". ").strip(), prefixNick=False) load = wrap(load, ['text']) def output(self, output): @@ -65,9 +66,10 @@ class Frotz(callbacks.Plugin): output.expect(prompts, timeout=2) for line in output.before.splitlines(): if line.strip(): - response.append(line.decode().strip()) + line = re.sub('\s+', ' ', line.decode()) + response.append(line.strip()) return response - + def doPrivmsg(self, irc, msg): channel = msg.args[0] if callbacks.addressed(irc.nick, msg): @@ -80,10 +82,10 @@ class Frotz(callbacks.Plugin): self.game[channel].sendline(command) response = self.output(self.game[channel]) if len(response) > 2: - irc.reply(re.sub(' +', ' ', response[1].strip(". ")), prefixNick=False) - irc.reply(" ".join(response[2:]).replace(' .', '.').strip(". "), prefixNick=False) + irc.reply(response[1].strip(), prefixNick=False) + irc.reply(" ".join(response[2:]).replace(" .", ".").strip(". ").strip(), prefixNick=False) else: - irc.reply(" ".join(response).replace(' .', '.').strip(". "), prefixNick=False) + irc.reply(" ".join(response).replace(" .", ".").strip(". ").strip(), prefixNick=False) def stop(self, irc, msg, args): """ @@ -124,10 +126,10 @@ class Frotz(callbacks.Plugin): self.game[channel].sendline() response = self.output(self.game[channel]) if len(response) > 2: - irc.reply(re.sub(' +', ' ', response[1]), prefixNick=False) - irc.reply(" ".join(response[2:]).replace(' .', '.'), prefixNick=False) + irc.reply(response[1].strip(), prefixNick=False) + irc.reply(" ".join(response[2:]).replace(" .", ".").strip(". ").strip(), prefixNick=False) else: - irc.reply(" ".join(response).replace(' .', '.'), prefixNick=False) + irc.reply(" ".join(response).replace(" .", ".").strip(". ").strip(), prefixNick=False) else: irc.reply("No game running in {0}?".format(channel)) z = wrap(z, [additional('text')]) @@ -141,3 +143,4 @@ class Frotz(callbacks.Plugin): games = wrap(games) Class = Frotz +