mirror of
https://codeberg.org/grunfink/snac2.git
synced 2024-11-25 14:35:04 +00:00
Fixed bug when following by @user@host.
This commit is contained in:
parent
38509f5e14
commit
dbe60be4f3
2 changed files with 17 additions and 6 deletions
|
@ -484,13 +484,22 @@ d_char *msg_delete(snac *snac, char *id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
d_char *msg_follow(snac *snac, char *actor)
|
d_char *msg_follow(snac *snac, char *url_or_uid)
|
||||||
/* creates a 'Follow' message */
|
/* creates a 'Follow' message */
|
||||||
{
|
{
|
||||||
d_char *actor_o = NULL;
|
xs *actor_o = NULL;
|
||||||
|
xs *actor = NULL;
|
||||||
d_char *msg = NULL;
|
d_char *msg = NULL;
|
||||||
int status;
|
int status;
|
||||||
|
|
||||||
|
if (xs_startswith(url_or_uid, "https:/"))
|
||||||
|
actor = xs_dup(url_or_uid);
|
||||||
|
else
|
||||||
|
if (!valid_status(webfinger_request(url_or_uid, &actor, NULL))) {
|
||||||
|
snac_log(snac, xs_fmt("cannot resolve user %s to follow", url_or_uid));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* request the actor */
|
/* request the actor */
|
||||||
status = actor_request(snac, actor, &actor_o);
|
status = actor_request(snac, actor, &actor_o);
|
||||||
|
|
||||||
|
|
10
html.c
10
html.c
|
@ -1197,12 +1197,14 @@ int html_post_handler(d_char *req, char *q_path, d_char *payload, int p_size,
|
||||||
if (strcmp(action, L("Follow")) == 0) {
|
if (strcmp(action, L("Follow")) == 0) {
|
||||||
xs *msg = msg_follow(&snac, actor);
|
xs *msg = msg_follow(&snac, actor);
|
||||||
|
|
||||||
/* reload the actor from the message, in may be different */
|
if (msg != NULL) {
|
||||||
actor = xs_dict_get(msg, "object");
|
/* reload the actor from the message, in may be different */
|
||||||
|
actor = xs_dict_get(msg, "object");
|
||||||
|
|
||||||
following_add(&snac, actor, msg);
|
following_add(&snac, actor, msg);
|
||||||
|
|
||||||
enqueue_output(&snac, msg, actor, 0);
|
enqueue_output(&snac, msg, actor, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (strcmp(action, L("Unfollow")) == 0) {
|
if (strcmp(action, L("Unfollow")) == 0) {
|
||||||
|
|
Loading…
Reference in a new issue