translation en
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
// Reforger Output Console
|
||||
// Überwacht mehrere Log-Ordner, nimmt jeweils den neuesten Unterordner und
|
||||
// streamt die darin liegende Log-Datei live an eine Browser-Oberfläche.
|
||||
// Watches several log folders, picks the newest subfolder of each and
|
||||
// streams the log file inside it live to a browser UI.
|
||||
|
||||
const http = require('http');
|
||||
const fs = require('fs');
|
||||
@@ -15,7 +15,7 @@ const config = JSON.parse(fs.readFileSync(CONFIG_PATH, 'utf8'));
|
||||
const PORT = config.port || 8420;
|
||||
const POLL_MS = config.pollIntervalMs || 500;
|
||||
const MAX_LINES = config.maxLinesPerPane || 20000;
|
||||
// Server-seitiger Puffer, damit neu verbundene Browser den bisherigen Inhalt bekommen.
|
||||
// Server-side buffer so newly connected browsers receive the existing content.
|
||||
const MAX_CHARS = MAX_LINES * 300;
|
||||
const CRASH_FILE = config.crashFile || 'crash.log';
|
||||
|
||||
@@ -53,7 +53,7 @@ function snapshot(p) {
|
||||
};
|
||||
}
|
||||
|
||||
// Neuester Unterordner nach Erstellungszeit (bei Gleichstand nach Name).
|
||||
// Newest subfolder by creation time (ties broken by name).
|
||||
function newestFolder(dir) {
|
||||
let entries;
|
||||
try {
|
||||
@@ -88,7 +88,7 @@ function resetPane(p) {
|
||||
broadcast('reset', snapshot(p));
|
||||
}
|
||||
|
||||
// Crash-Report ist klein und wird bei jeder Änderung komplett neu gesendet.
|
||||
// The crash report is small and is resent in full on every change.
|
||||
function pollCrash(p) {
|
||||
const file = path.join(p.logsDir, p.folder, CRASH_FILE);
|
||||
let st;
|
||||
@@ -105,7 +105,7 @@ function pollCrash(p) {
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
if (p.crash === null) console.log(`[${p.name}] Crash-Report gefunden: ${p.folder}\\${CRASH_FILE}`);
|
||||
if (p.crash === null) console.log(`[${p.name}] Crash report found: ${p.folder}\\${CRASH_FILE}`);
|
||||
p.crashStamp = stamp;
|
||||
p.crash = text;
|
||||
broadcast('crash', { id: p.id, text });
|
||||
@@ -116,7 +116,7 @@ function pollPane(p) {
|
||||
const dirMissing = folder === undefined;
|
||||
if (folder !== p.folder || dirMissing !== p.dirMissing) {
|
||||
if (p.folder !== undefined && folder) {
|
||||
console.log(`[${p.name}] Neuer Log-Ordner: ${folder}`);
|
||||
console.log(`[${p.name}] New log folder: ${folder}`);
|
||||
}
|
||||
p.folder = folder;
|
||||
p.dirMissing = dirMissing;
|
||||
@@ -131,10 +131,10 @@ function pollPane(p) {
|
||||
try {
|
||||
size = fs.statSync(file).size;
|
||||
} catch {
|
||||
return; // Datei existiert (noch) nicht
|
||||
return; // file doesn't exist (yet)
|
||||
}
|
||||
|
||||
if (size < p.offset) resetPane(p); // Datei wurde gekürzt/neu geschrieben
|
||||
if (size < p.offset) resetPane(p); // file was truncated/rewritten
|
||||
if (size === p.offset) return;
|
||||
|
||||
let start = p.offset;
|
||||
@@ -193,7 +193,7 @@ const server = http.createServer((req, res) => {
|
||||
return;
|
||||
}
|
||||
|
||||
// Öffnet den aktuellen Log-Ordner eines Panes im Explorer.
|
||||
// Opens a pane's current log folder in Explorer.
|
||||
if (url.pathname === '/open' && req.method === 'POST') {
|
||||
const p = panes[Number(url.searchParams.get('id'))];
|
||||
if (p) {
|
||||
@@ -207,16 +207,16 @@ const server = http.createServer((req, res) => {
|
||||
res.writeHead(404).end();
|
||||
});
|
||||
|
||||
// Keep-alive, damit Verbindungen nicht wegen Inaktivität geschlossen werden.
|
||||
// Keep-alive so connections aren't closed due to inactivity.
|
||||
setInterval(() => {
|
||||
for (const res of clients) res.write(': ping\n\n');
|
||||
}, 15000);
|
||||
|
||||
server.listen(PORT, '127.0.0.1', () => {
|
||||
const url = `http://localhost:${PORT}`;
|
||||
console.log(`Reforger Output Console läuft auf ${url}`);
|
||||
for (const p of panes) console.log(` - ${p.name}: ${p.logsDir}\\<neuester Ordner>\\${p.file}`);
|
||||
console.log('Beenden mit Strg+C.');
|
||||
console.log(`Reforger Output Console running at ${url}`);
|
||||
for (const p of panes) console.log(` - ${p.name}: ${p.logsDir}\\<newest folder>\\${p.file}`);
|
||||
console.log('Press Ctrl+C to stop.');
|
||||
pollAll();
|
||||
setInterval(pollAll, POLL_MS);
|
||||
if (config.openBrowser !== false) {
|
||||
@@ -226,7 +226,7 @@ server.listen(PORT, '127.0.0.1', () => {
|
||||
|
||||
server.on('error', (err) => {
|
||||
if (err.code === 'EADDRINUSE') {
|
||||
console.error(`Port ${PORT} ist schon belegt – läuft die Konsole bereits? Sonst "port" in config.json ändern.`);
|
||||
console.error(`Port ${PORT} is already in use – is the console already running? Otherwise change "port" in config.json.`);
|
||||
} else {
|
||||
console.error(err);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user