summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefault <nobody@localhost>2023-12-03 10:57:54 +0100
committerdefault <nobody@localhost>2023-12-03 10:57:54 +0100
commitf1afe4416dabfbba1e34b4c82742dbc76cab0194 (patch)
tree47bdd3500ff041a6e093b80d79abce6780375e80
parentf5bf8ef7e18ece180a59e0271e86da9f081407a7 (diff)
Fill the 'fields' list in mastoapi_account().
-rw-r--r--mastoapi.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/mastoapi.c b/mastoapi.c
index 72febe1..11c2671 100644
--- a/mastoapi.c
+++ b/mastoapi.c
@@ -597,7 +597,28 @@ xs_dict *mastoapi_account(const xs_dict *actor)
acct = xs_dict_append(acct, "following_count", xs_stock_0);
acct = xs_dict_append(acct, "statuses_count", xs_stock_0);
- acct = xs_dict_append(acct, "fields", xs_stock_list);
+ xs *fields = xs_list_new();
+ p = xs_dict_get(actor, "attachment");
+ xs_dict *v;
+
+ while (xs_list_iter(&p, &v)) {
+ char *type = xs_dict_get(v, "type");
+ char *name = xs_dict_get(v, "name");
+ char *value = xs_dict_get(v, "value");
+
+ if (!xs_is_null(type) && !xs_is_null(name) &&
+ !xs_is_null(value) && strcmp(type, "PropertyValue") == 0) {
+ xs *d = xs_dict_new();
+
+ d = xs_dict_append(d, "name", name);
+ d = xs_dict_append(d, "value", value);
+ d = xs_dict_append(d, "verified_at", xs_stock_null);
+
+ fields = xs_list_append(fields, d);
+ }
+ }
+
+ acct = xs_dict_append(acct, "fields", fields);
return acct;
}