Incorporate Evaluate into irc
The code is a bit ugly in order to conform with the type system.
This commit is contained in:
parent
229932ece4
commit
6d2791b3fe
28
ocaml/irc.ml
28
ocaml/irc.ml
|
@ -4,7 +4,7 @@ module C = Irc_client_lwt.Client
|
||||||
let host = "irc.freenode.net"
|
let host = "irc.freenode.net"
|
||||||
let port = 6667
|
let port = 6667
|
||||||
let realname = "CheeseBot"
|
let realname = "CheeseBot"
|
||||||
let nick = "cheesebot"
|
let nick = "cheesebot2"
|
||||||
let username = nick
|
let username = nick
|
||||||
let channel = "#cheeseburger"
|
let channel = "#cheeseburger"
|
||||||
let message = "Hello, world! This is a test from chesebot"
|
let message = "Hello, world! This is a test from chesebot"
|
||||||
|
@ -16,15 +16,31 @@ let string_opt_to_string = function
|
||||||
let string_list_to_string string_list =
|
let string_list_to_string string_list =
|
||||||
Printf.sprintf "[%s]" (String.concat "; " string_list)
|
Printf.sprintf "[%s]" (String.concat "; " string_list)
|
||||||
|
|
||||||
|
let evaluate_string_opt = function
|
||||||
|
| None -> None
|
||||||
|
| Some s -> Evaluate.evaluate s
|
||||||
|
|
||||||
let callback ~connection ~result =
|
let callback ~connection ~result =
|
||||||
let open Irc_message in
|
let open Irc_message in
|
||||||
match result with
|
match result with
|
||||||
| Message {prefix=prefix; command=command; params=params; trail=trail} ->
|
| Message {prefix=prefix; command=command; params=params; trail=trail} ->
|
||||||
Lwt_io.printf "Got message: prefix=%s; command=%s; params=%s; trail=%s\n"
|
begin
|
||||||
(string_opt_to_string prefix)
|
Lwt_io.printf "Got message: prefix=%s; command=%s; params=%s; trail=%s\n"
|
||||||
command
|
(string_opt_to_string prefix)
|
||||||
(string_list_to_string params)
|
command
|
||||||
(string_opt_to_string trail)
|
(string_list_to_string params)
|
||||||
|
(string_opt_to_string trail);
|
||||||
|
match command with
|
||||||
|
| "PRIVMSG" ->
|
||||||
|
begin
|
||||||
|
let response = evaluate_string_opt trail in
|
||||||
|
match response with
|
||||||
|
| None -> Lwt.return_unit
|
||||||
|
| Some s ->
|
||||||
|
C.send_privmsg ~connection ~target:channel ~message:s
|
||||||
|
end
|
||||||
|
| _ -> Lwt.return_unit
|
||||||
|
end
|
||||||
| Parse_error (raw, error) ->
|
| Parse_error (raw, error) ->
|
||||||
Lwt_io.printf "Failed to parse \"%s\" because: %s" raw error
|
Lwt_io.printf "Failed to parse \"%s\" because: %s" raw error
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue