Add fun stuff to the sample, and error handling at protocol

This commit is contained in:
Matt Arnold 2022-02-22 14:32:06 -05:00
parent 66f447b696
commit 6d185593b3
2 changed files with 12 additions and 2 deletions

5
IRC.py
View File

@ -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(

View File

@ -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)