commit f5332ec

default  ·  2024-08-09 14:28:57 +0000 UTC
parent db7a68d
Added some functions that return index filenames.
2 files changed,  +30, -7
M data.c
M snac.h
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);