diff options
| author | 2022-11-24 09:49:54 +0100 | |
|---|---|---|
| committer | 2022-11-24 09:49:54 +0100 | |
| commit | d215f8ce4634ab769f52d70119fed2dd0d8124f9 (patch) | |
| tree | 979600293c8a3c5b917a369ce090680759f7e47d /data.c | |
| parent | New API for hidden threads. (diff) | |
| download | snac2-d215f8ce4634ab769f52d70119fed2dd0d8124f9.tar.gz snac2-d215f8ce4634ab769f52d70119fed2dd0d8124f9.tar.xz snac2-d215f8ce4634ab769f52d70119fed2dd0d8124f9.zip | |
Use the new hide API.
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 48 |
1 files changed, 2 insertions, 46 deletions
| @@ -14,7 +14,7 @@ | |||
| 14 | #include <sys/file.h> | 14 | #include <sys/file.h> |
| 15 | #include <fcntl.h> | 15 | #include <fcntl.h> |
| 16 | 16 | ||
| 17 | double db_layout = 2.2; | 17 | double db_layout = 2.3; |
| 18 | 18 | ||
| 19 | 19 | ||
| 20 | int db_upgrade(d_char **error); | 20 | int 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 | ||
| 916 | int 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 | |||
| 960 | d_char *_following_fn(snac *snac, char *actor) | 916 | d_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) | |||
| 1109 | d_char *_hidden_fn(snac *snac, const char *id) | 1065 | d_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 | ||