mixster

mixster

Jun 30th, 2010
413
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.93 KB | None | 0 0
  1. #!/usr/bin/python
  2. class IRCReader:
  3.     def send(self, text):
  4.         print ">>" + text
  5.  
  6.     def quitMessage(self, x):
  7.         msg = x[1][2].split(" ")
  8.         if len(msg) >= 2:
  9.             msg = " ".join(msg[1:])
  10.         else:
  11.             msg = "Death is but a sweet release from life!"
  12.         self.send("QUIT :" + msg)
  13.         return "Completed!"
  14.  
  15.     def parse(self, data):
  16.         if data[0] == ":":
  17.             data = data[1:]
  18.             prefix = data[:data.find(" ")]
  19.             temp = prefix.partition("@")
  20.             host = temp[2]
  21.             temp = temp[0].partition("!")
  22.             nick, real = temp[0], temp[2]
  23.             prefix = (nick, real, host)
  24.         else:
  25.             prefix = ("", "", "")
  26.  
  27.         pe = data.find(" :")
  28.         trail = data[pe + 2:].split(" ")
  29.         params = data[:pe].split(" ")
  30.  
  31.         print str(prefix) + com + "::" + "|".join(params) + "[" + str(len(params)) + "]::" + " ".join(trail)
  32.  
  33.         return (prefix, (params, trail))
  34.  
  35.     def checkPrivmsg(self, data):
  36.         if data[1][1][0].startswith(self.nick):
  37.             del data[1][1][0]
  38.         elif data[1][0][1] == self.nick:
  39.             pass
  40.         else:
  41.             return "well, darn!"
  42.  
  43.         return self.act.get(data[1][1][0], lambda x: "Oh nose")(data)
  44.  
  45.     def setup(self):
  46.         self.nick = "mixster"
  47.  
  48.         self.act = {
  49.         "reply": lambda x: self.send("OMG IT'S A REPLY! " + " ".join(x[1][1][1:])),
  50.         "ping" : lambda x: self.send("Pong to you, bitch")
  51.         }
  52.  
  53.         self.ntc = {
  54.         "DIE": self.quitMessage
  55.         }
  56.  
  57.         self.cmd = {
  58.         "PING": lambda x: "PONG",
  59.         "NOTICE": lambda x: self.ntc.get(x[1][0][0], lambda x: "Nothing")(x),
  60.         "PRIVMSG": self.checkPrivmsg
  61.         }
  62.  
  63. data = (("nick", "user", "host"), (["PRIVMSG", "mixster"], ["reply", "text", "wat"]))
  64.  
  65. temp = IRCReader()
  66. temp.setup()
  67. print temp.cmd.get(data[1][0][0], lambda x: "Zilch")(data)
Add Comment
Please, Sign In to add comment