X-Git-Url: https://git.martlubbers.net/?p=cloogle-irc.git;a=blobdiff_plain;f=cloogle.icl;h=a7a428ea34cd28402b890735676e2915688c34fa;hp=fa3bb50c8385ce6fc04d925680c58e8aadd8ea8b;hb=663ea3d6dfb6a70ddf1f3b6c41d4d39ed30c4440;hpb=e044cfaa625c5b38ab18a481c20eb743fccb285d diff --git a/cloogle.icl b/cloogle.icl index fa3bb50..a7a428e 100644 --- a/cloogle.icl +++ b/cloogle.icl @@ -29,8 +29,8 @@ import TCPIP commands :: [String] commands = map toString - [NICK "clooglebot" - ,USER "cloogle" 0 "Cloogle bot" + [NICK "clooglebot" Nothing + ,USER "cloogle" "0" "Cloogle bot" ,JOIN [("#cloogle", Nothing)] ] @@ -132,7 +132,7 @@ cloogle data w # resp = fromOk mer = case fromJSON $ fromString resp.HTTPResponse.rsp_data of Nothing = ("couldn't parse json", w) - Just clr = ("Results for " + data + " -- https://cloogle.org/#" + urlEncode data + "\n" + + Just clr = ("Results for " + data + " -- https://cloogle.org/#" + replaceSubString "+" "%20" (urlEncode data) + "\n" + processResults clr, w) where processResults :: Response -> String @@ -142,14 +142,14 @@ cloogle data w processResult :: Result -> String processResult (FunctionResult (br, {func})) - = "Function in " +++ br.library +++ ": " +++ br.modul +++ " - " +++ func + = "Function in " +++ br.library +++ ": " +++ br.modul +++ "\n" +++ func processResult (TypeResult (br, {type})) - = "Type in " +++ br.library +++ ": " +++ br.modul +++ " - " +++ limitResults type + = "Type in " +++ br.library +++ ": " +++ br.modul +++ "\n" +++ limitResults type processResult (ClassResult (br, {class_name,class_funs})) - = "Class in " +++ br.library +++ ": " +++ br.modul +++ " - " +++ class_name +++ " with " + = "Class in " +++ br.library +++ ": " +++ br.modul +++ "\n" +++ class_name +++ " with " +++ toString (length class_funs) +++ " class functions" processResult (MacroResult (br, {macro_name})) - = "Macro in " +++ br.library +++ ": " +++ br.modul +++ " - " +++ macro_name + = "Macro in " +++ br.library +++ ": " +++ br.modul +++ "\n" +++ macro_name processResult (ModuleResult (br, _)) = "Module in " +++ br.library +++ ": " +++ br.modul @@ -167,9 +167,15 @@ cloogle data w send :: [String] TCP_DuplexChannel *World -> (TCP_DuplexChannel, *World) send [] chan w = (chan, w) send [msg:msgs] {sChannel,rChannel} w +# (_, w) = sleep 250000 w # (rpt,i,sChannel,w) = send_MT TIMEOUT (toByteSeq msg) sChannel w | rpt <> TR_Success = abort "Could not send request\n" = send msgs {sChannel=sChannel,rChannel=rChannel} w + where + sleep :: !Int !*World -> (!Int, *World) + sleep i w = code { + ccall usleep "I:I:A" + } recv :: TCP_DuplexChannel *World -> (Maybe String, TCP_DuplexChannel, *World) recv {sChannel,rChannel} w @@ -178,8 +184,8 @@ recv {sChannel,rChannel} w | rpt == TR_NoSuccess || isNothing resp = abort "Halp?\n" = (toString <$> resp, {sChannel=sChannel,rChannel=rChannel}, w) -msg :: (String -> IRCCommands) -msg = PRIVMSG "#cloogle" +msg :: (String -> IRCCommand) +msg = PRIVMSG ["#cloogle"] process :: *File TCP_DuplexChannel *World -> (*File, TCP_DuplexChannel, *World) process io chan w