From 53caed0d1c32d2c9983ef71e7cc87e47de8f3a3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juhani=20Krekel=C3=A4?= Date: Sun, 25 Feb 2018 21:03:05 +0200 Subject: [PATCH] Add API.set_nick, .set_channels, .log --- constants.py | 2 +- ircbot.py | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/constants.py b/constants.py index 1764ee3..402a494 100644 --- a/constants.py +++ b/constants.py @@ -1,7 +1,7 @@ import enum class logmessage_types(enum.Enum): - sent, received, internal = range(3) + sent, received, internal, status = range(4) class internal_submessage_types(enum.Enum): quit, error = range(2) diff --git a/ircbot.py b/ircbot.py index aafd9ab..cdeb1e5 100644 --- a/ircbot.py +++ b/ircbot.py @@ -51,6 +51,11 @@ class LoggerThread(threading.Thread): else: print('--- ???', message_data) + # Messages about status from the bot code + elif message_type == logmessage_types.status: + assert len(message_data) == 1 + print('*', message_data[0]) + else: print('???', message_type, message_data) @@ -93,6 +98,11 @@ class API: with self.serverthread_object.nick_lock: return self.serverthread_object.nick + def set_nick(self, nick): + """Set the internal nick tracking state""" + with self.serverthread_object.nick_lock: + self.serverthread_object.nick = nick + def join(self, channel): """Send a JOIN command and update the internal channel tracking state""" with self.serverthread_object.channels_lock: @@ -112,6 +122,15 @@ class API: with self.serverthread_object.channels_lock: return self.serverthread_object.channels + def set_channels(self, channels): + """Set the current set of channels variable""" + with self.serverthread_object.channels_lock: + self.serverthread_object.channels = channels + + def log(self, message): + """Log a status message""" + self.serverthread_object.logging_channel.send((logmessage_types.status, message)) + def error(self, message): """Log an error""" self.serverthread_object.logging_channel.send((logmessage_types.internal, internal_submessage_types.error, message))