summaryrefslogtreecommitdiff
path: root/data.c
diff options
context:
space:
mode:
authorGravatar default2022-11-24 09:49:54 +0100
committerGravatar default2022-11-24 09:49:54 +0100
commitd215f8ce4634ab769f52d70119fed2dd0d8124f9 (patch)
tree979600293c8a3c5b917a369ce090680759f7e47d /data.c
parentNew API for hidden threads. (diff)
downloadsnac2-d215f8ce4634ab769f52d70119fed2dd0d8124f9.tar.gz
snac2-d215f8ce4634ab769f52d70119fed2dd0d8124f9.tar.xz
snac2-d215f8ce4634ab769f52d70119fed2dd0d8124f9.zip
Use the new hide API.
Diffstat (limited to 'data.c')
-rw-r--r--data.c48
1 files changed, 2 insertions, 46 deletions
diff --git a/data.c b/data.c
index c1c616d..a04dac1 100644
--- a/data.c
+++ b/data.c
@@ -14,7 +14,7 @@
14#include <sys/file.h> 14#include <sys/file.h>
15#include <fcntl.h> 15#include <fcntl.h>
16 16
17double db_layout = 2.2; 17double db_layout = 2.3;
18 18
19 19
20int db_upgrade(d_char **error); 20int db_upgrade(d_char **error);
@@ -913,50 +913,6 @@ void timeline_admire(snac *snac, char *id, char *admirer, int like)
913} 913}
914 914
915 915
916int timeline_hide(snac *snac, char *id, int hide)
917/* hides/unhides a timeline entry */
918{
919 int ret = 0;
920 xs *fn = _timeline_find_fn(snac, id);
921 FILE *f;
922
923 if (fn != NULL && (f = fopen(fn, "r")) != NULL) {
924 xs *s1 = xs_readall(f);
925 xs *msg = xs_json_loads(s1);
926 xs *meta = xs_dup(xs_dict_get(msg, "_snac"));
927 xs *hdn = xs_val_new(hide ? XSTYPE_TRUE : XSTYPE_FALSE);
928 char *p, *v;
929
930 fclose(f);
931
932 /* if it's already in this hidden state, we're done */
933 if ((v = xs_dict_get(meta, "hidden")) && xs_type(v) == xs_type(hdn))
934 return ret;
935
936 meta = xs_dict_set(meta, "hidden", hdn);
937 msg = xs_dict_set(msg, "_snac", meta);
938
939 if ((f = fopen(fn, "w")) != NULL) {
940 xs *j1 = xs_json_dumps_pp(msg, 4);
941
942 fwrite(j1, strlen(j1), 1, f);
943 fclose(f);
944
945 snac_debug(snac, 1, xs_fmt("timeline_hide %d %s", hide, id));
946
947 /* now hide the children */
948 p = xs_dict_get(meta, "children");
949 while (xs_list_iter(&p, &v))
950 timeline_hide(snac, v, hide);
951
952 ret = 1;
953 }
954 }
955
956 return ret;
957}
958
959
960d_char *_following_fn(snac *snac, char *actor) 916d_char *_following_fn(snac *snac, char *actor)
961{ 917{
962 xs *md5 = xs_md5_hex(actor, strlen(actor)); 918 xs *md5 = xs_md5_hex(actor, strlen(actor));
@@ -1109,7 +1065,7 @@ int is_muted(snac *snac, char *actor)
1109d_char *_hidden_fn(snac *snac, const char *id) 1065d_char *_hidden_fn(snac *snac, const char *id)
1110{ 1066{
1111 xs *md5 = xs_md5_hex(id, strlen(id)); 1067 xs *md5 = xs_md5_hex(id, strlen(id));
1112 return xs_fmt("%s/hidden/%s.json", snac->basedir, md5); 1068 return xs_fmt("%s/hidden/%s", snac->basedir, md5);
1113} 1069}
1114 1070
1115 1071