From 2ad703e52028814a27918f5e840f734aa98adfd1 Mon Sep 17 00:00:00 2001 From: default Date: Sat, 26 Nov 2022 18:52:51 +0100 Subject: [PATCH] timeline_top_level() works. --- data.c | 24 ++++++++---------------- main.c | 9 +++++++++ snac.h | 2 +- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/data.c b/data.c index 5117b99..196347c 100644 --- a/data.c +++ b/data.c @@ -1039,12 +1039,10 @@ int timeline_add(snac *snac, char *id, char *o_msg, char *parent, char *referrer } -d_char *timeline_top_level(snac *snac, const char *index) -/* returns the top level entries from this index */ +d_char *timeline_top_level(snac *snac, d_char *list) +/* returns the top level md5 entries from this index */ { - int max = 256; - xs *list = index_list_desc(index, max); - xs *tl = xs_list_new(); + d_char *tl = xs_list_new(); xs_set seen; char *p, *v; @@ -1061,15 +1059,13 @@ d_char *timeline_top_level(snac *snac, const char *index) xs *fn = _object_fn_by_md5(line); fn = xs_replace_i(fn, ".json", "_p.idx"); - /* if it doesn't have a parent, we got it */ - if (index_first(fn, line2, strlen(line2)) == 0) { - strcpy(line, line2); + /* if it doesn't have a parent, use this */ + if (index_first(fn, line2, sizeof(line2)) == 0) break; - } xs *pfn = _object_fn_by_md5(line2); - /* well, there is a parent... if it's not here, we're done */ + /* well, there is a parent... but if it's not there, use this */ if (mtime(pfn) == 0.0) break; @@ -1077,12 +1073,8 @@ d_char *timeline_top_level(snac *snac, const char *index) strcpy(line, line2); } - if (xs_set_add(&seen, line) == 1) { - xs *obj = NULL; - - if (valid_status(object_get(line, &obj, NULL))) - tl = xs_list_append(tl, obj); - } + if (xs_set_add(&seen, line) == 1) + tl = xs_list_append(tl, line); } xs_set_free(&seen); diff --git a/main.c b/main.c index f88b6d1..a109192 100644 --- a/main.c +++ b/main.c @@ -156,12 +156,21 @@ int main(int argc, char *argv[]) } if (strcmp(cmd, "timeline") == 0) { +#if 0 xs *list = local_list(&snac, XS_ALL); xs *body = html_timeline(&snac, list, 1); printf("%s\n", body); user_free(&snac); srv_free(); +#endif + + xs *idx = xs_fmt("%s/private.idx", snac.basedir); + xs *list = index_list_desc(idx, 256); + xs *tl = timeline_top_level(&snac, list); + + xs *j = xs_json_dumps_pp(tl, 4); + printf("%s\n", j); return 0; } diff --git a/snac.h b/snac.h index ed998a0..288a79f 100644 --- a/snac.h +++ b/snac.h @@ -76,7 +76,7 @@ d_char *timeline_list(snac *snac, int max); int timeline_add(snac *snac, char *id, char *o_msg, char *parent, char *referrer); void timeline_admire(snac *snac, char *id, char *admirer, int like); -d_char *timeline_top_level(snac *snac, const char *index); +d_char *timeline_top_level(snac *snac, d_char *list); d_char *local_list(snac *snac, int max);