default 3 лет назад
Родитель
Сommit
2ad703e520
3 измененных файлов с 18 добавлено и 17 удалено
  1. 8 16
      data.c
  2. 9 0
      main.c
  3. 1 1
      snac.h

+ 8 - 16
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);

+ 9 - 0
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;
     }

+ 1 - 1
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);