53e3b146f5
Cheesebot can now recognize youtube urls formatted like this: - http://www.youtube.com - https://www.youtube.com - http://youtube.com - www.youtube.com - youtu.be
44 lines
1,021 B
OCaml
44 lines
1,021 B
OCaml
open Str
|
|
open Ssl
|
|
open Http_client.Convenience
|
|
open Https_client;;
|
|
|
|
Ssl.init();
|
|
Http_client.Convenience.configure_pipeline
|
|
(fun p ->
|
|
let ctx = Ssl.create_context Ssl.TLSv1 Ssl.Client_context in
|
|
let tct = Https_client.https_transport_channel_type ctx in
|
|
p # configure_transport Http_client.https_cb_id tct
|
|
)
|
|
|
|
|
|
(* Regexp required here *)
|
|
let is_youtube_url url =
|
|
let regexp = Str.regexp "\\(https?\\://\\)?\\(www\\.\\)?\\(youtube\\.com\\)\\|\\(youtu\\.be\\)/.+" in
|
|
Str.string_match regexp url 0
|
|
|
|
|
|
let get_body url =
|
|
try Http_client.Convenience.http_get url with
|
|
| Http_client.Http_error e -> "http error /o\\"
|
|
| Failure f -> "http fail lol"
|
|
|
|
|
|
(* Maybe have a list of functions and
|
|
* iter on all the items in the list *)
|
|
let evaluate str =
|
|
match str with
|
|
| str when is_youtube_url str -> get_body str
|
|
| _ -> str;;
|
|
|
|
|
|
try
|
|
while true do
|
|
print_string "> ";
|
|
let line = read_line () in
|
|
let answer = evaluate line in
|
|
print_endline answer
|
|
done
|
|
with
|
|
End_of_file -> print_endline "Bye!";;
|