diff --git a/app/utils/runtimeCheckLogs.ts b/app/utils/runtimeCheckLogs.ts index 2aa201e..6d9d6ee 100644 --- a/app/utils/runtimeCheckLogs.ts +++ b/app/utils/runtimeCheckLogs.ts @@ -94,185 +94,187 @@ export async function runtimeCheckLogs(folderPath) { ); watcher.setMaxListeners(200); + + watcher.on("change", async (path) => { + // fs.watchFile(filePath,{ interval: 15000 }, + // async (eventType) => { + //check special item, extra RAM, error in log + // if (path === filePath) { + // let lines = []; + // let allFile = await LogDetectFile.all(); + // let allReport = await LogReport.all(); + // let allValue = await KeyValue.all(); + + // //get information file + // let fileDetect = allFile?.filter( + // (i) => i.$original.file_name === fileName + // )[0]; + + // let logsDetect = allReport?.filter( + // (i) => i.$original.id_file === fileDetect?.id_ldf + // ); + // //get the last line detected + // let lastLine = Math.max(...logsDetect.map((obj) => obj.line)); + + // //get content file in local + // let contentFile = await fs + // .readFileSync(filePath) + // .toString() + // ?.split("\n"); + + // //get index SN and send to ERP + + // checkIndexSN(contentFile, lastLine, fileName); + + // //get list item to check + // let listKeyValues = allValue.filter( + // (i) => + // i.$original.key === "MODEL_SPECIAL" || + // i.$original.key === "CATCH_FAULTY" + // ); + + // //get list exclude error + // let listExcludeErr = allValue + // .filter((i) => i.$original.key === "EXCLUDE_ERR") + // .map((obj) => obj.$original.value); + + // //get list item special + // let listExtraItem = allValue + // .filter((i) => i.$original.key === "MODEL_SPECIAL") + // .map((obj) => obj.$original.value); + + // //Process file content + // contentFile.map((line, index) => { + // //check line the line with errors and exclude errors + // listKeyValues + // .map((obj) => obj.$original.value) + // .map(async (value) => { + // if ( + // line.search(value) !== -1 && + // listExcludeErr.filter((err) => line.includes(err)) + // .length === 0 + // ) { + // let log = allFile?.filter( + // (i) => i.$original.file_name === fileName + // )[0]; + + // let checkLog = allReport?.filter( + // (report) => + // report.$original.id_file === log?.id_ldf && + // report.$original.line === index + 1 && + // report.$original.detected_content === value + // ); + + // if (checkLog?.length === 0) { + // await LogReport.create({ + // detected_content: value, + // line: index + 1, + // id_file: log?.id_ldf, + // }); + // lines.push(index + 1); + // } + // } + + // // if(checkSpecialVersion()) + // }); + // }); + + // //true: import log to log_report table, send report to Zulip + // setTimeout(async () => { + // if (lines.length === 0) { + // console.log(`${fileName} has changed ---Good`); + // } else { + // console.log( + // `${fileName} has changed ---SOS---${lines.length}` + // ); + // let allReport_new = await LogReport.all(); + // let fileDetect = allFile?.filter( + // (i) => i.$original.file_name === fileName + // )[0]; + + // let logsDetect = allReport_new?.filter( + // (i) => i.$original.id_file === fileDetect?.id_ldf + // ); + // // console.log(logsDetect) + // // await Database.rawQuery( + // // "select * from log_reports where id_file = " + + // // fileDetect?.id_ldf + // // ); + // //Get all report newest + // let listReport = await getListLineByItem( + // logsDetect + // .map((obj) => obj.$original) + // .filter((l) => l.line > lastLine) + // ); + + // let content = + // "| |Last updated at | Item/error | Line | Report \n|---|:---:|:---|:---|:-----------:\n"; + // let spoiler = ""; + // let issueFound = ""; + + // listReport.map((log, index) => { + // let item = listExtraItem.includes(log.detected_content) + // ? ":medal: **" + log.detected_content + "**" + // : ":small_orange_diamond: " + log.detected_content; + + // log.line?.map((line) => { + // issueFound = + // issueFound + + // "\n`" + + // line + + // "` " + + // contentFile[line - 1]?.replace( + // log.detected_content, + // "[" + + // log.detected_content + + // "](https://logs.danielvu.com/logs/" + + // fileName + + // "#" + + // line + + // ")" + // ); + // }); + // content = + // content + + // "|" + + // (index + 1) + + // "|**" + + // moment(Date.now()).format("HH:mm - DD/MM") + + // "**|" + + // item + + // "|" + + // log.line + + // "|[View](https://logs.danielvu.com/logs/" + + // fileName + + // "#" + + // log.line + + // ")\n"; + // }); + + // sendMessToZulip( + // "stream", + // Env.get("ZULIP_STREAM_ALERT"), + // Env.get("ZULIP_TOPIC_ALERT"), + // "------------\n\n:warning: :warning: **" + + // fileName + + // "**\n\n" + + // content + + // "\n\n" + + // spoiler + + // "\n\n***Issue found:***\n" + + // issueFound + // ); + // } + // }, 3000); + // } + console.log(path + " change") + }); await fileList.slice(0,40) ?.filter((i) => fileList_old.includes(i) === false) ?.forEach((fileName) => { //path file const filePath = `${folderPath}/${fileName}`; - watcher.on("change", async (path) => { - // fs.watchFile(filePath,{ interval: 15000 }, - // async (eventType) => { - //check special item, extra RAM, error in log - // if (path === filePath) { - // let lines = []; - // let allFile = await LogDetectFile.all(); - // let allReport = await LogReport.all(); - // let allValue = await KeyValue.all(); - - // //get information file - // let fileDetect = allFile?.filter( - // (i) => i.$original.file_name === fileName - // )[0]; - - // let logsDetect = allReport?.filter( - // (i) => i.$original.id_file === fileDetect?.id_ldf - // ); - // //get the last line detected - // let lastLine = Math.max(...logsDetect.map((obj) => obj.line)); - - // //get content file in local - // let contentFile = await fs - // .readFileSync(filePath) - // .toString() - // ?.split("\n"); - - // //get index SN and send to ERP - - // checkIndexSN(contentFile, lastLine, fileName); - - // //get list item to check - // let listKeyValues = allValue.filter( - // (i) => - // i.$original.key === "MODEL_SPECIAL" || - // i.$original.key === "CATCH_FAULTY" - // ); - - // //get list exclude error - // let listExcludeErr = allValue - // .filter((i) => i.$original.key === "EXCLUDE_ERR") - // .map((obj) => obj.$original.value); - - // //get list item special - // let listExtraItem = allValue - // .filter((i) => i.$original.key === "MODEL_SPECIAL") - // .map((obj) => obj.$original.value); - - // //Process file content - // contentFile.map((line, index) => { - // //check line the line with errors and exclude errors - // listKeyValues - // .map((obj) => obj.$original.value) - // .map(async (value) => { - // if ( - // line.search(value) !== -1 && - // listExcludeErr.filter((err) => line.includes(err)) - // .length === 0 - // ) { - // let log = allFile?.filter( - // (i) => i.$original.file_name === fileName - // )[0]; - - // let checkLog = allReport?.filter( - // (report) => - // report.$original.id_file === log?.id_ldf && - // report.$original.line === index + 1 && - // report.$original.detected_content === value - // ); - - // if (checkLog?.length === 0) { - // await LogReport.create({ - // detected_content: value, - // line: index + 1, - // id_file: log?.id_ldf, - // }); - // lines.push(index + 1); - // } - // } - - // // if(checkSpecialVersion()) - // }); - // }); - - // //true: import log to log_report table, send report to Zulip - // setTimeout(async () => { - // if (lines.length === 0) { - // console.log(`${fileName} has changed ---Good`); - // } else { - // console.log( - // `${fileName} has changed ---SOS---${lines.length}` - // ); - // let allReport_new = await LogReport.all(); - // let fileDetect = allFile?.filter( - // (i) => i.$original.file_name === fileName - // )[0]; - - // let logsDetect = allReport_new?.filter( - // (i) => i.$original.id_file === fileDetect?.id_ldf - // ); - // // console.log(logsDetect) - // // await Database.rawQuery( - // // "select * from log_reports where id_file = " + - // // fileDetect?.id_ldf - // // ); - // //Get all report newest - // let listReport = await getListLineByItem( - // logsDetect - // .map((obj) => obj.$original) - // .filter((l) => l.line > lastLine) - // ); - - // let content = - // "| |Last updated at | Item/error | Line | Report \n|---|:---:|:---|:---|:-----------:\n"; - // let spoiler = ""; - // let issueFound = ""; - - // listReport.map((log, index) => { - // let item = listExtraItem.includes(log.detected_content) - // ? ":medal: **" + log.detected_content + "**" - // : ":small_orange_diamond: " + log.detected_content; - - // log.line?.map((line) => { - // issueFound = - // issueFound + - // "\n`" + - // line + - // "` " + - // contentFile[line - 1]?.replace( - // log.detected_content, - // "[" + - // log.detected_content + - // "](https://logs.danielvu.com/logs/" + - // fileName + - // "#" + - // line + - // ")" - // ); - // }); - // content = - // content + - // "|" + - // (index + 1) + - // "|**" + - // moment(Date.now()).format("HH:mm - DD/MM") + - // "**|" + - // item + - // "|" + - // log.line + - // "|[View](https://logs.danielvu.com/logs/" + - // fileName + - // "#" + - // log.line + - // ")\n"; - // }); - - // sendMessToZulip( - // "stream", - // Env.get("ZULIP_STREAM_ALERT"), - // Env.get("ZULIP_TOPIC_ALERT"), - // "------------\n\n:warning: :warning: **" + - // fileName + - // "**\n\n" + - // content + - // "\n\n" + - // spoiler + - // "\n\n***Issue found:***\n" + - // issueFound - // ); - // } - // }, 3000); - // } - console.log(path + " change") - }); + }); } } catch (error) {