better code, ping response
authorMart Lubbers <mart@martlubbers.net>
Sun, 5 Mar 2017 14:12:44 +0000 (15:12 +0100)
committerMart Lubbers <mart@martlubbers.net>
Sun, 5 Mar 2017 14:12:44 +0000 (15:12 +0100)
IRC.dcl
IRC.icl
cloogle.icl

diff --git a/IRC.dcl b/IRC.dcl
index 0db138c..d88205b 100644 (file)
--- a/IRC.dcl
+++ b/IRC.dcl
@@ -27,8 +27,8 @@ from StdOverloaded import class fromInt, class toInt, class toString
        | OPER String String 
        | PART [String]
        | PASS String
        | OPER String String 
        | PART [String]
        | PASS String
-       | PING [String]
-       | PONG [String]
+       | PING String (Maybe String)
+       | PONG String (Maybe String)
        | PRIVMSG String String
        | QUIT (Maybe String)
        | REHASH 
        | PRIVMSG String String
        | QUIT (Maybe String)
        | REHASH 
diff --git a/IRC.icl b/IRC.icl
index 645edbd..098c759 100644 (file)
--- a/IRC.icl
+++ b/IRC.icl
@@ -38,8 +38,8 @@ instance toString IRCCommands where
        //OPER String String 
        //PART [String]
        //PASS String
        //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 
                PRIVMSG dest msg = join " " ["PRIVMSG", dest, ":"+++msg]
                QUIT msg = join " " ["QUIT":maybeToList msg]
        //REHASH 
index f933b2b..27001f1 100644 (file)
@@ -48,7 +48,7 @@ process io chan w
 #! io = io <<< ("Received: " +++ resp +++ "\n")
 # ind = indexOf KEY resp
 | ind > 0
 #! 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
        #! io =  io <<< ("Received command: " +++ printToString cmd +++ "\n")
        # toSend = case cmd of
                ["stop":_] = Nothing
@@ -58,6 +58,10 @@ process io chan w
        | isNothing toSend = (io, chan, w)
        # (chan, w) = send (map toString $ fromJust toSend) chan w
        = process io chan w
        | 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
 = process io chan w
 
 Start :: *World -> *World