This repository has been archived on 2021-11-05. You can view files and clone it, but cannot push or open issues/pull-requests.
omoshiroi-log-thing/index.js

43 lines
1.6 KiB
JavaScript
Executable File

var express = require("express");
var fs = require("fs");
var escapeHtml = require("escape-html");
var app = express();
app.set("trust proxy", "127.0.0.1");
app.listen(8080, "127.0.0.1");
var html_top = fs.readFileSync("template.html", "utf8");
app.use((req, res, next) => {
let url = `${req.protocol}://${req.hostname}${req.url}`;
let ua = req.headers["user-agent"] && escapeHtml(req.headers["user-agent"]);
let referer = req.headers['referer'] && escapeHtml(req.headers['referer']);
let line =
`<span class="date">[${new Date().toISOString()}]</span> <span class="ip"><a href="https://whatismyipaddress.com/ip/${req.ip}" target="_blank">${req.ip}</a></span> ` +
`<span class="tlsver">${req.headers["x-forwarded-tlsversion"]||'-'}</span> ` +
`<span class="httpver">${req.headers["x-forwarded-realproto"]||req.httpVersion}</span> ` +
`<span class="method">${req.method}</span> <span class="url"><a href="${encodeURI(url)}" target="_blank">${escapeHtml(url)}</a></span>` +
` <span class="ua">${ua ? `"${ua}"` : '-'}</span> ` +
`<span class="referrer">${referer ? `<a href="${referer}" target="_blank">${referer}</a>` : '-'}</span>`
;
fs.appendFileSync("log.html", line + '\n');
next();
});
app.use((req, res, next) => {
if (req.protocol != "https" || req.hostname != "c-73-189-133-150.hsd1.ca.comcast.net") {
res.redirect("https://c-73-189-133-150.hsd1.ca.comcast.net/");
} else next();
});
app.get("/", (req, res) => {
res.write(html_top);
fs.createReadStream("log.html").pipe(res);
});
app.use(express.static(process.cwd()));
app.get("*", (req, res) => {
res.redirect('/');
});