From 99713eb86d677c5d40838f42c19327e11bd513d0 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Sun, 12 Jul 2020 13:01:41 -0400 Subject: Add network MOTD to contexts page --- contexts.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'contexts.c') diff --git a/contexts.c b/contexts.c index b486ef9..6ed9223 100644 --- a/contexts.c +++ b/contexts.c @@ -25,6 +25,14 @@ bool contextsPublic; int contextsRecent = 500; +const char *ContextsMOTDQuery = SQL( + SELECT motd + FROM motds + WHERE network = :network + ORDER BY time DESC + LIMIT 1; +); + const char *ContextsQuery = SQL( WITH recentEvents AS ( SELECT time, context @@ -112,5 +120,26 @@ enum kcgi_err contextsPage(struct kreq *req) { if (error) return error; } if (result != SQLITE_DONE) errx(EX_SOFTWARE, "%s", sqlite3_errmsg(db)); + + error = khtml_closeelem(&html, 1); + if (error) return error; + + sqlite3_reset(stmt.contextsMOTD); + dbBindText(stmt.contextsMOTD, ":network", scope.network); + + result = sqlite3_step(stmt.contextsMOTD); + if (result == SQLITE_ROW) { + error = 0 + || khtml_elem(&html, KELEM_H2) + || khtml_puts(&html, "MOTD") + || khtml_closeelem(&html, 1) + || khtml_elem(&html, KELEM_PRE) + || khtml_puts(&html, sqlite3_column_text(stmt.contextsMOTD, 0)) + || khtml_closeelem(&html, 1); + if (error) return error; + result = sqlite3_step(stmt.contextsMOTD); + } + if (result != SQLITE_DONE) errx(EX_SOFTWARE, "%s", sqlite3_errmsg(db)); + return htmlFooter(&html) || khtml_close(&html); } -- cgit 1.4.1