summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data.c32
-rw-r--r--snac.h5
2 files changed, 30 insertions, 7 deletions
diff --git a/data.c b/data.c
index 3b01498..cfedb04 100644
--- a/data.c
+++ b/data.c
@@ -1300,10 +1300,17 @@ xs_list *timeline_top_level(snac *snac, const xs_list *list)
1300} 1300}
1301 1301
1302 1302
1303xs_list *timeline_simple_list(snac *snac, const char *idx_name, int skip, int show) 1303xs_str *user_index_fn(snac *user, const char *idx_name)
1304/* returns the filename of a user index */
1305{
1306 return xs_fmt("%s/%s.idx", user->basedir, idx_name);
1307}
1308
1309
1310xs_list *timeline_simple_list(snac *user, const char *idx_name, int skip, int show)
1304/* returns a timeline (with all entries) */ 1311/* returns a timeline (with all entries) */
1305{ 1312{
1306 xs *idx = xs_fmt("%s/%s.idx", snac->basedir, idx_name); 1313 xs *idx = user_index_fn(user, idx_name);
1307 1314
1308 return index_list_desc(idx, skip, show); 1315 return index_list_desc(idx, skip, show);
1309} 1316}
@@ -1327,10 +1334,16 @@ xs_list *timeline_list(snac *snac, const char *idx_name, int skip, int show)
1327} 1334}
1328 1335
1329 1336
1337xs_str *instance_index_fn(void)
1338{
1339 return xs_fmt("%s/public.idx", srv_basedir);
1340}
1341
1342
1330xs_list *timeline_instance_list(int skip, int show) 1343xs_list *timeline_instance_list(int skip, int show)
1331/* returns the timeline for the full instance */ 1344/* returns the timeline for the full instance */
1332{ 1345{
1333 xs *idx = xs_fmt("%s/public.idx", srv_basedir); 1346 xs *idx = instance_index_fn();
1334 1347
1335 return index_list_desc(idx, skip, show); 1348 return index_list_desc(idx, skip, show);
1336} 1349}
@@ -1803,15 +1816,22 @@ void tag_index(const char *id, const xs_dict *obj)
1803} 1816}
1804 1817
1805 1818
1806xs_list *tag_search(const char *tag, int skip, int show) 1819xs_str *tag_fn(const char *tag)
1807/* returns the list of posts tagged with tag */
1808{ 1820{
1809 if (*tag == '#') 1821 if (*tag == '#')
1810 tag++; 1822 tag++;
1811 1823
1812 xs *lw_tag = xs_tolower_i(xs_dup(tag)); 1824 xs *lw_tag = xs_tolower_i(xs_dup(tag));
1813 xs *md5 = xs_md5_hex(lw_tag, strlen(lw_tag)); 1825 xs *md5 = xs_md5_hex(lw_tag, strlen(lw_tag));
1814 xs *idx = xs_fmt("%s/tag/%c%c/%s.idx", srv_basedir, md5[0], md5[1], md5); 1826
1827 return xs_fmt("%s/tag/%c%c/%s.idx", srv_basedir, md5[0], md5[1], md5);
1828}
1829
1830
1831xs_list *tag_search(const char *tag, int skip, int show)
1832/* returns the list of posts tagged with tag */
1833{
1834 xs *idx = tag_fn(tag);
1815 1835
1816 return index_list_desc(idx, skip, show); 1836 return index_list_desc(idx, skip, show);
1817} 1837}
diff --git a/snac.h b/snac.h
index f8aaac2..70ba91d 100644
--- a/snac.h
+++ b/snac.h
@@ -145,13 +145,15 @@ int timeline_touch(snac *snac);
145int timeline_here(snac *snac, const char *md5); 145int timeline_here(snac *snac, const char *md5);
146int timeline_get_by_md5(snac *snac, const char *md5, xs_dict **msg); 146int timeline_get_by_md5(snac *snac, const char *md5, xs_dict **msg);
147int timeline_del(snac *snac, const char *id); 147int timeline_del(snac *snac, const char *id);
148xs_list *timeline_simple_list(snac *snac, const char *idx_name, int skip, int show); 148xs_str *user_index_fn(snac *user, const char *idx_name);
149xs_list *timeline_simple_list(snac *user, const char *idx_name, int skip, int show);
149xs_list *timeline_list(snac *snac, const char *idx_name, int skip, int show); 150xs_list *timeline_list(snac *snac, const char *idx_name, int skip, int show);
150int timeline_add(snac *snac, const char *id, const xs_dict *o_msg); 151int timeline_add(snac *snac, const char *id, const xs_dict *o_msg);
151int timeline_admire(snac *snac, const char *id, const char *admirer, int like); 152int timeline_admire(snac *snac, const char *id, const char *admirer, int like);
152 153
153xs_list *timeline_top_level(snac *snac, const xs_list *list); 154xs_list *timeline_top_level(snac *snac, const xs_list *list);
154xs_list *local_list(snac *snac, int max); 155xs_list *local_list(snac *snac, int max);
156xs_str *instance_index_fn(void);
155xs_list *timeline_instance_list(int skip, int show); 157xs_list *timeline_instance_list(int skip, int show);
156 158
157int following_add(snac *snac, const char *actor, const xs_dict *msg); 159int following_add(snac *snac, const char *actor, const xs_dict *msg);
@@ -179,6 +181,7 @@ void hide(snac *snac, const char *id);
179int is_hidden(snac *snac, const char *id); 181int is_hidden(snac *snac, const char *id);
180 182
181void tag_index(const char *id, const xs_dict *obj); 183void tag_index(const char *id, const xs_dict *obj);
184xs_str *tag_fn(const char *tag);
182xs_list *tag_search(const char *tag, int skip, int show); 185xs_list *tag_search(const char *tag, int skip, int show);
183 186
184xs_val *list_maint(snac *user, const char *list, int op); 187xs_val *list_maint(snac *user, const char *list, int op);