diff options
Diffstat (limited to 'html.c')
| -rw-r--r-- | html.c | 22 |
1 files changed, 18 insertions, 4 deletions
| @@ -8,6 +8,7 @@ | |||
| 8 | #include "xs_regex.h" | 8 | #include "xs_regex.h" |
| 9 | #include "xs_set.h" | 9 | #include "xs_set.h" |
| 10 | #include "xs_openssl.h" | 10 | #include "xs_openssl.h" |
| 11 | #include "xs_time.h" | ||
| 11 | 12 | ||
| 12 | #include "snac.h" | 13 | #include "snac.h" |
| 13 | 14 | ||
| @@ -753,11 +754,24 @@ int html_get_handler(d_char *req, char *q_path, char **body, int *b_size, char * | |||
| 753 | 754 | ||
| 754 | if (p_path == NULL) { | 755 | if (p_path == NULL) { |
| 755 | /* public timeline */ | 756 | /* public timeline */ |
| 756 | xs *list = local_list(&snac, 0xfffffff); | 757 | xs *h = xs_str_localtime(0, "%Y-%m.html"); |
| 757 | 758 | ||
| 758 | *body = html_timeline(&snac, list, 1); | 759 | if (history_mtime(&snac, h) > timeline_mtime(&snac)) { |
| 759 | *b_size = strlen(*body); | 760 | snac_debug(&snac, 1, xs_fmt("serving cached local timeline")); |
| 760 | status = 200; | 761 | |
| 762 | *body = history_get(&snac, h); | ||
| 763 | *b_size = strlen(*body); | ||
| 764 | status = 200; | ||
| 765 | } | ||
| 766 | else { | ||
| 767 | xs *list = local_list(&snac, 0xfffffff); | ||
| 768 | |||
| 769 | *body = html_timeline(&snac, list, 1); | ||
| 770 | *b_size = strlen(*body); | ||
| 771 | status = 200; | ||
| 772 | |||
| 773 | history_add(&snac, h, *body, *b_size); | ||
| 774 | } | ||
| 761 | } | 775 | } |
| 762 | else | 776 | else |
| 763 | if (strcmp(p_path, "admin") == 0) { | 777 | if (strcmp(p_path, "admin") == 0) { |