From d1879fae05beb4e84f7c738b981381c98e98b991 Mon Sep 17 00:00:00 2001 From: Joe Robinson Date: Sat, 15 Apr 2017 18:04:05 +0200 Subject: Add join and part handling --- IrcHandler.py | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) (limited to 'IrcHandler.py') diff --git a/IrcHandler.py b/IrcHandler.py index 8b1b318..ff2053b 100644 --- a/IrcHandler.py +++ b/IrcHandler.py @@ -10,9 +10,9 @@ class IrcHandler(QObject): def __init__(self, window): super(self.__class__, self).__init__() self.channels = {} - self.nick = "" + self.nick = "wtest" self.server = "irc.blatech.net" - self.irc = IrcConnection.ircConnectThread() + self.irc = IrcConnection.ircConnectThread(self) self.window = window def get_channels(): @@ -30,10 +30,10 @@ class IrcHandler(QObject): def set_server(server): self.server = server - def get_nick(): + def get_nick(self): return self.nick - def set_nick(nick): + def set_nick(self, nick): self.nick = nick @pyqtSlot(str) @@ -71,11 +71,11 @@ class IrcHandler(QObject): if channelStr in self.channels: channel = self.channels[channelStr] chat_area = channel.get_view().findChild(QQuickItem, "chat_area") - chat_area.append(msg) + chat_area.append(nick + ": " + msg) @pyqtSlot(str, str) def handle_nicks(self, channelStr, users): - userlist = users.split(" ") + userlist = users.split(" ")[0:-1] if (channelStr in self.channels): channel = self.channels.get(channelStr) channel.set_users(userlist) @@ -83,11 +83,34 @@ class IrcHandler(QObject): for user in userlist: user_list.add_nick(user) + def handle_join(self, channelStr, user): + if (channelStr in self.channels): + channel = self.channels.get(channelStr) + channel.add_user(user) + user_list = channel.get_view().findChild(QQuickItem, "nick_list") + chat_area = channel.get_view().findChild(QQuickItem, "chat_area") + + if (user != self.get_nick()): + user_list.add_nick(user) + chat_area.append(user + " joined " + channelStr) + + + def handle_part(self, channelStr, user): + if (channelStr in self.channels): + channel = self.channels.get(channelStr) + channel.remove_user(user) + user_list = channel.get_view().findChild(QQuickItem, "nick_list") + chat_area = channel.get_view().findChild(QQuickItem, "chat_area") + if (user != self.get_nick()): + user_list.remove_nick(user) + chat_area.append(user + " left " + channelStr) + def connect_to_irc(self, view): self.irc.sig.connect(self.handle_msg) self.irc.join_sig.connect(self.join_channel) self.irc.namreply_sig.connect(self.handle_nicks) - # self.irc.nick_sig.connect(self.add_nick) + self.irc.nick_sig.connect(self.handle_join) + self.irc.part_sig.connect(self.handle_part) # self.irc.join_sig.connect(self.join_channel) self.irc.start() self.sig.connect(self.irc.send_msg) -- cgit v1.2.3