Diff

plugins/mod_http_errors.lua @ 11200:bf8f2da84007

Merge 0.11->trunk
author Kim Alvefur <zash@zash.se>
date Thu, 05 Nov 2020 22:31:25 +0100
parent 11155:8d692a8a8f48
child 11388:60a61c509d87
line wrap: on
line diff
--- a/plugins/mod_http_errors.lua	Thu Nov 05 22:27:17 2020 +0100
+++ b/plugins/mod_http_errors.lua	Thu Nov 05 22:31:25 2020 +0100
@@ -26,28 +26,38 @@
 <meta charset="utf-8">
 <title>{title}</title>
 <style>
-body{
-	margin-top:14%;
-	text-align:center;
-	background-color:#F8F8F8;
-	font-family:sans-serif;
+body {
+	margin-top : 14%;
+	text-align : center;
+	background-color : #F8F8F8;
+	font-family : sans-serif
+}
+
+h1 {
+	font-size : xx-large
 }
-h1{
-	font-size:xx-large;
+
+p {
+	font-size : x-large
 }
-p{
-	font-size:x-large;
+
+p.extra {
+	font-size : large;
+	font-family : courier
 }
-p+p {
-	font-size:large;
-	font-family:courier;
+
+@media(prefers-color-scheme: dark) {
+	body {
+		background-color: #161616;
+		color: #eee
+	}
 }
 </style>
 </head>
 <body>
 <h1>{title}</h1>
 <p>{message}</p>
-<p>{extra?}</p>
+{extra&<p class="extra">{extra?}</p>}
 </body>
 </html>
 ]];
@@ -70,5 +80,17 @@
 	if event.response then
 		event.response.headers.content_type = "text/html; charset=utf-8";
 	end
-	return get_page(event.code, (show_private and event.private_message) or event.message);
+	return get_page(event.code, (show_private and event.private_message) or event.message or (event.error and event.error.text));
 end);
+
+module:hook_object_event(server, "http-error", function (event)
+	local request, response = event.request, event.response;
+	if request and response and request.path == "/" and response.status_code == 404 then
+		response.headers.content_type = "text/html; charset=utf-8";
+		return render(html, {
+				title = "Prosody is running!";
+				message = "Welcome to the XMPP world!";
+			});
+	end
+end, 1);
+