commit 4553528
default
·
2022-11-24 08:39:16 +0000 UTC
parent ea94a47
New API for hidden threads.
M
data.c
+31,
-0
1@@ -1106,6 +1106,37 @@ int is_muted(snac *snac, char *actor)
2 }
3
4
5+d_char *_hidden_fn(snac *snac, const char *id)
6+{
7+ xs *md5 = xs_md5_hex(id, strlen(id));
8+ return xs_fmt("%s/hidden/%s.json", snac->basedir, md5);
9+}
10+
11+
12+void hide(snac *snac, const char *id)
13+/* hides a message tree */
14+{
15+ xs *fn = _hidden_fn(snac, id);
16+ FILE *f;
17+
18+ if ((f = fopen(fn, "w")) != NULL) {
19+ fprintf(f, "%s\n", id);
20+ fclose(f);
21+
22+ snac_debug(snac, 2, xs_fmt("hidden %s %s", id, fn));
23+ }
24+}
25+
26+
27+int is_hidden(snac *snac, const char *id)
28+/* check is id is hidden */
29+{
30+ xs *fn = _hidden_fn(snac, id);
31+
32+ return !!(mtime(fn) != 0.0);
33+}
34+
35+
36 int actor_add(snac *snac, const char *actor, d_char *msg)
37 /* adds an actor */
38 {
M
snac.h
+3,
-0
1@@ -85,6 +85,9 @@ void mute(snac *snac, char *actor);
2 void unmute(snac *snac, char *actor);
3 int is_muted(snac *snac, char *actor);
4
5+void hide(snac *snac, const char *id);
6+int is_hidden(snac *snac, const char *id);
7+
8 int actor_add(snac *snac, const char *actor, d_char *msg);
9 int actor_get(snac *snac, const char *actor, d_char **data);
10