X-Git-Url: https://git.martlubbers.net/?p=cloogle-irc.git;a=blobdiff_plain;f=IRCBot.icl;h=e2e7d110162f01ef6ef692a6c19e097a92f5a03b;hp=6820e708bb1c05b10fcee61f1adbf0be471fd30d;hb=6074fc23351ac06daad779b3ac6c09a36590de24;hpb=840f4fd6696c7af6f42251cbb263fe7c86ff2e7b diff --git a/IRCBot.icl b/IRCBot.icl index 6820e70..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