Add fun stuff to the sample, and error handling at protocol
This commit is contained in:
parent
66f447b696
commit
6d185593b3
5
IRC.py
5
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(
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue