commit 9bc4825
default
·
2023-05-24 09:07:47 +0000 UTC
parent 50fe76e
New function msg_question() (unused).
2 files changed,
+34,
-0
M
snac.h
+33,
-0
1@@ -924,6 +924,39 @@ xs_dict *msg_pong(snac *user, const char *rcpt, const char *object)
2 }
3
4
5+xs_dict *msg_question(snac *user, const char *content, const xs_list *opts, int multiple, int end_secs)
6+/* creates a Question message */
7+{
8+ xs *ntid = tid(0);
9+ xs *id = xs_fmt("%s/q/%s", user->actor, ntid);
10+ xs_dict *msg = msg_base(user, "Question", id, NULL, "@now", NULL);
11+
12+ msg = xs_dict_append(msg, "content", content);
13+ msg = xs_dict_append(msg, "attributedTo", user->actor);
14+
15+ xs *o = xs_list_new();
16+ xs_list *p = (xs_list *)opts;
17+ xs_str *v;
18+
19+ while (xs_list_iter(&p, &v)) {
20+ xs *d = xs_dict_new();
21+
22+ d = xs_dict_append(d, "name", v);
23+ o = xs_list_append(o, d);
24+ }
25+
26+ msg = xs_dict_append(msg, multiple ? "anyOf" : "oneOf", o);
27+
28+ /* set the end time */
29+ time_t t = time(NULL) + end_secs;
30+ xs *et = xs_str_utctime(t, "%Y-%m-%dT%H:%M:%SZ");
31+
32+ msg = xs_dict_append(msg, "endTime", msg);
33+
34+ return msg;
35+}
36+
37+
38 void notify(snac *snac, xs_str *type, xs_str *utype, xs_str *actor, xs_dict *msg)
39 /* notifies the user of relevant events */
40 {
M
snac.h
+1,
-0
1@@ -205,6 +205,7 @@ d_char *msg_actor(snac *snac);
2 xs_dict *msg_update(snac *snac, xs_dict *object);
3 xs_dict *msg_ping(snac *user, const char *rcpt);
4 xs_dict *msg_pong(snac *user, const char *rcpt, const char *object);
5+xs_dict *msg_question(snac *user, const char *content, const xs_list *opts, int multiple, int end_secs);
6
7 int activitypub_request(snac *snac, const char *url, xs_dict **data);
8 int actor_request(snac *snac, const char *actor, xs_dict **data);