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))