commit bd8886f
default
·
2023-05-15 09:23:36 +0000 UTC
parent d3c1b31
Don't repeat accounts when searching.
1 files changed,
+10,
-0
+10,
-0
1@@ -10,6 +10,7 @@
2 #include "xs_io.h"
3 #include "xs_time.h"
4 #include "xs_glob.h"
5+#include "xs_set.h"
6
7 #include "snac.h"
8
9@@ -966,6 +967,9 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path,
10 xs *wing = following_list(&snac1);
11 xs *wers = follower_list(&snac1);
12 xs_list *p;
13+ xs_set seen;
14+
15+ xs_set_init(&seen);
16
17 xs_list *lsts[] = { wing, wers, NULL };
18 int n;
19@@ -973,6 +977,10 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path,
20 xs_str *v;
21
22 while (xs_list_iter(&p, &v)) {
23+ /* already seen? skip */
24+ if (xs_set_add(&seen, v) == 0)
25+ continue;
26+
27 xs *actor = NULL;
28
29 if (valid_status(object_get(v, &actor))) {
30@@ -986,6 +994,8 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path,
31 }
32 }
33 }
34+
35+ xs_set_free(&seen);
36 }
37 }
38 else