summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar default2022-09-26 10:08:14 +0200
committerGravatar default2022-09-26 10:08:14 +0200
commitacc467c0346535f9f71b62bf68cbfbea7d1db0ee (patch)
treeaf75679da56d2cd854033f072b15fd252abf2993
parentNew function post. (diff)
downloadsnac2-acc467c0346535f9f71b62bf68cbfbea7d1db0ee.tar.gz
snac2-acc467c0346535f9f71b62bf68cbfbea7d1db0ee.tar.xz
snac2-acc467c0346535f9f71b62bf68cbfbea7d1db0ee.zip
New function msg_admiration().
-rw-r--r--activitypub.c20
-rw-r--r--data.c2
-rw-r--r--main.c11
-rw-r--r--snac.h2
4 files changed, 34 insertions, 1 deletions
diff --git a/activitypub.c b/activitypub.c
index f08c44c..091e4bf 100644
--- a/activitypub.c
+++ b/activitypub.c
@@ -191,6 +191,26 @@ d_char *msg_update(snac *snac, char *object)
191} 191}
192 192
193 193
194d_char *msg_admiration(snac *snac, char *object, char *type)
195/* creates a Like or Announce message */
196{
197 xs *ntid = tid(0);
198 xs *id = xs_fmt("%s/d/%d/%s", snac->actor, ntid, type);
199 d_char *msg = msg_base(snac, type, id, snac->actor, "");
200 xs *rcpts = xs_list_new();
201
202 /* call the object */
203 timeline_request(snac, object, snac->actor);
204
205 rcpts = xs_list_append(rcpts, public_address);
206
207 msg = xs_dict_append(msg, "to", rcpts);
208 msg = xs_dict_append(msg, "object", object);
209
210 return msg;
211}
212
213
194d_char *msg_actor(snac *snac) 214d_char *msg_actor(snac *snac)
195/* create a Person message for this actor */ 215/* create a Person message for this actor */
196{ 216{
diff --git a/data.c b/data.c
index 3df09dd..ac6e225 100644
--- a/data.c
+++ b/data.c
@@ -554,7 +554,7 @@ int timeline_add(snac *snac, char *id, char *o_msg, char *parent, char *referrer
554 md = xs_dict_set(md, "parent", parent); 554 md = xs_dict_set(md, "parent", parent);
555 555
556 if (!xs_is_null(referrer)) 556 if (!xs_is_null(referrer))
557 md = xs_dict_set(md, "parent", referrer); 557 md = xs_dict_set(md, "referrer", referrer);
558 558
559 msg = xs_dict_set(msg, "_snac", md); 559 msg = xs_dict_set(msg, "_snac", md);
560 560
diff --git a/main.c b/main.c
index acd9ef2..8efbc36 100644
--- a/main.c
+++ b/main.c
@@ -116,6 +116,17 @@ int main(int argc, char *argv[])
116 if ((url = GET_ARGV()) == NULL) 116 if ((url = GET_ARGV()) == NULL)
117 return usage(); 117 return usage();
118 118
119 if (strcmp(cmd, "announce") == 0) {
120 xs *msg = msg_admiration(&snac, url, "Announce");
121
122 {
123 xs *j = xs_json_dumps_pp(msg, 4);
124 printf("%s\n", j);
125 }
126
127 return 0;
128 }
129
119 if (strcmp(cmd, "request") == 0) { 130 if (strcmp(cmd, "request") == 0) {
120 int status; 131 int status;
121 xs *data = NULL; 132 xs *data = NULL;
diff --git a/snac.h b/snac.h
index 40fda20..f39e383 100644
--- a/snac.h
+++ b/snac.h
@@ -87,6 +87,8 @@ int webfinger_request(char *qs, char **actor, char **user);
87int webfinger_get_handler(d_char *req, char *q_path, 87int webfinger_get_handler(d_char *req, char *q_path,
88 char **body, int *b_size, char **ctype); 88 char **body, int *b_size, char **ctype);
89 89
90d_char *msg_admiration(snac *snac, char *object, char *type);
91
90int activitypub_request(snac *snac, char *url, d_char **data); 92int activitypub_request(snac *snac, char *url, d_char **data);
91int actor_request(snac *snac, char *actor, d_char **data); 93int actor_request(snac *snac, char *actor, d_char **data);
92int send_to_inbox(snac *snac, char *inbox, char *msg, d_char **payload, int *p_size); 94int send_to_inbox(snac *snac, char *inbox, char *msg, d_char **payload, int *p_size);