Added date infos for logs

This commit is contained in:
2022-06-27 15:38:04 +02:00
parent aa4e557561
commit 28a778e0ca
9 changed files with 282 additions and 14 deletions

144
src/components/logReader.ts Normal file
View File

@@ -0,0 +1,144 @@
import logger from "./logger";
import {parse as csvParse} from "csv-parse";
async function openLogFile(filePath:string, rawData:boolean) {
const data = await fetch(filePath).then(function(response) {
return response.text();
}).then(function(data) {
return data;
}).catch(function(error) {
logger.error("Could not load log file: " + error.toString());
return "";
});
if(rawData) {
return data;
} else {
let logData:string[]|undefined = undefined;
csvParse(data, {}, (err, output:string[]) => {
if(err) {
logger.errorMSG(`Error parsing csv file: ${err}`);
logData = [];
} else {
logData = output;
}
});
while(typeof logData === "undefined") {
await new Promise(resolve => setTimeout(resolve, 100));
}
return logData;
}
}
async function getLogTime(filePath:string) {
return await openLogFile(filePath, false).then(function(data) {
if(data.length > 0) {
const time = data[1][1];
const date = data[1][0];
const endTime = data[data.length - 1][1];
const endDate = data[data.length - 1][0];
const dateList = date.split("-");
const endDateList = endDate.split("-");
const timeList = time.split(":");
timeList.push(timeList[2].split(".")[1]);
timeList[2] = timeList[2].split(".")[0];
const endTimeList = endTime.split(":");
endTimeList.push(endTimeList[2].split(".")[1]);
endTimeList[2] = endTimeList[2].split(".")[0];
const year = parseInt(dateList[0]);
const month = parseInt(dateList[1]);
const day = parseInt(dateList[2]);
const hour = parseInt(timeList[0]);
const minute = parseInt(timeList[1]);
const second = parseInt(timeList[2]);
const millisecond = parseInt(timeList[3]);
let pastYears = parseInt(endDateList[0]) - year;
let pastMonths = parseInt(endDateList[1]) - month;
let pastDays = parseInt(endDateList[2]) - day;
let pastHours = parseInt(endTimeList[0]) - hour;
let pastMinutes = parseInt(endTimeList[1]) - minute;
let pastSeconds = parseInt(endTimeList[2]) - second;
let pastMilliseconds = parseInt(endTimeList[3]) - millisecond;
if(pastMilliseconds < 0) {
pastMilliseconds += 1000;
pastSeconds--;
}
if(pastSeconds < 0) {
pastSeconds += 60;
pastMinutes--;
}
if(pastMinutes < 0) {
pastMinutes += 60;
pastHours--;
}
if(pastHours < 0) {
pastHours += 24;
pastDays--;
}
if(pastDays < 0) {
pastDays += 30;
pastMonths--;
}
if(pastMonths < 0) {
pastMonths += 12;
pastYears--;
}
return {
start: {
year,
month,
day,
hour,
minute,
second,
millisecond
},
length: {
years: pastYears,
months: pastMonths,
days: pastDays,
hours: pastHours,
minutes: pastMinutes,
seconds: pastSeconds,
milliseconds: pastMilliseconds
}
}
} else {
return {
start: {
year: 0,
month: 0,
day: 0,
hour: 0,
minute: 0,
second: 0,
millisecond: 0,
},
length: {
years: 0,
months: 0,
days: 0,
hours: 0,
minutes: 0,
seconds: 0,
milliseconds: 0
}
};
}
});
}
export {
getLogTime
};