From 0f095addecad7bea30db287d78840e032d26a368 Mon Sep 17 00:00:00 2001 From: Fabien Freling Date: Thu, 19 Dec 2013 23:21:01 +0100 Subject: [PATCH] Support SSL URLs when fetching HTML body. --- ocaml/main.ml | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/ocaml/main.ml b/ocaml/main.ml index b8055e8..1317303 100644 --- a/ocaml/main.ml +++ b/ocaml/main.ml @@ -1,16 +1,33 @@ -open Http_client 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 "http://www.youtube.com/.+" in - Str.string_match regexp url 0;; + let regexp = Str.regexp "https://www.youtube.com/.+" in + Str.string_match regexp url 0 + + +let get_body url = + try Http_client.Convenience.http_get url with + | 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 -> "that's youtube" + | str when is_youtube_url str -> get_body str | _ -> str;;