Added some functions that return index filenames.

This commit is contained in:
default 2024-08-09 16:28:57 +02:00
parent db7a68d198
commit f5332ec016
2 changed files with 30 additions and 7 deletions

32
data.c
View file

@ -1300,10 +1300,17 @@ xs_list *timeline_top_level(snac *snac, const xs_list *list)
} }
xs_list *timeline_simple_list(snac *snac, const char *idx_name, int skip, int show) xs_str *user_index_fn(snac *user, const char *idx_name)
/* returns the filename of a user index */
{
return xs_fmt("%s/%s.idx", user->basedir, idx_name);
}
xs_list *timeline_simple_list(snac *user, const char *idx_name, int skip, int show)
/* returns a timeline (with all entries) */ /* returns a timeline (with all entries) */
{ {
xs *idx = xs_fmt("%s/%s.idx", snac->basedir, idx_name); xs *idx = user_index_fn(user, idx_name);
return index_list_desc(idx, skip, show); return index_list_desc(idx, skip, show);
} }
@ -1327,10 +1334,16 @@ xs_list *timeline_list(snac *snac, const char *idx_name, int skip, int show)
} }
xs_str *instance_index_fn(void)
{
return xs_fmt("%s/public.idx", srv_basedir);
}
xs_list *timeline_instance_list(int skip, int show) xs_list *timeline_instance_list(int skip, int show)
/* returns the timeline for the full instance */ /* returns the timeline for the full instance */
{ {
xs *idx = xs_fmt("%s/public.idx", srv_basedir); xs *idx = instance_index_fn();
return index_list_desc(idx, skip, show); return index_list_desc(idx, skip, show);
} }
@ -1803,15 +1816,22 @@ void tag_index(const char *id, const xs_dict *obj)
} }
xs_list *tag_search(const char *tag, int skip, int show) xs_str *tag_fn(const char *tag)
/* returns the list of posts tagged with tag */
{ {
if (*tag == '#') if (*tag == '#')
tag++; tag++;
xs *lw_tag = xs_tolower_i(xs_dup(tag)); xs *lw_tag = xs_tolower_i(xs_dup(tag));
xs *md5 = xs_md5_hex(lw_tag, strlen(lw_tag)); xs *md5 = xs_md5_hex(lw_tag, strlen(lw_tag));
xs *idx = xs_fmt("%s/tag/%c%c/%s.idx", srv_basedir, md5[0], md5[1], md5);
return xs_fmt("%s/tag/%c%c/%s.idx", srv_basedir, md5[0], md5[1], md5);
}
xs_list *tag_search(const char *tag, int skip, int show)
/* returns the list of posts tagged with tag */
{
xs *idx = tag_fn(tag);
return index_list_desc(idx, skip, show); return index_list_desc(idx, skip, show);
} }

5
snac.h
View file

@ -145,13 +145,15 @@ int timeline_touch(snac *snac);
int timeline_here(snac *snac, const char *md5); int timeline_here(snac *snac, const char *md5);
int timeline_get_by_md5(snac *snac, const char *md5, xs_dict **msg); int timeline_get_by_md5(snac *snac, const char *md5, xs_dict **msg);
int timeline_del(snac *snac, const char *id); int timeline_del(snac *snac, const char *id);
xs_list *timeline_simple_list(snac *snac, const char *idx_name, int skip, int show); xs_str *user_index_fn(snac *user, const char *idx_name);
xs_list *timeline_simple_list(snac *user, const char *idx_name, int skip, int show);
xs_list *timeline_list(snac *snac, const char *idx_name, int skip, int show); xs_list *timeline_list(snac *snac, const char *idx_name, int skip, int show);
int timeline_add(snac *snac, const char *id, const xs_dict *o_msg); int timeline_add(snac *snac, const char *id, const xs_dict *o_msg);
int timeline_admire(snac *snac, const char *id, const char *admirer, int like); int timeline_admire(snac *snac, const char *id, const char *admirer, int like);
xs_list *timeline_top_level(snac *snac, const xs_list *list); xs_list *timeline_top_level(snac *snac, const xs_list *list);
xs_list *local_list(snac *snac, int max); xs_list *local_list(snac *snac, int max);
xs_str *instance_index_fn(void);
xs_list *timeline_instance_list(int skip, int show); xs_list *timeline_instance_list(int skip, int show);
int following_add(snac *snac, const char *actor, const xs_dict *msg); int following_add(snac *snac, const char *actor, const xs_dict *msg);
@ -179,6 +181,7 @@ void hide(snac *snac, const char *id);
int is_hidden(snac *snac, const char *id); int is_hidden(snac *snac, const char *id);
void tag_index(const char *id, const xs_dict *obj); void tag_index(const char *id, const xs_dict *obj);
xs_str *tag_fn(const char *tag);
xs_list *tag_search(const char *tag, int skip, int show); xs_list *tag_search(const char *tag, int skip, int show);
xs_val *list_maint(snac *user, const char *list, int op); xs_val *list_maint(snac *user, const char *list, int op);