From 6d185593b351a9c229af10d8d35e413039a516a7 Mon Sep 17 00:00:00 2001 From: Matt Arnold Date: Tue, 22 Feb 2022 14:32:06 -0500 Subject: Add fun stuff to the sample, and error handling at protocol --- IRC.py | 5 ++++- client.py | 9 ++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/IRC.py b/IRC.py index a67e65d..90ef1fa 100644 --- a/IRC.py +++ b/IRC.py @@ -92,14 +92,17 @@ class IRCBot: self.send_cmd(usermsg) nickmsg = irctokens.build("NICK", [botnick]) self.send_cmd(nickmsg) + def get_response(self): # Get the response resp = self.irc.recv(4096).decode("UTF-8") msg = parsemsg(resp) nwmsg = irctokens.tokenise(resp) - + printred(nwmsg.command) if nwmsg.command == "001": self.on_welcome(nwmsg.params) + if nwmsg.command == "ERROR": + raise IRCError(str(nwmsg.params[0])) if nwmsg.command == 'PING': print('Sending pong') self.irc.send( diff --git a/client.py b/client.py index bbd0649..a3ce217 100644 --- a/client.py +++ b/client.py @@ -16,7 +16,7 @@ with open('config.json') as f: jld = f.read() config = json.loads(jld) -botpass = "unused.factor.this.out" + # Need to pass the IRCBot class a socket the reason it doesn't do this itself is # so you can set up TLS or not as you need it @@ -39,6 +39,10 @@ def generate_response(person, message): return "Greetings Master" elif msg.lower() == "hello": return "Greetings Human!" + elif "Ground Control to Major Tom" in msg: + return "Put your helmet on!" + elif "Ziggy Stardust" in msg: + return "Looks good in leather pants" else: return None @@ -56,5 +60,8 @@ while True: msg = oursock.recv(4096) print(msg) sys.exit(0) + except IRCError as e: + printred(e) + sys.exit(1) -- cgit 1.4.1-2-gfad0