From 166a8206a3747628182a97acbc25bf393e78eac9 Mon Sep 17 00:00:00 2001 From: Joe Robinson Date: Sat, 15 Apr 2017 16:08:40 +0200 Subject: Handle joining of channels, tab UI, probably some other things --- IrcConnection.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) (limited to 'IrcConnection.py') diff --git a/IrcConnection.py b/IrcConnection.py index e51e4e3..4a1d9ed 100644 --- a/IrcConnection.py +++ b/IrcConnection.py @@ -1,14 +1,18 @@ from PyQt5.QtCore import QUrl, QThread, pyqtSignal, QObject, pyqtSlot, Qt import irc.client +import IrcHandler + class ircConnectThread(QThread): - sig = pyqtSignal(str) + sig = pyqtSignal(str, str, str) nick_sig = pyqtSignal(str, str) join_sig = pyqtSignal(str) + namreply_sig = pyqtSignal(str, str) def __init__(self): QThread.__init__(self) self.reactor = irc.client.Reactor() self.server = self.reactor.server() + self.handler = IrcHandler.IrcHandler def __del__(self): self.wait() @@ -31,25 +35,24 @@ class ircConnectThread(QThread): def on_connect(self, connection, event): if irc.client.is_channel("#wtest"): - connection.join("#wtest") + self.join_sig.emit("#wtest") return def on_pubmsg(self, connection, event): - self.sig.emit(event.source + ": " + event.arguments[0]) + print(event) + self.sig.emit(event.target, event.source, event.arguments[0]) def on_privmsg(self, connection, event): - self.sig.emit(event.source + ": " + event.arguments[0]) + self.sig.emit(event.source, "", event.arguments[0]) def on_join(self, connection, event): print(event) nick = event.source.split("!")[0] self.nick_sig.emit(event.target, event.source.split("!")[0]) - self.sig.emit(event.source + " joined " + event.target) + self.sig.emit(event.target, "", event.source + " joined " + event.target) def on_names(self, connection, event): print(event) - for nick in event.arguments[2].split(" "): - if (nick.strip() != ""): - self.nick_sig.emit(event.arguments[1], nick) + self.namreply_sig.emit(event.arguments[1], event.arguments[2]) @pyqtSlot(str, str) def send_msg(self, channel, message): @@ -59,7 +62,9 @@ class ircConnectThread(QThread): self.server.privmsg(channel, message) print(message) - def handle_join(self, message): - print(message) - self.c.join(message.split(" ")[1]) - self.join_sig.emit(message.split(" ")[1]) + @pyqtSlot(str) + def join_channel(self, channel): + print(channel) + self.c.join(channel) + #TODO: handle errors such as invalid/passworded channel + return True -- cgit v1.2.3