commit b2f5f95

default  ·  2025-01-25 22:06:08 +0000 UTC
parent 896a368
Fixed repeated entries in the instance public timeline.
1 files changed,  +17, -6
M data.c
M data.c
+17, -6
 1@@ -1399,11 +1399,13 @@ void timeline_update_indexes(snac *snac, const char *id)
 2         if (valid_status(object_get(id, &msg))) {
 3             /* if its ours and is public, also store in public */
 4             if (is_msg_public(msg)) {
 5-                object_user_cache_add(snac, id, "public");
 6-
 7-                /* also add it to the instance public timeline */
 8-                xs *ipt = xs_fmt("%s/public.idx", srv_basedir);
 9-                index_add(ipt, id);
10+                if (object_user_cache_add(snac, id, "public") >= 0) {
11+                    /* also add it to the instance public timeline */
12+                    xs *ipt = xs_fmt("%s/public.idx", srv_basedir);
13+                    index_add(ipt, id);
14+                }
15+                else
16+                    srv_debug(1, xs_fmt("Not added to public instance index %s", id));
17             }
18         }
19     }
20@@ -1524,8 +1526,17 @@ xs_list *timeline_instance_list(int skip, int show)
21 /* returns the timeline for the full instance */
22 {
23     xs *idx = instance_index_fn();
24+    xs *lst = index_list_desc(idx, skip, show);
25 
26-    return index_list_desc(idx, skip, show);
27+    /* make the list unique */
28+    xs_set rep;
29+    xs_set_init(&rep);
30+    const char *md5;
31+
32+    xs_list_foreach(lst, md5)
33+        xs_set_add(&rep, md5);
34+
35+    return xs_set_result(&rep);
36 }
37 
38