summaryrefslogtreecommitdiff
path: root/snac.h
diff options
context:
space:
mode:
authorGravatar byte2026-01-24 21:33:30 +0100
committerGravatar byte2026-01-24 21:33:30 +0100
commitbfd071c63826f4d13d48614cedebfb2f8ea20cf6 (patch)
tree8cc9b766b88fa66d051e55d65d6694570553a17b /snac.h
parentAdded a Follow/Unfollow button next to a new follow notification. (diff)
parentMerge pull request 'add susie-q (qr) to artwork' (#528) from pmjv/snac2:maste... (diff)
downloadsnac2-bfd071c63826f4d13d48614cedebfb2f8ea20cf6.tar.gz
snac2-bfd071c63826f4d13d48614cedebfb2f8ea20cf6.tar.xz
snac2-bfd071c63826f4d13d48614cedebfb2f8ea20cf6.zip
Merge pull request 'master' (#7) from grunfink/snac2:master into main
Reviewed-on: https://codeberg.org/byte/snac2/pulls/7
Diffstat (limited to 'snac.h')
-rw-r--r--snac.h23
1 files changed, 19 insertions, 4 deletions
diff --git a/snac.h b/snac.h
index 91dfa27..ef79594 100644
--- a/snac.h
+++ b/snac.h
@@ -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 - 2026 grunfink et al. / MIT license */
3 3
4#define VERSION "2.85-dev" 4#define VERSION "2.89"
5 5
6#define USER_AGENT "snac/" VERSION 6#define USER_AGENT "snac/" VERSION
7 7
@@ -105,6 +105,9 @@ int validate_uid(const char *uid);
105xs_str *hash_password(const char *uid, const char *passwd, const char *nonce); 105xs_str *hash_password(const char *uid, const char *passwd, const char *nonce);
106int check_password(const char *uid, const char *passwd, const char *hash); 106int check_password(const char *uid, const char *passwd, const char *hash);
107 107
108int strip_media(const char *fn);
109int check_strip_tool(void);
110
108void srv_archive(const char *direction, const char *url, xs_dict *req, 111void srv_archive(const char *direction, const char *url, xs_dict *req,
109 const char *payload, int p_size, 112 const char *payload, int p_size,
110 int status, xs_dict *headers, 113 int status, xs_dict *headers,
@@ -146,12 +149,15 @@ void object_touch(const char *id);
146int object_admire(const char *id, const char *actor, int like); 149int object_admire(const char *id, const char *actor, int like);
147int object_unadmire(const char *id, const char *actor, int like); 150int object_unadmire(const char *id, const char *actor, int like);
148 151
152int object_emoji_react(const char *mid, const char *eid);
153int object_rm_emoji_react(const char *mid, const char *eid);
149int object_likes_len(const char *id); 154int object_likes_len(const char *id);
150int object_announces_len(const char *id); 155int object_announces_len(const char *id);
151 156
152xs_list *object_children(const char *id); 157xs_list *object_children(const char *id);
153xs_list *object_likes(const char *id); 158xs_list *object_likes(const char *id);
154xs_list *object_announces(const char *id); 159xs_list *object_announces(const char *id);
160xs_list *object_get_emoji_reacts(const char *id);
155int object_parent(const char *md5, char parent[MD5_HEX_SIZE]); 161int object_parent(const char *md5, char parent[MD5_HEX_SIZE]);
156 162
157int object_user_cache_add(snac *snac, const char *id, const char *cachedir); 163int object_user_cache_add(snac *snac, const char *id, const char *cachedir);
@@ -180,7 +186,8 @@ xs_str *user_index_fn(snac *user, const char *idx_name);
180xs_list *timeline_simple_list(snac *user, const char *idx_name, int skip, int show, int *more); 186xs_list *timeline_simple_list(snac *user, const char *idx_name, int skip, int show, int *more);
181xs_list *timeline_list(snac *snac, const char *idx_name, int skip, int show, int *more); 187xs_list *timeline_list(snac *snac, const char *idx_name, int skip, int show, int *more);
182int timeline_add(snac *snac, const char *id, const xs_dict *o_msg); 188int timeline_add(snac *snac, const char *id, const xs_dict *o_msg);
183int timeline_admire(snac *snac, const char *id, const char *admirer, int like); 189int timeline_admire(snac *snac, const char *id, const char *admirer, int like, const xs_dict *msg);
190int timeline_emoji_react(const char *atto, const char *id, const xs_dict *o_msg);
184 191
185xs_list *timeline_top_level(snac *snac, const xs_list *list); 192xs_list *timeline_top_level(snac *snac, const xs_list *list);
186void timeline_add_mark(snac *user); 193void timeline_add_mark(snac *user);
@@ -201,6 +208,8 @@ void unmute(snac *snac, const char *actor);
201int is_muted(snac *snac, const char *actor); 208int is_muted(snac *snac, const char *actor);
202xs_list *muted_list(snac *user); 209xs_list *muted_list(snac *user);
203 210
211xs_str *emoji_reacted(snac *user, const char *id);
212
204int is_bookmarked(snac *user, const char *id); 213int is_bookmarked(snac *user, const char *id);
205int bookmark(snac *user, const char *id); 214int bookmark(snac *user, const char *id);
206int unbookmark(snac *user, const char *id); 215int unbookmark(snac *user, const char *id);
@@ -358,6 +367,8 @@ xs_list *get_attachments(const xs_dict *msg);
358 367
359xs_dict *msg_admiration(snac *snac, const char *object, const char *type); 368xs_dict *msg_admiration(snac *snac, const char *object, const char *type);
360xs_dict *msg_repulsion(snac *user, const char *id, const char *type); 369xs_dict *msg_repulsion(snac *user, const char *id, const char *type);
370xs_dict *msg_emoji_init(snac *user, const char *mid, const char *eid);
371xs_dict *msg_emoji_unreact(snac *user, const char *id, const char *type);
361xs_dict *msg_create(snac *snac, const xs_dict *object); 372xs_dict *msg_create(snac *snac, const xs_dict *object);
362xs_dict *msg_follow(snac *snac, const char *actor); 373xs_dict *msg_follow(snac *snac, const char *actor);
363 374
@@ -388,6 +399,7 @@ int send_to_inbox(snac *snac, const xs_str *inbox, const xs_dict *msg,
388xs_str *get_actor_inbox(const char *actor, int shared); 399xs_str *get_actor_inbox(const char *actor, int shared);
389int send_to_actor(snac *snac, const char *actor, const xs_dict *msg, 400int send_to_actor(snac *snac, const char *actor, const xs_dict *msg,
390 xs_val **payload, int *p_size, int timeout); 401 xs_val **payload, int *p_size, int timeout);
402int is_msg_mine(snac *user, const char *id);
391int is_msg_public(const xs_dict *msg); 403int is_msg_public(const xs_dict *msg);
392int is_msg_from_private_user(const xs_dict *msg); 404int is_msg_from_private_user(const xs_dict *msg);
393int is_msg_for_me(snac *snac, const xs_dict *msg); 405int is_msg_for_me(snac *snac, const xs_dict *msg);
@@ -403,6 +415,7 @@ int activitypub_post_handler(const xs_dict *req, const char *q_path,
403 char **body, int *b_size, char **ctype); 415 char **body, int *b_size, char **ctype);
404 416
405xs_dict *emojis(void); 417xs_dict *emojis(void);
418xs_dict *emojis_rm_categories(void);
406xs_str *format_text_with_emoji(snac *user, const char *text, int ems, const char *proxy); 419xs_str *format_text_with_emoji(snac *user, const char *text, int ems, const char *proxy);
407xs_str *not_really_markdown(const char *content, xs_list **attach, xs_list **tag); 420xs_str *not_really_markdown(const char *content, xs_list **attach, xs_list **tag);
408xs_str *sanitize(const char *content); 421xs_str *sanitize(const char *content);
@@ -410,7 +423,7 @@ xs_str *encode_html(const char *str);
410 423
411xs_str *html_timeline(snac *user, const xs_list *list, int read_only, 424xs_str *html_timeline(snac *user, const xs_list *list, int read_only,
412 int skip, int show, int show_more, 425 int skip, int show, int show_more,
413 const char *title, const char *page, int utl, const char *error); 426 const char *title, const char *page, int utl, const char *error, int terse);
414 427
415int html_get_handler(const xs_dict *req, const char *q_path, 428int html_get_handler(const xs_dict *req, const char *q_path,
416 char **body, int *b_size, char **ctype, 429 char **body, int *b_size, char **ctype,
@@ -485,3 +498,5 @@ void rss_to_timeline(snac *user, const char *url);
485void rss_poll_hashtags(void); 498void rss_poll_hashtags(void);
486 499
487void data_fsck(void); 500void data_fsck(void);
501
502xs_list *user_top_ten(snac *user, int count);