summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data.c33
-rw-r--r--main.c12
-rw-r--r--snac.h3
3 files changed, 48 insertions, 0 deletions
diff --git a/data.c b/data.c
index fe21be6..e875f90 100644
--- a/data.c
+++ b/data.c
@@ -554,3 +554,36 @@ void enqueue(snac *snac, char *actor, char *msg, int retries)
554 snac_debug(snac, 2, xs_fmt("enqueue %s %s %d", actor, fn, retries)); 554 snac_debug(snac, 2, xs_fmt("enqueue %s %s %d", actor, fn, retries));
555 } 555 }
556} 556}
557
558
559d_char *queue(snac *snac)
560/* returns a list with filenames that can be dequeued */
561{
562 xs *spec = xs_fmt("%s/queue/" "*.json", snac->basedir);
563 d_char *list = xs_list_new();
564 glob_t globbuf;
565 time_t t = time(NULL);
566
567 /* get the list in reverse order */
568 if (glob(spec, 0, NULL, &globbuf) == 0) {
569 int n;
570 char *p;
571
572 for (n = 0; (p = globbuf.gl_pathv[n]) != NULL; n++) {
573 /* get the retry time from the basename */
574 char *bn = strrchr(p, '/');
575 time_t t2 = atol(bn + 1);
576
577 if (t2 > t)
578 snac_debug(snac, 2, xs_fmt("queue not yet time for %s", p));
579 else {
580 list = xs_list_append(list, p);
581 snac_debug(snac, 2, xs_fmt("queue ready for %s", p));
582 }
583 }
584 }
585
586 globfree(&globbuf);
587
588 return list;
589}
diff --git a/main.c b/main.c
index 4f77c0d..dd072e2 100644
--- a/main.c
+++ b/main.c
@@ -16,6 +16,17 @@ int main(int argc, char *argv[])
16 user_open(&snac, "mike"); 16 user_open(&snac, "mike");
17 17
18 { 18 {
19 xs *list = queue(&snac);
20 char *p, *fn;
21
22 p = list;
23 while (xs_list_iter(&p, &fn)) {
24 printf("%s\n", fn);
25 }
26 }
27
28#if 0
29 {
19 xs *list = follower_list(&snac); 30 xs *list = follower_list(&snac);
20 char *p, *obj; 31 char *p, *obj;
21 32
@@ -50,6 +61,7 @@ int main(int argc, char *argv[])
50 } 61 }
51 } 62 }
52 } 63 }
64#endif
53 65
54 return 0; 66 return 0;
55} 67}
diff --git a/snac.h b/snac.h
index 8f6d32c..9e8432d 100644
--- a/snac.h
+++ b/snac.h
@@ -57,3 +57,6 @@ int following_check(snac *snac, char *actor);
57void mute(snac *snac, char *actor); 57void mute(snac *snac, char *actor);
58void unmute(snac *snac, char *actor); 58void unmute(snac *snac, char *actor);
59int is_muted(snac *snac, char *actor); 59int is_muted(snac *snac, char *actor);
60
61void enqueue(snac *snac, char *actor, char *msg, int retries);
62d_char *queue(snac *snac);