fix start and end times for recordings

Signed-off-by: si458 <simonsmith5521@gmail.com>
This commit is contained in:
si458 2025-04-16 18:07:50 +01:00
parent b75f96cb1c
commit 1cd2bb26f0
3 changed files with 10 additions and 10 deletions

View File

@ -90,7 +90,7 @@ function recordingEntry (logfile, type, flags, data, func, tag) {
out = data + '\r\n' + utcDate.toUTCString() + ', ' + "<<<START>>>" + '\r\n';
} else if (type == 3) {
// End of log
out = utcDate.toUTCString() + ', ' + "<<<END>>>" + '\r\n';
out = new Date(Date.now() - 5000).toUTCString() + ', ' + "<<<END>>>" + '\r\n';
} else if (typeof data == 'string') {
// Log message
if (logfile.text == 1) {
@ -121,20 +121,20 @@ function recordingEntry (logfile, type, flags, data, func, tag) {
if (typeof data == 'string') {
// String write
var blockData = Buffer.from(data), header = Buffer.alloc(16); // Header: Type (2) + Flags (2) + Size(4) + Time(8)
header.writeInt16BE(type, 0); // Type (1 = Header, 2 = Network Data)
header.writeInt16BE(type, 0); // Type (1 = Start, 2 = Network Data, 3 = End)
header.writeInt16BE(flags, 2); // Flags (1 = Binary, 2 = User)
header.writeInt32BE(blockData.length, 4); // Size
header.writeIntBE(new Date(), 10, 6); // Time
header.writeIntBE((type == 3 ? new Date(Date.now() - 5000) : new Date()), 10, 6); // Time
var block = Buffer.concat([header, blockData]);
require('fs').write(logfile.fd, block, 0, block.length, function () { func(logfile, tag); });
logfile.size += block.length;
} else {
// Binary write
var header = Buffer.alloc(16); // Header: Type (2) + Flags (2) + Size(4) + Time(8)
header.writeInt16BE(type, 0); // Type (1 = Header, 2 = Network Data)
header.writeInt16BE(type, 0); // Type (1 = Start, 2 = Network Data)
header.writeInt16BE(flags | 1, 2); // Flags (1 = Binary, 2 = User)
header.writeInt32BE(data.length, 4); // Size
header.writeIntBE(new Date(), 10, 6); // Time
header.writeIntBE((type == 3 ? new Date(Date.now() - 5000) : new Date()), 10, 6); // Time
var block = Buffer.concat([header, data]);
require('fs').write(logfile.fd, block, 0, block.length, function () { func(logfile, tag); });
logfile.size += block.length;
@ -824,7 +824,7 @@ function CreateMeshRelayEx(parent, ws, req, domain, user, cookie) {
// Compute session length
var sessionLength = null;
if (tag.logfile.startTime != null) { sessionLength = Math.round((Date.now() - tag.logfile.startTime) / 1000); }
if (tag.logfile.startTime != null) { sessionLength = Math.round((Date.now() - tag.logfile.startTime) / 1000) - 5; }
// Add a event entry about this recording
var basefile = parent.parent.path.basename(tag.logfile.filename);

View File

@ -17415,7 +17415,7 @@
if (p52recordings != null) {
var recdate = null;
for (var i in p52recordings) {
var rec = p52recordings[i], rect = new Date(rec.time), day = printDate(rect);
var rec = p52recordings[i], rect = new Date(rec.startTime), day = printDate(rect);
if (day != recdate) { recdate = day; x += '<tr><td class=userTableHeader colspan=4>' + day; }
x += addRecordingHtml(i, rec);
}
@ -17433,7 +17433,7 @@
function addRecordingHtml(i, rec) {
var sessionLengthStr = '';
if (rec.lengthTime) { sessionLengthStr = pad2(Math.floor(rec.lengthTime / 3600)) + ':' + pad2(Math.floor((rec.lengthTime % 3600) / 60)) + ':' + pad2(Math.floor(rec.lengthTime % 60)); }
var sessionStartStr = printTime(new Date(rec.time));
var sessionStartStr = printTime(new Date(rec.startTime));
if (rec.sessionStart) { sessionStartStr = printTime(new Date(rec.sessionStart)); }
var sessionSize = '';
if (rec.size) { sessionSize = format("{0} Kb", Math.round(rec.size / 1024)); }

View File

@ -18681,7 +18681,7 @@
if (p52recordings != null) {
var recdate = null;
for (var i in p52recordings) {
var rec = p52recordings[i], rect = new Date(rec.time), day = printDate(rect);
var rec = p52recordings[i], rect = new Date(rec.startTime), day = printDate(rect);
if (day != recdate) { recdate = day; x += '<tr><td class=userTableHeader colspan=4>' + day; }
x += addRecordingHtml(i, rec);
}
@ -18699,7 +18699,7 @@
function addRecordingHtml(i, rec) {
var sessionLengthStr = '';
if (rec.lengthTime) { sessionLengthStr = pad2(Math.floor(rec.lengthTime / 3600)) + ':' + pad2(Math.floor((rec.lengthTime % 3600) / 60)) + ':' + pad2(Math.floor(rec.lengthTime % 60)); }
var sessionStartStr = printTime(new Date(rec.time));
var sessionStartStr = printTime(new Date(rec.startTime));
if (rec.sessionStart) { sessionStartStr = printTime(new Date(rec.sessionStart)); }
var sessionSize = '';
if (rec.size) { sessionSize = format("{0} Kb", Math.round(rec.size / 1024)); }