Files
ninachloe/FaustBot/Communication/JoinObservable.py
2022-03-31 15:21:47 +02:00

25 lines
930 B
Python

import _thread
from FaustBot.Communication.Observable import Observable
class JoinObservable(Observable):
def input(self, raw_data, connection):
# ":nick!user@host" "JOIN" "#channel"
# additional ignored arguments are put into "ign". This could be used
# for http://ircv3.net/specs/extensions/extended-join-3.1.html in the
# future.
prefix, cmd, channel, *ign = raw_data.split(' ')
hostmask = prefix.lstrip(':')
nick, userhost = hostmask.split('!')
user, host = userhost.split('@')
data = {'raw': raw_data, 'nick': nick, 'user': user, 'host': host,
'channel': channel, 'raw_nick': hostmask}
self.notify_observers(data, connection)
def notify_observers(self, data, connection):
for observer in self._observers:
_thread.start_new_thread(observer.__class__.update_on_join, (observer, data, connection))