open Str open String open Printf open Ssl open Http_client.Convenience open Https_client open Nethtml open Netchannels;; 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 ) let extract_string_value document = match document with | Nethtml.Data(s) -> s | _ -> "" let rec get_title_element document = match document with | Nethtml.Element(e, args, sub) -> Printf.printf "%s: %s" "Element\n" e | Nethtml.Data(s) -> Printf.printf "%s: %s" "Data\n" s let get_http_title body = let ch = new Netchannels.input_string body in let doc = Nethtml.parse ch in get_title_element (List.hd doc) (* TODO: Log errors *) 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"