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