diff options
Diffstat (limited to 'IrcConnection.py')
-rw-r--r-- | IrcConnection.py | 29 |
1 files changed, 17 insertions, 12 deletions
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 |