#! 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
- ["ping":_] = Just [msg "pong"]
- ["help":_] = Just [msg "not implemented yet"]
+ ["ping":xs] = Just [msg $ "pong " +++ join " " xs]
+ ["help"] = Just
+ [msg "type !help cmd for command specific help"
+ ,msg "available commands: help, ping"]
+ ["help":c:_] = case c of
+ "help" = Just [msg "help [CMD] - I will print general help or the help of CMD"]
+ "ping" = Just [msg "ping [TXT] - I will reply with pong and the optionar TXT"]
+ _ = Just [msg "Unknown command"]
[c:_] = Just [msg $ join " " ["unknown command: " , c, ", type !help to get help"]]
| 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
+ #! io <<< (toString $ PONG cmd Nothing) <<< "\n"
+ # (chan, w) = send [toString $ PONG cmd Nothing] chan w
+ = process io chan w
= process io chan w
Start :: *World -> *World