summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data.c24
-rw-r--r--main.c9
-rw-r--r--snac.h2
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);