From 55e27fd94e5209c813d29e41dbdb05838995f8d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juhani=20Krekel=C3=A4?= Date: Mon, 6 May 2019 14:13:13 +0300 Subject: [PATCH] Do line wrapping for long messages --- botcmd.py | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/botcmd.py b/botcmd.py index 66da556..7df6153 100644 --- a/botcmd.py +++ b/botcmd.py @@ -19,10 +19,40 @@ class GameLoop(threading.Thread): threading.Thread.__init__(self) def send(self, message): - self.irc.bot_response(self.irc_chan, message) + message_parts = message.encode().split(b' ') + + line = [] + line_len = 0 + for part in message_parts: + if len(part) + line_len > 440: + self.irc.bot_response(self.irc_chan, b' '.join(line)) + line = [] + line_len = 0 + + line.append(part) + line_len += len(part) + 1 + + if len(line) > 0: + self.irc.bot_response(self.irc_chan, b' '.join(line)) def notice(self, recipient, message): - self.irc.send_raw(b'NOTICE %s :%s' % (recipient.encode(), message.encode())) + recipient = recipient.encode() + + message_parts = message.encode().split(b' ') + + line = [] + line_len = 0 + for part in message_parts: + if len(part) + line_len > 440: + self.irc.send_raw(b'NOTICE %s :%s' % (recipient, b' '.join(line))) + line = [] + line_len = 0 + + line.append(part) + line_len += len(part) + 1 + + if len(line) > 0: + self.irc.send_raw(b'NOTICE %s :%s' % (recipient, b' '.join(line))) def get_event(self): event = self.chan.recv()