commit 81cec4a

default  ·  2023-05-17 06:03:46 +0000 UTC
parent 9bc10da
Don't autocomplete local users if they are already added.
1 files changed,  +8, -5
+8, -5
 1@@ -1014,21 +1014,24 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path,
 2                     while (xs_list_iter(&p, &v)) {
 3                         snac user;
 4 
 5+                        /* skip this same user */
 6                         if (strcmp(v, xs_dict_get(snac1.config, "uid")) == 0)
 7                             continue;
 8 
 9-                        if (user_open(&user, v)) {
10-                            xs *v2 = xs_tolower_i(xs_dup(v));
11+                        /* skip if the uid does not start with the query */
12+                        xs *v2 = xs_tolower_i(xs_dup(v));
13+                        if (!xs_startswith(v2, q))
14+                            continue;
15 
16-                            if (xs_startswith(v2, q)) {
17+                        if (user_open(&user, v)) {
18+                            /* if it's not already seen, add it */
19+                            if (xs_set_add(&seen, user.actor) == 1) {
20                                 xs *actor = msg_actor(&user);
21                                 xs *acct  = mastoapi_account(actor);
22 
23                                 out = xs_list_append(out, acct);
24                             }
25 
26-                            xs_set_add(&seen, user.actor);
27-
28                             user_free(&user);
29                         }
30                     }