diff options
Diffstat (limited to 'activitypub.c')
| -rw-r--r-- | activitypub.c | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/activitypub.c b/activitypub.c index 649b1f2..3ab093f 100644 --- a/activitypub.c +++ b/activitypub.c | |||
| @@ -1927,22 +1927,31 @@ int process_input_message(snac *snac, const xs_dict *msg, const xs_dict *req) | |||
| 1927 | object_add(actor, actor_obj); | 1927 | object_add(actor, actor_obj); |
| 1928 | } | 1928 | } |
| 1929 | 1929 | ||
| 1930 | xs *f_msg = xs_dup(msg); | 1930 | if (xs_is_true(xs_dict_get(snac->config, "approve_followers"))) { |
| 1931 | xs *reply = msg_accept(snac, f_msg, actor); | 1931 | pending_add(snac, actor, msg); |
| 1932 | 1932 | ||
| 1933 | post_message(snac, actor, reply); | 1933 | snac_log(snac, xs_fmt("new pending follower approval %s", actor)); |
| 1934 | |||
| 1935 | if (xs_is_null(xs_dict_get(f_msg, "published"))) { | ||
| 1936 | /* add a date if it doesn't include one (Mastodon) */ | ||
| 1937 | xs *date = xs_str_utctime(0, ISO_DATE_SPEC); | ||
| 1938 | f_msg = xs_dict_set(f_msg, "published", date); | ||
| 1939 | } | 1934 | } |
| 1935 | else { | ||
| 1936 | /* automatic following */ | ||
| 1937 | xs *f_msg = xs_dup(msg); | ||
| 1938 | xs *reply = msg_accept(snac, f_msg, actor); | ||
| 1940 | 1939 | ||
| 1941 | timeline_add(snac, id, f_msg); | 1940 | post_message(snac, actor, reply); |
| 1941 | |||
| 1942 | if (xs_is_null(xs_dict_get(f_msg, "published"))) { | ||
| 1943 | /* add a date if it doesn't include one (Mastodon) */ | ||
| 1944 | xs *date = xs_str_utctime(0, ISO_DATE_SPEC); | ||
| 1945 | f_msg = xs_dict_set(f_msg, "published", date); | ||
| 1946 | } | ||
| 1942 | 1947 | ||
| 1943 | follower_add(snac, actor); | 1948 | timeline_add(snac, id, f_msg); |
| 1949 | |||
| 1950 | follower_add(snac, actor); | ||
| 1951 | |||
| 1952 | snac_log(snac, xs_fmt("new follower %s", actor)); | ||
| 1953 | } | ||
| 1944 | 1954 | ||
| 1945 | snac_log(snac, xs_fmt("new follower %s", actor)); | ||
| 1946 | do_notify = 1; | 1955 | do_notify = 1; |
| 1947 | } | 1956 | } |
| 1948 | else | 1957 | else |