change runtimeCheckLog
This commit is contained in:
		
							parent
							
								
									a9d6af9364
								
							
						
					
					
						commit
						aa9b721bfd
					
				| 
						 | 
				
			
			@ -109,172 +109,172 @@ export async function runtimeCheckLogs(folderPath) {
 | 
			
		|||
          const allReport = await LogReport.query()
 | 
			
		||||
          .whereRaw(`DATE(created_at) = ?`, [today])
 | 
			
		||||
 | 
			
		||||
          console.log(allReport)
 | 
			
		||||
          // console.log(allReport)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
          // //get information file
 | 
			
		||||
          // let fileDetect = allFile?.filter(
 | 
			
		||||
          //   (i) => i.$original.file_name === fileName
 | 
			
		||||
          // )[0];
 | 
			
		||||
          //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
 | 
			
		||||
          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 the last line detected
 | 
			
		||||
          // let lastLine = Math.max(...logsDetect.map((obj) => obj.line));
 | 
			
		||||
              //Get all report newest
 | 
			
		||||
              let listReport = await getListLineByItem(
 | 
			
		||||
                logsDetect
 | 
			
		||||
                  .map((obj) => obj.$original)
 | 
			
		||||
                  .filter((l) => l.line > lastLine)
 | 
			
		||||
              );
 | 
			
		||||
 | 
			
		||||
          // //get content file in local
 | 
			
		||||
          // let contentFile = await fs
 | 
			
		||||
          //   .readFileSync(filePath)
 | 
			
		||||
          //   .toString()
 | 
			
		||||
          //   ?.split("\n");
 | 
			
		||||
              let content =
 | 
			
		||||
                "|  |Last updated at | Item/error | Line | Report \n|---|:---:|:---|:---|:-----------:\n";
 | 
			
		||||
              let spoiler = "";
 | 
			
		||||
              let issueFound = "";
 | 
			
		||||
 | 
			
		||||
          // //get index SN and send to ERP
 | 
			
		||||
              listReport.map((log, index) => {
 | 
			
		||||
                let item = listExtraItem.includes(log.detected_content)
 | 
			
		||||
                  ? ":medal: **" + log.detected_content + "**"
 | 
			
		||||
                  : ":small_orange_diamond: " + log.detected_content;
 | 
			
		||||
 | 
			
		||||
          // checkIndexSN(contentFile, lastLine, fileName);
 | 
			
		||||
                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";
 | 
			
		||||
              });
 | 
			
		||||
 | 
			
		||||
          // //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);
 | 
			
		||||
              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);
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue