//OPER String String
//PART [String]
//PASS String
- //PING [String]
- //PONG [String]
+ PING a mb = join " " ["PING",a:maybeToList mb]
+ PONG a mb = join " " ["PONG",a:maybeToList mb]
PRIVMSG dest msg = join " " ["PRIVMSG", dest, ":"+++msg]
QUIT msg = join " " ["QUIT":maybeToList msg]
//REHASH
#! io = io <<< ("Received: " +++ resp +++ "\n")
# ind = indexOf KEY resp
| ind > 0
- # cmd = split " " $ rtrim $ subString (ind + size KEY) (size resp - ind) resp
+ # cmd = split " " $ rtrim $ subString (ind + size KEY) (size resp) resp
#! io = io <<< ("Received command: " +++ printToString cmd +++ "\n")
# toSend = case cmd of
["stop":_] = Nothing
| isNothing toSend = (io, chan, w)
# (chan, w) = send (map toString $ fromJust toSend) chan w
= process io chan w
+| indexOf "PING :" resp > 0
+ # cmd = rtrim $ subString (indexOf "PING :" resp + size "PING :") (size resp) resp
+ # (chan, w) = send [toString $ PONG cmd Nothing] chan w
+ = process io chan w
= process io chan w
Start :: *World -> *World