From b1cf70e043fac51f1214b5923da334b2478a2776 Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Sat, 11 May 2019 16:14:30 -0400 Subject: [PATCH] more verbose logic for text splitting --- sopel_modules/SpiceBot_osd/__init__.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/sopel_modules/SpiceBot_osd/__init__.py b/sopel_modules/SpiceBot_osd/__init__.py index baa2b0e..ce6dd3c 100644 --- a/sopel_modules/SpiceBot_osd/__init__.py +++ b/sopel_modules/SpiceBot_osd/__init__.py @@ -177,15 +177,14 @@ class ToolsOSD: if not isinstance(messages, list): messages = [messages] - messages_list = [''] + messages_list = [] message_padding = 4 * " " for message in messages: - if len((messages_list[-1] + message_padding + message).encode('utf-8')) <= max_length: - if messages_list[-1] == '': - messages_list[-1] = message - else: - messages_list[-1] = messages_list[-1] + message_padding + message + if not len(messages_list) and len(message.encode('utf-8')) <= max_length: + messages_list[-1] = message + elif len(messages_list) and len((messages_list[-1] + message_padding + message).encode('utf-8')) <= max_length: + messages_list[-1] = messages_list[-1] + message_padding + message else: text_list = [] while len(message.encode('utf-8')) > max_length and not message.isspace(): @@ -204,7 +203,13 @@ class ToolsOSD: message = message[last_space:] if len(message.encode('utf-8')) and not message.isspace(): text_list.append(message) - messages_list.extend(text_list) + for splitmsg in text_list: + if not len(messages_list) and len(splitmsg.encode('utf-8')) <= max_length: + messages_list[-1] = splitmsg + elif len(messages_list) and len((messages_list[-1] + message_padding + splitmsg).encode('utf-8')) <= max_length: + messages_list[-1] = messages_list[-1] + message_padding + splitmsg + else: + messages_list.append(splitmsg) return messages_list