commit f5bf8ef
default
·
2023-12-03 09:05:04 +0000 UTC
parent 68b7947
mastoapi: patched dates to match the funny timezone Mastodon uses.
1 files changed,
+28,
-3
+28,
-3
1@@ -592,10 +592,27 @@ xs_dict *mastoapi_account(const xs_dict *actor)
2 acct = xs_dict_append(acct, "emojis", eml);
3 }
4
5+ acct = xs_dict_append(acct, "locked", xs_stock_false);
6+ acct = xs_dict_append(acct, "followers_count", xs_stock_0);
7+ acct = xs_dict_append(acct, "following_count", xs_stock_0);
8+ acct = xs_dict_append(acct, "statuses_count", xs_stock_0);
9+
10+ acct = xs_dict_append(acct, "fields", xs_stock_list);
11+
12 return acct;
13 }
14
15
16+xs_str *mastoapi_date(char *date)
17+/* converts an ISO 8601 date to whatever format Mastodon uses */
18+{
19+ xs_str *s = xs_crop_i(xs_dup(date), 0, 19);
20+ s = xs_str_cat(s, ".000Z");
21+
22+ return s;
23+}
24+
25+
26 xs_dict *mastoapi_poll(snac *snac, const xs_dict *msg)
27 /* creates a mastoapi Poll object */
28 {
29@@ -607,7 +624,8 @@ xs_dict *mastoapi_poll(snac *snac, const xs_dict *msg)
30 xs *options = xs_list_new();
31
32 poll = xs_dict_append(poll, "id", mid);
33- poll = xs_dict_append(poll, "expires_at", xs_dict_get(msg, "endTime"));
34+ xs *fd = mastoapi_date(xs_dict_get(msg, "endTime"));
35+ poll = xs_dict_append(poll, "expires_at", fd);
36 poll = xs_dict_append(poll, "expired",
37 xs_dict_get(msg, "closed") != NULL ? xs_stock_true : xs_stock_false);
38
39@@ -673,9 +691,11 @@ xs_dict *mastoapi_status(snac *snac, const xs_dict *msg)
40 st = xs_dict_append(st, "id", mid);
41 st = xs_dict_append(st, "uri", id);
42 st = xs_dict_append(st, "url", id);
43- st = xs_dict_append(st, "created_at", xs_dict_get(msg, "published"));
44 st = xs_dict_append(st, "account", acct);
45
46+ xs *fd = mastoapi_date(xs_dict_get(msg, "published"));
47+ st = xs_dict_append(st, "created_at", fd);
48+
49 {
50 const char *content = xs_dict_get(msg, "content");
51 const char *name = xs_dict_get(msg, "name");
52@@ -928,10 +948,15 @@ xs_dict *mastoapi_status(snac *snac, const xs_dict *msg)
53 st = xs_dict_append(st, "text", tmp);
54
55 tmp = xs_dict_get(msg, "updated");
56+ xs *fd2 = NULL;
57 if (xs_is_null(tmp))
58 tmp = xs_stock_null;
59+ else {
60+ fd2 = mastoapi_date(tmp);
61+ tmp = fd2;
62+ }
63
64- st = xs_dict_append(st, "edited_at", tmp);
65+ st = xs_dict_append(st, "edited_at", fd2);
66
67 if (strcmp(type, "Question") == 0) {
68 xs *poll = mastoapi_poll(snac, msg);