diff options
author | default <nobody@localhost> | 2024-02-21 08:09:57 +0100 |
---|---|---|
committer | default <nobody@localhost> | 2024-02-21 08:09:57 +0100 |
commit | b40e71c11c2451b541bd55238b0566a9ecc7570f (patch) | |
tree | 7a6ee4381a4eb84f4ecc04e285af191d214824ed | |
parent | 2b814287fd89941f275c478e7e3d51af6bf72775 (diff) |
Added a page argument to html_timeline().
-rw-r--r-- | html.c | 18 | ||||
-rw-r--r-- | httpd.c | 6 | ||||
-rw-r--r-- | snac.h | 2 |
3 files changed, 16 insertions, 10 deletions
@@ -1880,7 +1880,7 @@ xs_html *html_footer(void) xs_str *html_timeline(snac *user, const xs_list *list, int local, - int skip, int show, int show_more, char *tag) + int skip, int show, int show_more, char *tag, char *page) /* returns the HTML for the timeline */ { xs_list *p = (xs_list *)list; @@ -2003,12 +2003,15 @@ xs_str *html_timeline(snac *user, const xs_list *list, int local, xs *m = NULL; xs *ss = xs_fmt("skip=%d&show=%d", skip + show, show); + xs *url = page == NULL || user == NULL ? + xs_dup(srv_baseurl) : xs_fmt("%s%s", user->actor, page); + if (tag) { - t = xs_fmt("%s?t=%s", srv_baseurl, tag); + t = xs_fmt("%s?t=%s", url, tag); m = xs_fmt("%s&%s", t, ss); } else { - t = xs_fmt("%s%s", user ? user->actor : srv_baseurl, local ? "" : "/admin"); + t = xs_dup(url); m = xs_fmt("%s?%s", t, ss); } @@ -2401,7 +2404,8 @@ int html_get_handler(const xs_dict *req, const char *q_path, xs *h = xs_str_localtime(0, "%Y-%m.html"); if (xs_type(xs_dict_get(snac.config, "private")) == XSTYPE_TRUE) { - *body = html_timeline(&snac, NULL, 1, 0, 0, 0, NULL); + /** empty public timeline for private users **/ + *body = html_timeline(&snac, NULL, 1, 0, 0, 0, NULL, ""); *b_size = strlen(*body); status = 200; } @@ -2419,7 +2423,7 @@ int html_get_handler(const xs_dict *req, const char *q_path, xs *pins = pinned_list(&snac); pins = xs_list_cat(pins, list); - *body = html_timeline(&snac, pins, 1, skip, show, xs_list_len(next), NULL); + *body = html_timeline(&snac, pins, 1, skip, show, xs_list_len(next), NULL, ""); *b_size = strlen(*body); status = 200; @@ -2456,7 +2460,7 @@ int html_get_handler(const xs_dict *req, const char *q_path, xs *pins = pinned_list(&snac); pins = xs_list_cat(pins, list); - *body = html_timeline(&snac, pins, 0, skip, show, xs_list_len(next), NULL); + *body = html_timeline(&snac, pins, 0, skip, show, xs_list_len(next), NULL, "/admin"); *b_size = strlen(*body); status = 200; @@ -2504,7 +2508,7 @@ int html_get_handler(const xs_dict *req, const char *q_path, list = xs_list_append(list, md5); - *body = html_timeline(&snac, list, 1, 0, 0, 0, NULL); + *body = html_timeline(&snac, list, 1, 0, 0, 0, NULL, ""); *b_size = strlen(*body); status = 200; } @@ -177,6 +177,7 @@ int server_get_handler(xs_dict *req, const char *q_path, char *t = NULL; if (xs_type(q_vars) == XSTYPE_DICT && (t = xs_dict_get(q_vars, "t"))) { + /** search by tag **/ int skip = 0; int show = xs_number_get(xs_dict_get(srv_config, "max_timeline_entries")); char *v; @@ -194,12 +195,13 @@ int server_get_handler(xs_dict *req, const char *q_path, more = 1; } - *body = html_timeline(NULL, tl, 0, skip, show, more, t); + *body = html_timeline(NULL, tl, 0, skip, show, more, t, NULL); } else if (xs_type(xs_dict_get(srv_config, "show_instance_timeline")) == XSTYPE_TRUE) { + /** instance timeline **/ xs *tl = timeline_instance_list(0, 30); - *body = html_timeline(NULL, tl, 0, 0, 0, 0, NULL); + *body = html_timeline(NULL, tl, 0, 0, 0, 0, NULL, NULL); } else *body = greeting_html(); @@ -297,7 +297,7 @@ xs_str *sanitize(const char *content); xs_str *encode_html(const char *str); xs_str *html_timeline(snac *user, const xs_list *list, int local, - int skip, int show, int show_more, char *tag); + int skip, int show, int show_more, char *tag, char *page); int html_get_handler(const xs_dict *req, const char *q_path, char **body, int *b_size, char **ctype, xs_str **etag); |