commit f5332ec
default
·
2024-08-09 14:28:57 +0000 UTC
parent db7a68d
Added some functions that return index filenames.
M
data.c
+26,
-6
1@@ -1300,10 +1300,17 @@ xs_list *timeline_top_level(snac *snac, const xs_list *list)
2 }
3
4
5-xs_list *timeline_simple_list(snac *snac, const char *idx_name, int skip, int show)
6+xs_str *user_index_fn(snac *user, const char *idx_name)
7+/* returns the filename of a user index */
8+{
9+ return xs_fmt("%s/%s.idx", user->basedir, idx_name);
10+}
11+
12+
13+xs_list *timeline_simple_list(snac *user, const char *idx_name, int skip, int show)
14 /* returns a timeline (with all entries) */
15 {
16- xs *idx = xs_fmt("%s/%s.idx", snac->basedir, idx_name);
17+ xs *idx = user_index_fn(user, idx_name);
18
19 return index_list_desc(idx, skip, show);
20 }
21@@ -1327,10 +1334,16 @@ xs_list *timeline_list(snac *snac, const char *idx_name, int skip, int show)
22 }
23
24
25+xs_str *instance_index_fn(void)
26+{
27+ return xs_fmt("%s/public.idx", srv_basedir);
28+}
29+
30+
31 xs_list *timeline_instance_list(int skip, int show)
32 /* returns the timeline for the full instance */
33 {
34- xs *idx = xs_fmt("%s/public.idx", srv_basedir);
35+ xs *idx = instance_index_fn();
36
37 return index_list_desc(idx, skip, show);
38 }
39@@ -1803,15 +1816,22 @@ void tag_index(const char *id, const xs_dict *obj)
40 }
41
42
43-xs_list *tag_search(const char *tag, int skip, int show)
44-/* returns the list of posts tagged with tag */
45+xs_str *tag_fn(const char *tag)
46 {
47 if (*tag == '#')
48 tag++;
49
50 xs *lw_tag = xs_tolower_i(xs_dup(tag));
51 xs *md5 = xs_md5_hex(lw_tag, strlen(lw_tag));
52- xs *idx = xs_fmt("%s/tag/%c%c/%s.idx", srv_basedir, md5[0], md5[1], md5);
53+
54+ return xs_fmt("%s/tag/%c%c/%s.idx", srv_basedir, md5[0], md5[1], md5);
55+}
56+
57+
58+xs_list *tag_search(const char *tag, int skip, int show)
59+/* returns the list of posts tagged with tag */
60+{
61+ xs *idx = tag_fn(tag);
62
63 return index_list_desc(idx, skip, show);
64 }
M
snac.h
+4,
-1
1@@ -145,13 +145,15 @@ int timeline_touch(snac *snac);
2 int timeline_here(snac *snac, const char *md5);
3 int timeline_get_by_md5(snac *snac, const char *md5, xs_dict **msg);
4 int timeline_del(snac *snac, const char *id);
5-xs_list *timeline_simple_list(snac *snac, const char *idx_name, int skip, int show);
6+xs_str *user_index_fn(snac *user, const char *idx_name);
7+xs_list *timeline_simple_list(snac *user, const char *idx_name, int skip, int show);
8 xs_list *timeline_list(snac *snac, const char *idx_name, int skip, int show);
9 int timeline_add(snac *snac, const char *id, const xs_dict *o_msg);
10 int timeline_admire(snac *snac, const char *id, const char *admirer, int like);
11
12 xs_list *timeline_top_level(snac *snac, const xs_list *list);
13 xs_list *local_list(snac *snac, int max);
14+xs_str *instance_index_fn(void);
15 xs_list *timeline_instance_list(int skip, int show);
16
17 int following_add(snac *snac, const char *actor, const xs_dict *msg);
18@@ -179,6 +181,7 @@ void hide(snac *snac, const char *id);
19 int is_hidden(snac *snac, const char *id);
20
21 void tag_index(const char *id, const xs_dict *obj);
22+xs_str *tag_fn(const char *tag);
23 xs_list *tag_search(const char *tag, int skip, int show);
24
25 xs_val *list_maint(snac *user, const char *list, int op);