diff options
| author | 2024-10-19 22:34:22 +0200 | |
|---|---|---|
| committer | 2024-10-19 22:34:22 +0200 | |
| commit | c165be86c4223b20a8480a70c33c888887ad52ec (patch) | |
| tree | 409840538351b3fac90b97c63eefc38890092ca9 | |
| parent | Call list_distribute() from timeline_request(). (diff) | |
| download | penes-snac2-c165be86c4223b20a8480a70c33c888887ad52ec.tar.gz penes-snac2-c165be86c4223b20a8480a70c33c888887ad52ec.tar.xz penes-snac2-c165be86c4223b20a8480a70c33c888887ad52ec.zip | |
In tag_index(), don't repeat tags in indexes.
| -rw-r--r-- | data.c | 5 |
1 files changed, 4 insertions, 1 deletions
| @@ -1894,6 +1894,7 @@ void tag_index(const char *id, const xs_dict *obj) | |||
| 1894 | /* update the tag indexes for this object */ | 1894 | /* update the tag indexes for this object */ |
| 1895 | { | 1895 | { |
| 1896 | const xs_list *tags = xs_dict_get(obj, "tag"); | 1896 | const xs_list *tags = xs_dict_get(obj, "tag"); |
| 1897 | xs *md5_id = xs_md5_hex(id, strlen(id)); | ||
| 1897 | 1898 | ||
| 1898 | if (is_msg_public(obj) && xs_type(tags) == XSTYPE_LIST && xs_list_len(tags) > 0) { | 1899 | if (is_msg_public(obj) && xs_type(tags) == XSTYPE_LIST && xs_list_len(tags) > 0) { |
| 1899 | xs *g_tag_dir = xs_fmt("%s/tag", srv_basedir); | 1900 | xs *g_tag_dir = xs_fmt("%s/tag", srv_basedir); |
| @@ -1920,7 +1921,9 @@ void tag_index(const char *id, const xs_dict *obj) | |||
| 1920 | mkdirx(tag_dir); | 1921 | mkdirx(tag_dir); |
| 1921 | 1922 | ||
| 1922 | xs *g_tag_idx = xs_fmt("%s/%s.idx", tag_dir, md5_tag); | 1923 | xs *g_tag_idx = xs_fmt("%s/%s.idx", tag_dir, md5_tag); |
| 1923 | index_add(g_tag_idx, id); | 1924 | |
| 1925 | if (!index_in_md5(g_tag_idx, md5_id)) | ||
| 1926 | index_add_md5(g_tag_idx, md5_id); | ||
| 1924 | 1927 | ||
| 1925 | FILE *f; | 1928 | FILE *f; |
| 1926 | xs *g_tag_name = xs_replace(g_tag_idx, ".idx", ".tag"); | 1929 | xs *g_tag_name = xs_replace(g_tag_idx, ".idx", ".tag"); |