diff options
| -rw-r--r-- | activitypub.c | 20 | ||||
| -rw-r--r-- | data.c | 2 | ||||
| -rw-r--r-- | main.c | 11 | ||||
| -rw-r--r-- | snac.h | 2 |
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 | ||
| 194 | d_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 | |||
| 194 | d_char *msg_actor(snac *snac) | 214 | d_char *msg_actor(snac *snac) |
| 195 | /* create a Person message for this actor */ | 215 | /* create a Person message for this actor */ |
| 196 | { | 216 | { |
| @@ -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 | ||
| @@ -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; |
| @@ -87,6 +87,8 @@ int webfinger_request(char *qs, char **actor, char **user); | |||
| 87 | int webfinger_get_handler(d_char *req, char *q_path, | 87 | int 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 | ||
| 90 | d_char *msg_admiration(snac *snac, char *object, char *type); | ||
| 91 | |||
| 90 | int activitypub_request(snac *snac, char *url, d_char **data); | 92 | int activitypub_request(snac *snac, char *url, d_char **data); |
| 91 | int actor_request(snac *snac, char *actor, d_char **data); | 93 | int actor_request(snac *snac, char *actor, d_char **data); |
| 92 | int send_to_inbox(snac *snac, char *inbox, char *msg, d_char **payload, int *p_size); | 94 | int send_to_inbox(snac *snac, char *inbox, char *msg, d_char **payload, int *p_size); |