From 64111f85bdf1dd74bb3bf1ff6886f497cc74f6bd Mon Sep 17 00:00:00 2001 From: default Date: Mon, 14 Aug 2023 10:08:19 +0200 Subject: Some work towards an instance timeline. --- html.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 48 insertions(+), 18 deletions(-) (limited to 'html.c') diff --git a/html.c b/html.c index 161292d..b941464 100644 --- a/html.c +++ b/html.c @@ -218,10 +218,10 @@ xs_str *html_msg_icon(xs_str *os, const xs_dict *msg) } -xs_str *html_user_header(snac *snac, xs_str *s, int local) -/* creates the HTML header */ +xs_str *html_base_header(xs_str *s) { - char *p, *v; + xs_list *p; + xs_str *v; s = xs_str_cat(s, "\n\n\n"); s = xs_str_cat(s, "\n\n"); + + return s; +} + + +xs_str *html_user_header(snac *snac, xs_str *s, int local) +/* creates the HTML header */ +{ + s = html_base_header(s); + /* add the user CSS */ { xs *css = NULL; @@ -1345,7 +1364,7 @@ xs_str *html_entry(snac *user, xs_str *os, const xs_dict *msg, int local, } -xs_str *html_user_footer(xs_str *s) +xs_str *html_footer(xs_str *s) { xs *s1 = xs_fmt( "
\n" @@ -1361,7 +1380,7 @@ xs_str *html_user_footer(xs_str *s) } -xs_str *html_timeline(snac *snac, const xs_list *list, int local, int skip, int show, int show_more) +xs_str *html_timeline(snac *user, const xs_list *list, int local, int skip, int show, int show_more) /* returns the HTML for the timeline */ { xs_str *s = xs_str_new(NULL); @@ -1369,26 +1388,35 @@ xs_str *html_timeline(snac *snac, const xs_list *list, int local, int skip, int char *v; double t = ftime(); - s = html_user_header(snac, s, local); + if (user) + s = html_user_header(user, s, local); + else + s = html_instance_header(s); - if (!local) - s = html_top_controls(snac, s); + if (user && !local) + s = html_top_controls(user, s); s = xs_str_cat(s, "\n"); s = xs_str_cat(s, "
\n"); while (xs_list_iter(&p, &v)) { xs *msg = NULL; + int status; - if (!valid_status(timeline_get_by_md5(snac, v, &msg))) + if (user) + status = timeline_get_by_md5(user, v, &msg); + else + status = object_get_by_md5(v, &msg); + + if (!valid_status(status)) continue; - s = html_entry(snac, s, msg, local, 0, v, 0); + s = html_entry(user, s, msg, local, 0, v, 0); } s = xs_str_cat(s, "
\n"); - if (local) { + if (user && local) { xs *s1 = xs_fmt( "
\n" "

%s

    \n", @@ -1397,7 +1425,7 @@ xs_str *html_timeline(snac *snac, const xs_list *list, int local, int skip, int s = xs_str_cat(s, s1); - xs *list = history_list(snac); + xs *list = history_list(user); char *p, *v; p = list; @@ -1405,7 +1433,7 @@ xs_str *html_timeline(snac *snac, const xs_list *list, int local, int skip, int xs *fn = xs_replace(v, ".html", ""); xs *s1 = xs_fmt( "
  • %s
  • \n", - snac->actor, v, fn); + user->actor, v, fn); s = xs_str_cat(s, s1); } @@ -1419,19 +1447,21 @@ xs_str *html_timeline(snac *snac, const xs_list *list, int local, int skip, int } if (show_more) { + const char *base_url = user ? user->actor : srv_baseurl; + xs *s1 = xs_fmt( "

    " "%s - " "%s" "

    \n", - snac->actor, local ? "" : "/admin", L("Back to top"), - snac->actor, local ? "" : "/admin", skip + show, show, L("Older entries...") + base_url, local ? "" : "/admin", L("Back to top"), + base_url, local ? "" : "/admin", skip + show, show, L("Older entries...") ); s = xs_str_cat(s, s1); } - s = html_user_footer(s); + s = html_footer(s); s = xs_str_cat(s, "\n\n"); @@ -1567,7 +1597,7 @@ xs_str *html_people(snac *snac) s = html_people_list(snac, s, wers, L("People that follow you"), "e"); - s = html_user_footer(s); + s = html_footer(s); s = xs_str_cat(s, "\n\n"); @@ -1684,7 +1714,7 @@ xs_str *html_notifications(snac *snac) else s = xs_str_cat(s, "
\n"); - s = html_user_footer(s); + s = html_footer(s); s = xs_str_cat(s, "\n\n"); -- cgit v1.2.3