diff options
Diffstat (limited to 'snac.h')
| -rw-r--r-- | snac.h | 15 |
1 files changed, 14 insertions, 1 deletions
| @@ -1,7 +1,7 @@ | |||
| 1 | /* snac - A simple, minimalistic ActivityPub instance */ | 1 | /* snac - A simple, minimalistic ActivityPub instance */ |
| 2 | /* copyright (c) 2022 - 2025 grunfink et al. / MIT license */ | 2 | /* copyright (c) 2022 - 2025 grunfink et al. / MIT license */ |
| 3 | 3 | ||
| 4 | #define VERSION "2.74" | 4 | #define VERSION "2.77" |
| 5 | 5 | ||
| 6 | #define USER_AGENT "snac/" VERSION | 6 | #define USER_AGENT "snac/" VERSION |
| 7 | 7 | ||
| @@ -61,6 +61,7 @@ typedef struct { | |||
| 61 | xs_str *actor; /* actor url */ | 61 | xs_str *actor; /* actor url */ |
| 62 | xs_str *md5; /* actor url md5 */ | 62 | xs_str *md5; /* actor url md5 */ |
| 63 | const xs_dict *lang;/* string translation dict */ | 63 | const xs_dict *lang;/* string translation dict */ |
| 64 | const char *tz; /* configured timezone */ | ||
| 64 | } snac; | 65 | } snac; |
| 65 | 66 | ||
| 66 | typedef struct { | 67 | typedef struct { |
| @@ -152,12 +153,14 @@ int follower_add(snac *snac, const char *actor); | |||
| 152 | int follower_del(snac *snac, const char *actor); | 153 | int follower_del(snac *snac, const char *actor); |
| 153 | int follower_check(snac *snac, const char *actor); | 154 | int follower_check(snac *snac, const char *actor); |
| 154 | xs_list *follower_list(snac *snac); | 155 | xs_list *follower_list(snac *snac); |
| 156 | int follower_list_len(snac *snac); | ||
| 155 | 157 | ||
| 156 | int pending_add(snac *user, const char *actor, const xs_dict *msg); | 158 | int pending_add(snac *user, const char *actor, const xs_dict *msg); |
| 157 | int pending_check(snac *user, const char *actor); | 159 | int pending_check(snac *user, const char *actor); |
| 158 | xs_dict *pending_get(snac *user, const char *actor); | 160 | xs_dict *pending_get(snac *user, const char *actor); |
| 159 | void pending_del(snac *user, const char *actor); | 161 | void pending_del(snac *user, const char *actor); |
| 160 | xs_list *pending_list(snac *user); | 162 | xs_list *pending_list(snac *user); |
| 163 | int pending_count(snac *user); | ||
| 161 | 164 | ||
| 162 | double timeline_mtime(snac *snac); | 165 | double timeline_mtime(snac *snac); |
| 163 | int timeline_touch(snac *snac); | 166 | int timeline_touch(snac *snac); |
| @@ -182,6 +185,7 @@ int following_del(snac *snac, const char *actor); | |||
| 182 | int following_check(snac *snac, const char *actor); | 185 | int following_check(snac *snac, const char *actor); |
| 183 | int following_get(snac *snac, const char *actor, xs_dict **data); | 186 | int following_get(snac *snac, const char *actor, xs_dict **data); |
| 184 | xs_list *following_list(snac *snac); | 187 | xs_list *following_list(snac *snac); |
| 188 | int following_list_len(snac *snac); | ||
| 185 | 189 | ||
| 186 | void mute(snac *snac, const char *actor); | 190 | void mute(snac *snac, const char *actor); |
| 187 | void unmute(snac *snac, const char *actor); | 191 | void unmute(snac *snac, const char *actor); |
| @@ -205,6 +209,12 @@ void draft_del(snac *user, const char *id); | |||
| 205 | void draft_add(snac *user, const char *id, const xs_dict *msg); | 209 | void draft_add(snac *user, const char *id, const xs_dict *msg); |
| 206 | xs_list *draft_list(snac *user); | 210 | xs_list *draft_list(snac *user); |
| 207 | 211 | ||
| 212 | int is_scheduled(snac *user, const char *id); | ||
| 213 | void schedule_del(snac *user, const char *id); | ||
| 214 | void schedule_add(snac *user, const char *id, const xs_dict *msg); | ||
| 215 | xs_list *scheduled_list(snac *user); | ||
| 216 | void scheduled_process(snac *user); | ||
| 217 | |||
| 208 | int limited(snac *user, const char *id, int cmd); | 218 | int limited(snac *user, const char *id, int cmd); |
| 209 | #define is_limited(user, id) limited((user), (id), 0) | 219 | #define is_limited(user, id) limited((user), (id), 0) |
| 210 | #define limit(user, id) limited((user), (id), 1) | 220 | #define limit(user, id) limited((user), (id), 1) |
| @@ -282,6 +292,7 @@ void enqueue_close_question(snac *user, const char *id, int end_secs); | |||
| 282 | void enqueue_object_request(snac *user, const char *id, int forward_secs); | 292 | void enqueue_object_request(snac *user, const char *id, int forward_secs); |
| 283 | void enqueue_verify_links(snac *user); | 293 | void enqueue_verify_links(snac *user); |
| 284 | void enqueue_actor_refresh(snac *user, const char *actor, int forward_secs); | 294 | void enqueue_actor_refresh(snac *user, const char *actor, int forward_secs); |
| 295 | void enqueue_webmention(const xs_dict *msg); | ||
| 285 | int was_question_voted(snac *user, const char *id); | 296 | int was_question_voted(snac *user, const char *id); |
| 286 | 297 | ||
| 287 | xs_list *user_queue(snac *snac); | 298 | xs_list *user_queue(snac *snac); |
| @@ -367,6 +378,7 @@ int activitypub_post_handler(const xs_dict *req, const char *q_path, | |||
| 367 | char **body, int *b_size, char **ctype); | 378 | char **body, int *b_size, char **ctype); |
| 368 | 379 | ||
| 369 | xs_dict *emojis(void); | 380 | xs_dict *emojis(void); |
| 381 | xs_str *format_text_with_emoji(snac *user, const char *text, int ems, const char *proxy); | ||
| 370 | xs_str *not_really_markdown(const char *content, xs_list **attach, xs_list **tag); | 382 | xs_str *not_really_markdown(const char *content, xs_list **attach, xs_list **tag); |
| 371 | xs_str *sanitize(const char *content); | 383 | xs_str *sanitize(const char *content); |
| 372 | xs_str *encode_html(const char *str); | 384 | xs_str *encode_html(const char *str); |
| @@ -427,6 +439,7 @@ void import_blocked_accounts_csv(snac *user, const char *fn); | |||
| 427 | void import_following_accounts_csv(snac *user, const char *fn); | 439 | void import_following_accounts_csv(snac *user, const char *fn); |
| 428 | void import_list_csv(snac *user, const char *fn); | 440 | void import_list_csv(snac *user, const char *fn); |
| 429 | void import_csv(snac *user); | 441 | void import_csv(snac *user); |
| 442 | int parse_port(const char *url, const char **errstr); | ||
| 430 | 443 | ||
| 431 | typedef enum { | 444 | typedef enum { |
| 432 | #define HTTP_STATUS(code, name, text) HTTP_STATUS_ ## name = code, | 445 | #define HTTP_STATUS(code, name, text) HTTP_STATUS_ ## name = code, |