Add API.set_nick, .set_channels, .log

This commit is contained in:
Juhani Krekelä 2018-02-25 21:03:05 +02:00
parent 49cd979449
commit 53caed0d1c
2 changed files with 20 additions and 1 deletions

View File

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

View File

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