X-Git-Url: https://git.martlubbers.net/?p=cloogle-irc.git;a=blobdiff_plain;f=IRCBot.icl;h=e2e7d110162f01ef6ef692a6c19e097a92f5a03b;hp=e736db95c535f94ac9f47730382bb33852ca88a9;hb=6074fc23351ac06daad779b3ac6c09a36590de24;hpb=d6d828d0a8d0308a70d8a64168ed8ef09a8d40e9 diff --git a/IRCBot.icl b/IRCBot.icl index e736db9..e2e7d11 100644 --- a/IRCBot.icl +++ b/IRCBot.icl @@ -14,7 +14,7 @@ import StdBool TIMEOUT :== Just 1000 -bot :: (String, Int) [IRCMessage] [IRCMessage] .a (IRCMessage .a *World -> *(Maybe [IRCMessage], .a, *World)) *World -> *(Maybe String, .a, *World) +bot :: (String, Int) [IRCMessage] [IRCMessage] .a (IRCMessage -> (.a -> .(*World -> *(Maybe [IRCMessage], .a, *World)))) *World -> *(Maybe String, .a, *World) bot (host, port) start end state bot w //Lookup hostname # (ip, w) = lookupIPAddress host w @@ -38,7 +38,7 @@ bot (host, port) start end state bot w //Close channels = (Nothing, state, closeChannel sChannel (closeRChannel rChannel w)) -process :: TCP_DuplexChannel String .a (IRCMessage .a *World -> (Maybe [IRCMessage], .a, *World)) *World -> (MaybeErrorString (), TCP_DuplexChannel, .a, *World) +process :: TCP_DuplexChannel String .a (IRCMessage -> (.a -> .(*World -> *(Maybe [IRCMessage], .a, *World)))) *World -> (MaybeErrorString (), TCP_DuplexChannel, .a, *World) process chan acc state bot w //See if we have a message = case split "\r\n" acc of @@ -69,13 +69,13 @@ send [] chan w = (Ok (), chan, w) send [msg:msgs] {sChannel,rChannel} w # (rpt,i,sChannel,w) = send_MT TIMEOUT (toByteSeq msg) sChannel w | rpt <> TR_Success = (Error "Could not send message", {sChannel=sChannel,rChannel=rChannel}, w) -# (_, w) = sleep 500000 w +//# (_, w) = sleep 500000 w = send msgs {sChannel=sChannel,rChannel=rChannel} w - where - sleep :: !Int !*World -> (!Int, *World) - sleep i w = code { - ccall usleep "I:I:A" - } +// where +// sleep :: !Int !*World -> (!Int, *World) +// sleep i w = code { +// ccall usleep "I:I:A" +// } recv :: TCP_DuplexChannel *World -> (MaybeErrorString (Maybe String), TCP_DuplexChannel, *World) recv {sChannel,rChannel} w