aboutsummaryrefslogtreecommitdiff
path: root/lib/post.ml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/post.ml21
-rw-r--r--lib/post.mli31
2 files changed, 18 insertions, 34 deletions
diff --git a/lib/post.ml b/lib/post.ml
index 232d9a7..3b63a11 100644
--- a/lib/post.ml
+++ b/lib/post.ml
@@ -25,10 +25,25 @@ type mastodon_post = {
}
[@@deriving yojson] [@@yojson.allow_extra_fields]
-let post_of_mastodon_post = function
+let mastodon_actor post = post.actor
+
+let post_of_mastodon_post actor_name = function
| { actor; published; obj = { tag } } ->
- let tags = List.map (fun { name; _ } -> name) tag in
- { link = actor; summary = published; tags; published; author = actor }
+ let tags =
+ List.filter_map
+ (fun { name; kind; _ } ->
+ (* This would normally be filtered with yojson, but I couldn't get
+ it to work *)
+ if kind = "Hashtag" then Some name else None)
+ tag
+ in
+ {
+ link = actor;
+ summary = published;
+ tags;
+ published;
+ author = actor_name;
+ }
let get_tld (link : string) =
Uri.of_string link |> Uri.host_with_default ~default:""
diff --git a/lib/post.mli b/lib/post.mli
deleted file mode 100644
index 9bf32ae..0000000
--- a/lib/post.mli
+++ /dev/null
@@ -1,31 +0,0 @@
-type t = {
- link : string;
- summary : string;
- tags : string list;
- published : string;
- author : string;
-}
-
-type mastodon_tag = { kind : string; name : string; href : string }
-
-val mastodon_tag_of_yojson : Yojson.Safe.t -> mastodon_tag
-val yojson_of_mastodon_tag : mastodon_tag -> Yojson.Safe.t
-
-type mastodon_object = { tag : mastodon_tag list }
-
-val mastodon_object_of_yojson : Yojson.Safe.t -> mastodon_object
-val yojson_of_mastodon_object : mastodon_object -> Yojson.Safe.t
-
-type mastodon_post = {
- actor : string;
- published : string;
- obj : mastodon_object;
-}
-
-val mastodon_post_of_yojson : Yojson.Safe.t -> mastodon_post
-val yojson_of_mastodon_post : mastodon_post -> Yojson.Safe.t
-val post_of_mastodon_post : mastodon_post -> t
-val get_tld : string -> string
-val db : t list ref
-val add : t -> unit
-val get_all : unit -> t list