const fs = require("fs"); const http = require("http"); const detectSerialNumber = async (fileName) => { try { let output = []; const filetemp = fs.createWriteStream("./public/tempFolder/" + fileName); const request = http.get( "http://192.168.5.7:8080/" + fileName, (response) => { response.pipe(filetemp); response.on("close", () => { const data = fs.readFileSync( "./public/tempFolder/" + fileName, "utf8" ); const arrayLine = data.split("\n"); for (let i = 0; i < arrayLine.length; i++) { if ( arrayLine[i].search("PID:") !== -1 && arrayLine[i].search("SN:") !== -1 ) { if ( output.some( (u) => u.SN === arrayLine[i] ?.split(",")[2] .split(":")[1] .replace("\r", "") .trim() ) ) { output.map((u, index) => { if ( u.SN === arrayLine[i]?.split(",")[2].split(":")[1].trim() ) { output[index].line = output[index].line.concat([i + 1]); } }); } else { output.push({ PID: arrayLine[i].split(",")[0] !== undefined ? arrayLine[i].split(",")[0].split(":")[1].trim() : "", SN: arrayLine[i].split(",")[1] !== undefined ? arrayLine[i] .split(",")[2] .split(":")[1] .replace("\r", "") .trim() : "", line: [i + 1], fileName: fileName, }); } } } console.log(output); return output; }); } ); } catch (error) { console.log(error); } }; const getParagraph = (fileName, line, range) => { try { const file = fs.createWriteStream("logFile.log"); const request = http.get( "http://192.168.5.7:8080/" + fileName, (response) => { response.pipe(file); response.on("close", () => { const data = fs.readFileSync("logFile.log", "utf8"); const arrayLine = data.split("\n"); console.log( arrayLine.slice(line - range - 1, line + range).join("\n") ); }); } ); } catch (error) { console.log(error); } }; const getListLog = async () => { try { let listLog = []; const file = fs.createWriteStream("listFile.log"); const request = http.get("http://192.168.5.7:8080/", (response) => { response.pipe(file); response.on("close", () => { const data = fs.readFileSync("listFile.log", "utf8"); const arrayLine = data .split("\n") .filter( (i) => i.search(" { let temp = u .slice(u.search("")) .split(">")[1]; listLog.push( "http://192.168.5.7:8080/" + u .slice(u.search("")) .split(">")[1]+" " ); }); fs.writeFile( "listFile.log", listLog.slice(1).join("\n"), function (err) { if (err) { return console.error(err); } console.log("Write log !"); } ); }); }); } catch (error) { console.log(error); } }; const test = async () => { try { let report = []; const data = fs.readFileSync("listFile.log", "utf8"); const arrayLine1 = data.split("\n"); arrayLine1.map(async (file, index) => { let output = []; const old_data = fs.readFileSync("indexSN", "utf8"); // setTimeout(() => { const filetemp = fs.createWriteStream("./public/tempFolder/" + file); const request = http.get( "http://192.168.5.7:8080/" + file, (response) => { response.pipe(filetemp); // response.on } ); request.setTimeout(30000); setTimeout(() => { request.end(); // request.on("close", () => { const data = fs.readFileSync("./public/tempFolder/" + file, "utf8"); const arrayLine = data.split("\n"); for (let i = 0; i < arrayLine.length; i++) { if ( arrayLine[i].search("PID:") !== -1 && arrayLine[i].search("SN:") !== -1 && arrayLine[i]?.split(",")[2] !== undefined ) { if ( output.some( (u) => u.SN === arrayLine[i] ?.split(",")[2] .split(":")[1] .replace("\r", "") .trim() ) ) { output.map((u, index) => { if (u.SN === arrayLine[i]?.split(",")[2].split(":")[1].trim()) { output[index].line = output[index].line.concat([i + 1]); } }); } else { output.push({ PID: arrayLine[i].split(",")[0] !== undefined ? arrayLine[i].split(",")[0].split(":")[1].trim() : "", SN: arrayLine[i].split(",")[1] !== undefined ? arrayLine[i] .split(",")[2] .split(":")[1] .replace("\r", "") .trim() : "", line: [i + 1], fileName: file, }); } } } fs.unlink("./public/tempFolder/" + file, (err) => { if (err) { throw err; } console.log("File is deleted."); }); }); console.log(output); report = report.concat(output); }, 200); console.log(index); // }, 300); // }) setTimeout(() => { fs.writeFile( "indexSN", JSON.stringify(report).replace(/,{/g, "\n,{"), function (err) { if (err) { return console.error(err); } console.log("Write log !"); } ); }, 45000); } catch (error) { console.log(error); } }; // getParagraph("20170626-TEST02-Session.NT8-192.168.5.20.log", 889779, 1); // detectSerialNumber("20170404-TEST01-Session.NT3-192.168.5.20.log") // test() //47538 ; // getListLog(); // const http = require('http'); const axios = require("axios"); const fetchFiles = async () => { try { await getListLog(); setTimeout(async () => { const data = fs.readFileSync("listFile.log", "utf8"); const urls = data.split("\n"); console.log(urls.length); let report = []; const fileContents = await Promise.all( urls.map(async (url) => { const maxRetries = 10; let retries = 0; while (retries < maxRetries) { try { const response = await axios.get(url?.split(" ")[0]); return response.data; } catch (error) { if (error.code !== "") { //=== "ETIMEDOUT" || error.code === "ECONNRESET" console.log("Connection timed out. Retrying..."); retries++; } else { console.error("Error fetching file:", error); return; } } } }) ); // Handle the file contents fileContents.forEach((content, index) => { console.log(`Content of file ${index + 1}:`, content?.slice(500, 570)); const arrayLine = content?.split("\n"); let output = []; for (let i = 0; i < arrayLine.length; i++) { if ( arrayLine[i].search("PID:") !== -1 && arrayLine[i].search("SN:") !== -1 && arrayLine[i] ?.split(",")[2] ?.split(":")[1] ?.replace("\r", "") .trim() !== "" ) { // console.log(output) // console.log(Array(arrayLine[i]?.split(",")[2].split(":")[1].replace("\r", "").trim())) if ( output.some( (u) => u.SN === arrayLine[i] ?.split(",")[2] ?.split(":")[1] .replace("\r", "") .trim() ) ) { output.map((u, index) => { if (u.SN === arrayLine[i]?.split(",")[2].split(":")[1].trim()) { output[index].line = output[index].line.concat([i + 1]); } }); } else { output.push({ PID: arrayLine[i]?.split(",")[0] !== undefined ? arrayLine[i]?.split(",")[0]?.split(":")[1] !== undefined ? arrayLine[i]?.split(",")[0]?.split(":")[1]?.trim() : "" : "", SN: arrayLine[i].split(",")[1] !== undefined ? arrayLine[i] ?.split(",")[2] ?.split(":")[1] ?.replace("\r", "") .trim() : "", line: [i + 1], fileName: urls[index], }); } } } report = report.concat(output); if (index + 1 === urls.length) { fs.writeFile( "indexSN", JSON.stringify(report).replace(/,{/g, "\n,{"), function (err) { if (err) { return console.error(err); } console.log("Write log !"); } ); } }); }, 10000); } catch (error) { console.error("Error fetching files:", error); } }; fetchFiles();