From b1cf70e043fac51f1214b5923da334b2478a2776 Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Sat, 11 May 2019 16:14:30 -0400 Subject: [PATCH 1/9] 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 From 120dfec954a460aa5a01afa5809492cb0648b3c6 Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Sat, 11 May 2019 16:39:07 -0400 Subject: [PATCH 2/9] Split AI functionality --- sopel_modules/SpiceBot_AI/AI.py | 64 ------------------- sopel_modules/SpiceBot_AI/AI_Acknowledge.py | 15 +++++ sopel_modules/SpiceBot_AI/AI_Goodbye.py | 19 ++++++ sopel_modules/SpiceBot_AI/AI_Hello.py | 19 ++++++ sopel_modules/SpiceBot_AI/AI_InsultHandler.py | 10 +++ sopel_modules/SpiceBot_AI/AI_Lazy.py | 15 +++++ sopel_modules/SpiceBot_AI/AI_Thanks.py | 20 ++++++ sopel_modules/SpiceBot_AI/__init__.py | 6 ++ 8 files changed, 104 insertions(+), 64 deletions(-) create mode 100644 sopel_modules/SpiceBot_AI/AI_Acknowledge.py create mode 100644 sopel_modules/SpiceBot_AI/AI_Goodbye.py create mode 100644 sopel_modules/SpiceBot_AI/AI_Hello.py create mode 100644 sopel_modules/SpiceBot_AI/AI_InsultHandler.py create mode 100644 sopel_modules/SpiceBot_AI/AI_Lazy.py create mode 100644 sopel_modules/SpiceBot_AI/AI_Thanks.py diff --git a/sopel_modules/SpiceBot_AI/AI.py b/sopel_modules/SpiceBot_AI/AI.py index eda930e..97adc03 100644 --- a/sopel_modules/SpiceBot_AI/AI.py +++ b/sopel_modules/SpiceBot_AI/AI.py @@ -10,70 +10,6 @@ from sopel_modules.SpiceBot_SBTools import sopel_triggerargs, googlesearch, bot_ from sopel_modules.SpiceBot_Events.System import bot_events_check -@sopel.module.rule(r'(?i)(hi|hello|hey),? $nickname[ \t]*$') -def bot_command_hello(bot, trigger): - hello = spicemanip.main(['Hi', 'Hey', 'Hello'], "random") - punctuation = spicemanip.main(['', '!', '?'], "random") - bot.osd(hello + ' ' + trigger.nick + punctuation) - - -@sopel.module.nickname_commands('hello', 'hi', 'hey') -def bot_command_hello_b(bot, trigger): - bot_command_hello(bot, trigger) - - -@sopel.module.rule(r'(?i)(bye|goodbye|gtg|seeya|cya|ttyl|g2g|gnight|goodnight),? $nickname[ \t]*$') -def bot_command_goodbye(bot, trigger): - byemsg = spicemanip.main(['Bye', 'Goodbye', 'Seeya', 'Auf Wiedersehen', 'Au revoir', 'Ttyl'], "random") - punctuation = spicemanip.main(['!', ''], "random") - bot.say(byemsg + ' ' + trigger.nick + punctuation) - - -@sopel.module.nickname_commands("bye", "goodbye", "gtg", "seeya", "cya", "ttyl", "g2g", "gnight", "goodnight") -def bot_command_goodbye_b(bot, trigger): - bot_command_goodbye(bot, trigger) - - -@sopel.module.rule(r'(?i)(thank you|thanks),? $nickname[ \t]*$') -def bot_command_thanks(bot, trigger): - bot.reply("You're welcome.") - - -@sopel.module.rule('$nickname thank you') -def bot_command_thanks_b(bot, trigger): - bot_command_thanks(bot, trigger) - - -@sopel.module.nickname_commands('thanks') -def bot_command_thanks_c(bot, trigger): - bot_command_thanks(bot, trigger) - - -@sopel.module.rule('$nickname!') -def exclaim(bot, trigger): - bot.say(trigger.nick + '!') - - -@sopel.module.rule('$nickname\?') -def imhere(bot, trigger): - bot.say("I'm here, " + trigger.nick) - - -@sopel.module.rule(r'(?i)(Fuck|Screw) (you|off),? $nickname[ \t]*$') -def bot_command_srewyou(bot, trigger): - bot.osd("Watch your mouth, " + trigger.nick + ", or I'll tell your mother!") - - -@sopel.module.rule(r'(?i)(Damnit|Lazy)? $nickname[ \t]*$') -def bot_command_damnlazy(bot, trigger): - bot.osd("I do not tell you how to do your job, " + trigger.nick + "!!!") - - -@sopel.module.rule('$nickname is lazy') -def bot_command_damnlazy_b(bot, trigger): - bot.osd("I do not tell you how to do your job, " + trigger.nick + "!!!") - - @sopel.module.nickname_commands('(.*)') def bot_command_nick(bot, trigger): diff --git a/sopel_modules/SpiceBot_AI/AI_Acknowledge.py b/sopel_modules/SpiceBot_AI/AI_Acknowledge.py new file mode 100644 index 0000000..e9e626e --- /dev/null +++ b/sopel_modules/SpiceBot_AI/AI_Acknowledge.py @@ -0,0 +1,15 @@ +# coding=utf-8 + +from __future__ import unicode_literals, absolute_import, division, print_function + +import sopel.module + + +@sopel.module.rule('$nickname!') +def exclaim(bot, trigger): + bot.say(trigger.nick + '!') + + +@sopel.module.rule('$nickname\?') +def imhere(bot, trigger): + bot.say("I'm here, " + trigger.nick) diff --git a/sopel_modules/SpiceBot_AI/AI_Goodbye.py b/sopel_modules/SpiceBot_AI/AI_Goodbye.py new file mode 100644 index 0000000..7f93bef --- /dev/null +++ b/sopel_modules/SpiceBot_AI/AI_Goodbye.py @@ -0,0 +1,19 @@ +# coding=utf-8 + +from __future__ import unicode_literals, absolute_import, division, print_function + +import sopel.module + +import spicemanip + + +@sopel.module.rule(r'(?i)(bye|goodbye|gtg|seeya|cya|ttyl|g2g|gnight|goodnight),? $nickname[ \t]*$') +def bot_command_goodbye(bot, trigger): + byemsg = spicemanip.main(['Bye', 'Goodbye', 'Seeya', 'Auf Wiedersehen', 'Au revoir', 'Ttyl'], "random") + punctuation = spicemanip.main(['!', ''], "random") + bot.say(byemsg + ' ' + trigger.nick + punctuation) + + +@sopel.module.nickname_commands("bye", "goodbye", "gtg", "seeya", "cya", "ttyl", "g2g", "gnight", "goodnight") +def bot_command_goodbye_b(bot, trigger): + bot_command_goodbye(bot, trigger) diff --git a/sopel_modules/SpiceBot_AI/AI_Hello.py b/sopel_modules/SpiceBot_AI/AI_Hello.py new file mode 100644 index 0000000..ee30964 --- /dev/null +++ b/sopel_modules/SpiceBot_AI/AI_Hello.py @@ -0,0 +1,19 @@ +# coding=utf-8 + +from __future__ import unicode_literals, absolute_import, division, print_function + +import sopel.module + +import spicemanip + + +@sopel.module.rule(r'(?i)(hi|hello|hey),? $nickname[ \t]*$') +def bot_command_hello(bot, trigger): + hello = spicemanip.main(['Hi', 'Hey', 'Hello'], "random") + punctuation = spicemanip.main(['', '!', '?'], "random") + bot.osd(hello + ' ' + trigger.nick + punctuation) + + +@sopel.module.nickname_commands('hello', 'hi', 'hey') +def bot_command_hello_b(bot, trigger): + bot_command_hello(bot, trigger) diff --git a/sopel_modules/SpiceBot_AI/AI_InsultHandler.py b/sopel_modules/SpiceBot_AI/AI_InsultHandler.py new file mode 100644 index 0000000..910dd7b --- /dev/null +++ b/sopel_modules/SpiceBot_AI/AI_InsultHandler.py @@ -0,0 +1,10 @@ +# coding=utf-8 + +from __future__ import unicode_literals, absolute_import, division, print_function + +import sopel.module + + +@sopel.module.rule(r'(?i)(Fuck|Screw) (you|off),? $nickname[ \t]*$') +def bot_command_srewyou(bot, trigger): + bot.osd("Watch your mouth, " + trigger.nick + ", or I'll tell your mother!") diff --git a/sopel_modules/SpiceBot_AI/AI_Lazy.py b/sopel_modules/SpiceBot_AI/AI_Lazy.py new file mode 100644 index 0000000..a3385a6 --- /dev/null +++ b/sopel_modules/SpiceBot_AI/AI_Lazy.py @@ -0,0 +1,15 @@ +# coding=utf-8 + +from __future__ import unicode_literals, absolute_import, division, print_function + +import sopel.module + + +@sopel.module.rule(r'(?i)(Damnit|Lazy)? $nickname[ \t]*$') +def bot_command_damnlazy(bot, trigger): + bot.osd("I do not tell you how to do your job, " + trigger.nick + "!!!") + + +@sopel.module.rule('$nickname is lazy') +def bot_command_damnlazy_b(bot, trigger): + bot_command_damnlazy(bot, trigger) diff --git a/sopel_modules/SpiceBot_AI/AI_Thanks.py b/sopel_modules/SpiceBot_AI/AI_Thanks.py new file mode 100644 index 0000000..01f21d1 --- /dev/null +++ b/sopel_modules/SpiceBot_AI/AI_Thanks.py @@ -0,0 +1,20 @@ +# coding=utf-8 + +from __future__ import unicode_literals, absolute_import, division, print_function + +import sopel.module + + +@sopel.module.rule(r'(?i)(thank you|thanks),? $nickname[ \t]*$') +def bot_command_thanks(bot, trigger): + bot.reply("You're welcome.") + + +@sopel.module.rule('$nickname thank you') +def bot_command_thanks_b(bot, trigger): + bot_command_thanks(bot, trigger) + + +@sopel.module.nickname_commands('thanks') +def bot_command_thanks_c(bot, trigger): + bot_command_thanks(bot, trigger) diff --git a/sopel_modules/SpiceBot_AI/__init__.py b/sopel_modules/SpiceBot_AI/__init__.py index b1447b6..ba6da7a 100644 --- a/sopel_modules/SpiceBot_AI/__init__.py +++ b/sopel_modules/SpiceBot_AI/__init__.py @@ -2,6 +2,12 @@ from __future__ import unicode_literals, absolute_import, division, print_function from .AI import * +from .AI_Hello import * +from .AI_Goodbye import * +from .AI_Thanks import * +from .AI_Acknowledge import * +from .AI_Lazy import * +from .AI_InsultHandler import * __author__ = 'Sam Zick' __email__ = 'sam@deathbybandaid.net' From 26022a2a2cb864e3506595fd20fbb718ab663afc Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Sat, 11 May 2019 16:46:34 -0400 Subject: [PATCH 3/9] Adjust osd logic --- sopel_modules/SpiceBot_AI/AI_Ping.py | 15 +++++++++++++++ sopel_modules/SpiceBot_AI/__init__.py | 1 + sopel_modules/SpiceBot_osd/__init__.py | 5 ----- 3 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 sopel_modules/SpiceBot_AI/AI_Ping.py diff --git a/sopel_modules/SpiceBot_AI/AI_Ping.py b/sopel_modules/SpiceBot_AI/AI_Ping.py new file mode 100644 index 0000000..4931797 --- /dev/null +++ b/sopel_modules/SpiceBot_AI/AI_Ping.py @@ -0,0 +1,15 @@ +# coding=utf-8 + +from __future__ import unicode_literals, absolute_import, division, print_function + +import sopel.module + + +@sopel.module.rule(r'(?i)(ping),? $nickname[ \t]*$') +def bot_command_ping(bot, trigger): + bot.say("Pong") + + +@sopel.module.nickname_commands('ping') +def bot_command_ping_b(bot, trigger): + bot_command_ping(bot, trigger) diff --git a/sopel_modules/SpiceBot_AI/__init__.py b/sopel_modules/SpiceBot_AI/__init__.py index ba6da7a..18cca3e 100644 --- a/sopel_modules/SpiceBot_AI/__init__.py +++ b/sopel_modules/SpiceBot_AI/__init__.py @@ -8,6 +8,7 @@ from .AI_Thanks import * from .AI_Acknowledge import * from .AI_Lazy import * from .AI_InsultHandler import * +from .AI_Ping import * __author__ = 'Sam Zick' __email__ = 'sam@deathbybandaid.net' diff --git a/sopel_modules/SpiceBot_osd/__init__.py b/sopel_modules/SpiceBot_osd/__init__.py index ce6dd3c..d4929a4 100644 --- a/sopel_modules/SpiceBot_osd/__init__.py +++ b/sopel_modules/SpiceBot_osd/__init__.py @@ -54,7 +54,6 @@ def setup(bot): sopel.bot.SopelWrapper.action = SopelWrapperOSD.action sopel.bot.SopelWrapper.notice = SopelWrapperOSD.notice sopel.bot.SopelWrapper.reply = SopelWrapperOSD.reply - sopel.bot.SopelWrapper.msg = SopelWrapperOSD.msg # verify config settings for server bot_logging(bot, 'SpiceBot_OSD', "Checking for config settings") @@ -394,10 +393,6 @@ class SopelWrapperOSD(object): recipients = self._trigger.sender self._bot.osd(self, messages, recipients, text_method, max_messages) - def msg(self, destination, message, max_messages=1): - self._bot.osd(self, message, destination, 'PRIVMSG', 1) - # self._bot.msg(destination, message, max_messages) - def say(self, message, destination=None, max_messages=1): if destination is None: destination = self._trigger.sender From 39515b4365988b61c20324ed502563a8f288a291 Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Sat, 11 May 2019 16:51:20 -0400 Subject: [PATCH 4/9] revert osd logic --- sopel_modules/SpiceBot_osd/__init__.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/sopel_modules/SpiceBot_osd/__init__.py b/sopel_modules/SpiceBot_osd/__init__.py index d4929a4..7bd3142 100644 --- a/sopel_modules/SpiceBot_osd/__init__.py +++ b/sopel_modules/SpiceBot_osd/__init__.py @@ -176,14 +176,15 @@ class ToolsOSD: if not isinstance(messages, list): messages = [messages] - messages_list = [] + messages_list = [''] message_padding = 4 * " " for message in messages: - 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 + 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 else: text_list = [] while len(message.encode('utf-8')) > max_length and not message.isspace(): @@ -202,13 +203,7 @@ class ToolsOSD: message = message[last_space:] if len(message.encode('utf-8')) and not message.isspace(): text_list.append(message) - 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) + messages_list.extend(text_list) return messages_list From e013aebda44bec6282713523a14b27f117d15e5c Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Sat, 11 May 2019 16:59:05 -0400 Subject: [PATCH 5/9] parenthethis --- sopel_modules/SpiceBot_AI/AI_Thanks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sopel_modules/SpiceBot_AI/AI_Thanks.py b/sopel_modules/SpiceBot_AI/AI_Thanks.py index 01f21d1..be80f7f 100644 --- a/sopel_modules/SpiceBot_AI/AI_Thanks.py +++ b/sopel_modules/SpiceBot_AI/AI_Thanks.py @@ -10,7 +10,7 @@ def bot_command_thanks(bot, trigger): bot.reply("You're welcome.") -@sopel.module.rule('$nickname thank you') +@sopel.module.rule('$nickname (thank you)') def bot_command_thanks_b(bot, trigger): bot_command_thanks(bot, trigger) From 6f7989889e41e5bfca94a59dabbfc64367e1fb7a Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Sat, 11 May 2019 17:02:16 -0400 Subject: [PATCH 6/9] true love --- sopel_modules/SpiceBot_AI/AI_Love.py | 20 ++++++++++++++++++++ sopel_modules/SpiceBot_AI/__init__.py | 1 + 2 files changed, 21 insertions(+) create mode 100644 sopel_modules/SpiceBot_AI/AI_Love.py diff --git a/sopel_modules/SpiceBot_AI/AI_Love.py b/sopel_modules/SpiceBot_AI/AI_Love.py new file mode 100644 index 0000000..66cd4f3 --- /dev/null +++ b/sopel_modules/SpiceBot_AI/AI_Love.py @@ -0,0 +1,20 @@ +# coding=utf-8 + +from __future__ import unicode_literals, absolute_import, division, print_function + +import sopel.module + + +@sopel.module.rule(r'(?i)(I love you|loveya),? $nickname[ \t]*$') +def bot_command_love(bot, trigger): + bot.reply("You're welcome.") + + +@sopel.module.rule('$nickname (loveya|I love you)') +def bot_command_love_b(bot, trigger): + bot_command_love(bot, trigger) + + +@sopel.module.nickname_commands('loveya') +def bot_command_love_c(bot, trigger): + bot_command_love(bot, trigger) diff --git a/sopel_modules/SpiceBot_AI/__init__.py b/sopel_modules/SpiceBot_AI/__init__.py index 18cca3e..93aecc7 100644 --- a/sopel_modules/SpiceBot_AI/__init__.py +++ b/sopel_modules/SpiceBot_AI/__init__.py @@ -9,6 +9,7 @@ from .AI_Acknowledge import * from .AI_Lazy import * from .AI_InsultHandler import * from .AI_Ping import * +from .AI_Love import * __author__ = 'Sam Zick' __email__ = 'sam@deathbybandaid.net' From 12f24d1e4b4330782a0bb1eabc5961c4276f5d3f Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Sat, 11 May 2019 17:02:42 -0400 Subject: [PATCH 7/9] fix response --- sopel_modules/SpiceBot_AI/AI_Love.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sopel_modules/SpiceBot_AI/AI_Love.py b/sopel_modules/SpiceBot_AI/AI_Love.py index 66cd4f3..7c9a367 100644 --- a/sopel_modules/SpiceBot_AI/AI_Love.py +++ b/sopel_modules/SpiceBot_AI/AI_Love.py @@ -7,7 +7,7 @@ import sopel.module @sopel.module.rule(r'(?i)(I love you|loveya),? $nickname[ \t]*$') def bot_command_love(bot, trigger): - bot.reply("You're welcome.") + bot.reply("I love you too.") @sopel.module.rule('$nickname (loveya|I love you)') From ecca6495b5c4cca9235cb1135fdb697fd0b7ffc6 Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Sat, 11 May 2019 17:04:02 -0400 Subject: [PATCH 8/9] add like --- sopel_modules/SpiceBot_AI/AI_Love.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sopel_modules/SpiceBot_AI/AI_Love.py b/sopel_modules/SpiceBot_AI/AI_Love.py index 7c9a367..4693e2b 100644 --- a/sopel_modules/SpiceBot_AI/AI_Love.py +++ b/sopel_modules/SpiceBot_AI/AI_Love.py @@ -18,3 +18,13 @@ def bot_command_love_b(bot, trigger): @sopel.module.nickname_commands('loveya') def bot_command_love_c(bot, trigger): bot_command_love(bot, trigger) + + +@sopel.module.rule(r'(?i)(I like you),? $nickname[ \t]*$') +def bot_command_like(bot, trigger): + bot.reply("I like you too.") + + +@sopel.module.rule('$nickname (I like you)') +def bot_command_like_b(bot, trigger): + bot_command_like(bot, trigger) From e6025b16e53c3605f29632ad465db31f629e8c50 Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Sat, 11 May 2019 17:06:15 -0400 Subject: [PATCH 9/9] one more step --- sopel_modules/SpiceBot_AI/AI_Love.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sopel_modules/SpiceBot_AI/AI_Love.py b/sopel_modules/SpiceBot_AI/AI_Love.py index 4693e2b..8674317 100644 --- a/sopel_modules/SpiceBot_AI/AI_Love.py +++ b/sopel_modules/SpiceBot_AI/AI_Love.py @@ -20,6 +20,11 @@ def bot_command_love_c(bot, trigger): bot_command_love(bot, trigger) +@sopel.module.rule('(I love) $nickname') +def bot_command_love_d(bot, trigger): + bot_command_like(bot, trigger) + + @sopel.module.rule(r'(?i)(I like you),? $nickname[ \t]*$') def bot_command_like(bot, trigger): bot.reply("I like you too.") @@ -28,3 +33,8 @@ def bot_command_like(bot, trigger): @sopel.module.rule('$nickname (I like you)') def bot_command_like_b(bot, trigger): bot_command_like(bot, trigger) + + +@sopel.module.rule('(I like) $nickname') +def bot_command_like_c(bot, trigger): + bot_command_like(bot, trigger)