diff options
| author | 2023-04-24 17:05:34 +0200 | |
|---|---|---|
| committer | 2023-04-24 17:05:34 +0200 | |
| commit | cfca2adcb9e9d9fbc0c2a30e98d129892dacfed2 (patch) | |
| tree | d44815df3194fa6ce5e8bb5f468aacd6e7ddd435 | |
| parent | Added some more Instance values. (diff) | |
| download | snac2-cfca2adcb9e9d9fbc0c2a30e98d129892dacfed2.tar.gz snac2-cfca2adcb9e9d9fbc0c2a30e98d129892dacfed2.tar.xz snac2-cfca2adcb9e9d9fbc0c2a30e98d129892dacfed2.zip | |
Added mentions to mastoapi_status().
| -rw-r--r-- | mastoapi.c | 42 |
1 files changed, 39 insertions, 3 deletions
| @@ -557,9 +557,45 @@ xs_dict *mastoapi_status(snac *snac, const xs_dict *msg) | |||
| 557 | 557 | ||
| 558 | st = xs_dict_append(st, "media_attachments", matt); | 558 | st = xs_dict_append(st, "media_attachments", matt); |
| 559 | 559 | ||
| 560 | st = xs_dict_append(st, "mentions", el); | 560 | { |
| 561 | st = xs_dict_append(st, "tags", el); | 561 | xs *ml = xs_list_new(); |
| 562 | st = xs_dict_append(st, "emojis", el); | 562 | xs *htl = xs_list_new(); |
| 563 | xs *eml = xs_list_new(); | ||
| 564 | xs_list *p = xs_dict_get(msg, "tag"); | ||
| 565 | xs_dict *v; | ||
| 566 | int n = 0; | ||
| 567 | |||
| 568 | while (xs_list_iter(&p, &v)) { | ||
| 569 | const char *type = xs_dict_get(v, "type"); | ||
| 570 | |||
| 571 | if (xs_is_null(type)) | ||
| 572 | continue; | ||
| 573 | |||
| 574 | xs *d1 = xs_dict_new(); | ||
| 575 | |||
| 576 | if (strcmp(type, "Mention") == 0) { | ||
| 577 | const char *name = xs_dict_get(v, "name"); | ||
| 578 | const char *href = xs_dict_get(v, "href"); | ||
| 579 | |||
| 580 | if (!xs_is_null(name) && !xs_is_null(href) && | ||
| 581 | strcmp(href, snac->actor) != 0) { | ||
| 582 | xs *nm = xs_strip_chars_i(xs_dup(name), "@"); | ||
| 583 | |||
| 584 | xs *id = xs_fmt("%d", n++); | ||
| 585 | d1 = xs_dict_append(d1, "id", id); | ||
| 586 | d1 = xs_dict_append(d1, "username", nm); | ||
| 587 | d1 = xs_dict_append(d1, "acct", nm); | ||
| 588 | d1 = xs_dict_append(d1, "url", href); | ||
| 589 | |||
| 590 | ml = xs_list_append(ml, d1); | ||
| 591 | } | ||
| 592 | } | ||
| 593 | } | ||
| 594 | |||
| 595 | st = xs_dict_append(st, "mentions", ml); | ||
| 596 | st = xs_dict_append(st, "tags", htl); | ||
| 597 | st = xs_dict_append(st, "emojis", eml); | ||
| 598 | } | ||
| 563 | 599 | ||
| 564 | xs_free(idx); | 600 | xs_free(idx); |
| 565 | xs_free(ixc); | 601 | xs_free(ixc); |