From 69d3f53365568524e18dfb1200a386309e174359 Mon Sep 17 00:00:00 2001 From: Marc Coquand Date: Sat, 2 Dec 2023 09:49:42 -0600 Subject: Initial commit --- lib/post.ml | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 lib/post.ml (limited to 'lib/post.ml') diff --git a/lib/post.ml b/lib/post.ml new file mode 100644 index 0000000..232d9a7 --- /dev/null +++ b/lib/post.ml @@ -0,0 +1,45 @@ +open Ppx_yojson_conv_lib.Yojson_conv.Primitives + +type t = { + link : string; + summary : string; + tags : string list; + published : string; + author : string; +} + +type mastodon_tag = { + kind : string; [@key "type"] + name : string; + href : string; +} +[@@deriving yojson] [@@yojson.allow_extra_fields] + +type mastodon_object = { tag : mastodon_tag list } +[@@deriving yojson] [@@yojson.allow_extra_fields] + +type mastodon_post = { + actor : string; + published : string; + obj : mastodon_object; [@key "object"] +} +[@@deriving yojson] [@@yojson.allow_extra_fields] + +let post_of_mastodon_post = function + | { actor; published; obj = { tag } } -> + let tags = List.map (fun { name; _ } -> name) tag in + { link = actor; summary = published; tags; published; author = actor } + +let get_tld (link : string) = + Uri.of_string link |> Uri.host_with_default ~default:"" + +let db = ref [] + +let add (entry : t) = + db := entry :: !db; + print_endline (entry.link ^ " added to db"); + print_endline ("New db size: " ^ string_of_int (List.length !db)) + +let get_all () = + print_endline ("db size: " ^ string_of_int (List.length !db)); + !db -- cgit v1.2.3