diff --git a/app/utils/checkIndexSN.ts b/app/utils/checkIndexSN.ts
index 3d84d0a..bec3225 100644
--- a/app/utils/checkIndexSN.ts
+++ b/app/utils/checkIndexSN.ts
@@ -1,3 +1,4 @@
+import Env from "@ioc:Adonis/Core/Env";
// const axios = require("axios");
// import fs from "fs";
@@ -23,7 +24,8 @@ export const checkIndexSN = async (content, beginLine, nameF) => {
?.split(":")[1]
?.replace("\r", "")
.trim() !== "" &&
- SN !== "N/A" && SN.length>4 &&
+ SN !== "N/A" &&
+ SN.length > 4 &&
i >= beginLine
) {
if (output.some((u) => u.SN === SN)) {
@@ -170,10 +172,10 @@ export const checkIndexSN = async (content, beginLine, nameF) => {
if (output.filter((i) => i.PID !== "").length > 0) {
let token =
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaS5uc3d0ZWFtLm5ldC9hcGkvbG9naW4iLCJpYXQiOjE2ODkzOTEyMDMsImV4cCI6MTcyMDkyNzIwMywibmJmIjoxNjg5MzkxMjAzLCJqdGkiOiJreFA1MW9jck5rdEYzSzY3Iiwic3ViIjozNjkwLCJwcnYiOiJjOGVlMWZjODllNzc1ZWM0YzczODY2N2U1YmUxN2E1OTBiNmQ0MGZjIn0.p-aE0oWkKmdrcKWD94oSmMd_CMbY_4MoqADIwYIhIKw";
-
+
let token_int =
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2ludC5pcHN1cHBseS5jb20uYXUvYXBpL2xvZ2luIiwiaWF0IjoxNjg5ODYyNjAxLCJleHAiOjE3MjEzOTg2MDEsIm5iZiI6MTY4OTg2MjYwMSwianRpIjoiUElZVjNBM3ZPQVlMQ081SyIsInN1YiI6MSwicHJ2IjoiYzhlZTFmYzg5ZTc3NWVjNGM3Mzg2NjdlNWJlMTdhNTkwYjZkNDBmYyJ9.UcybIKMBjTAY9i0PfIDQMtqHyN72Ul0jC03ZDGLGpMI";
-
+
let data = {
data: output.filter((i) => i.PID !== ""),
urlAPI: "/api/test-log-serial-number/save-data",
@@ -185,13 +187,15 @@ export const checkIndexSN = async (content, beginLine, nameF) => {
{ headers: { Authorization: "Bearer " + token } }
);
- const response_int = await axios.post(
+ if (Env.get("RUN_ENV") !== "prod") {
+ const response_int = await axios.post(
"https://int.ipsupply.com.au/api/transferPostData",
data,
{ headers: { Authorization: "Bearer " + token_int } }
);
- console.log(nameF + " response\n", response_int.data);
+ console.log(nameF + " response\n", response_int.data);
+ }
}
}
} catch (error) {
diff --git a/app/utils/powerSchedule.js b/app/utils/powerSchedule.js
index d2286a4..17d9134 100644
--- a/app/utils/powerSchedule.js
+++ b/app/utils/powerSchedule.js
@@ -29,38 +29,47 @@ const zulip = require("zulip-js");
// In ra nội dung của trang mới
setTimeout(async () => {
const tableData = await page.evaluate(() => {
- const tbody = document.querySelector('tbody'); // Lựa chọn thẻ
+
// Lặp qua từng hàng và lấy nội dung của các cột (thẻ ) trong hàng
const data = [];
rows.forEach((row) => {
- const columns = Array.from(row.querySelectorAll('td')); // Lựa chọn tất cả các cột (thẻ | ) trong hàng
+ const columns = Array.from(row.querySelectorAll("td")); // Lựa chọn tất cả các cột (thẻ | ) trong hàng
const rowData = columns.map((column) => column.textContent.trim()); // Lấy nội dung của các cột và xóa khoảng trắng
data.push(rowData); // Thêm dữ liệu của hàng vào mảng data
});
-
- return data.map(u=>u.join('\n\n'));
- });
-
- console.log('Table data:', tableData);
-
- await browser.close();
+ return data.map((u) => u.join("\n\n"));
+ });
+
+ console.log("Table data:", tableData);
+
+ await browser.close();
+ let params = {
+ type: "stream",
+ to: "networkToolBot",
+ topic: "powerSchedule",
+ content:
+ ":warning: :date: :warning:\n\n" + tableData.join("\n\n") + "\n-------",
+ };
+ client.messages.send(params);
if (
- tableData.filter((i) => i.includes("KDC 91B") || i.includes("KDC91B")).length > 0
+ tableData.filter((i) => i.includes("KDC 91B") || i.includes("KDC91B"))
+ .length > 0
) {
let params = {
- type: "stream",
- to: "Result test - auto.nswteam.net",
- topic: "Lịch cúp điện",
- content:
- ":warning: :date: :warning:\n\n" +
- tableData.filter((i) => i.includes("KDC 91B") || i.includes("KDC91B"))[0].replace(/KDC 91B/g,"**KDC 91B**") +
- "\n-------",
- };
+ type: "stream",
+ to: "Result test - auto.nswteam.net",
+ topic: "Lịch cúp điện",
+ content:
+ ":warning: :date: :warning:\n\n" +
+ tableData
+ .filter((i) => i.includes("KDC 91B") || i.includes("KDC91B"))[0]
+ .replace(/KDC 91B/g, "**KDC 91B**") +
+ "\n-------",
+ };
client.messages.send(params);
}
}, 5000);
-
-})();
\ No newline at end of file
+})();
diff --git a/app/utils/runtimeCheckLogs.ts b/app/utils/runtimeCheckLogs.ts
index 28b4a46..bc09fbb 100644
--- a/app/utils/runtimeCheckLogs.ts
+++ b/app/utils/runtimeCheckLogs.ts
@@ -37,13 +37,26 @@ export async function runtimeCheckLogs(folderPath) {
const checkSpecialVersion = (paragraph) => {
try {
const regex = /\(CAT3K_CAA-UNIVERSALK9-M\), Version 16\.9\.[2-9]/;
- const regex1 = /Version (\d+\.\d+\.\d+)/;
+ const regex1 =
+ /\(CAT3K_CAA-UNIVERSALK9-M\), Version 1[7-9]\.[0-9]\.[2-9]/;
+ const regex2 =
+ /\(CAT3K_CAA-UNIVERSALK9-M\), Version [2-9][0-9]\.[0-9]\.[2-9]/;
// Use the regular expression to find the match
const match = paragraph.match(regex);
- if (match) {
- const desiredSubstring = match[0];
- const match2 = desiredSubstring.match(regex1);
- return match2[0];
+ const match1 = paragraph.match(regex1);
+ const match2 = paragraph.match(regex2);
+ if (match || match1 || match2) {
+ if (match) {
+ return match[0];
+ }
+
+ if (match1) {
+ return match1[0];
+ }
+
+ if (match2) {
+ return match2[0];
+ }
} else {
return "";
}
@@ -60,8 +73,8 @@ export async function runtimeCheckLogs(folderPath) {
if (
filePath?.split(".")[filePath.split(".").length - 1] === "log" &&
filePath.split("/")[filePath.split("/").length - 1]?.split("-")[0] ===
- //localhost
- // filePath.split("\\")[filePath.split("\\").length - 1]?.split("-")[0] ===
+ //localhost
+ // filePath.split("\\")[filePath.split("\\").length - 1]?.split("-")[0] ===
moment(Date.now()).format("YYYYMMDD").toString()
) {
//add information file to database
@@ -92,6 +105,7 @@ export async function runtimeCheckLogs(folderPath) {
.map((file) => folderPath + "/" + file);
const watcher = chokidar.watch(listFileWatch, {
persistent: true,
+ usePolling: true,
interval: 300000,
});
@@ -160,7 +174,7 @@ export async function runtimeCheckLogs(folderPath) {
for (let i = 0; i < contentFile.length; i += 1000) {
const chunk = contentFile.slice(i, i + 1000);
- chunk.map((line, index) => {
+ chunk.map(async (line, index) => {
//check line the line with errors and exclude errors
listKeyValues
.map((obj) => obj.$original.value)
@@ -193,10 +207,36 @@ export async function runtimeCheckLogs(folderPath) {
// if(checkSpecialVersion())
});
+
+ if (
+ checkSpecialVersion(line) !== "" &&
+ listExcludeErr.filter((err) => line.includes(err)).length === 0
+ ) {
+ let checkVersion = checkSpecialVersion(line);
+ 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 === checkVersion
+ );
+
+ if (checkLog?.length === 0) {
+ await LogReport.create({
+ detected_content: checkVersion,
+ line: index + 1,
+ id_file: log?.id_ldf,
+ });
+ lines.push(index + 1);
+ }
+ }
});
}
} else {
- contentFile.map((line, index) => {
+ contentFile.map(async (line, index) => {
//check line the line with errors and exclude errors
listKeyValues
.map((obj) => obj.$original.value)
@@ -217,7 +257,7 @@ export async function runtimeCheckLogs(folderPath) {
report.$original.line === index + 1 &&
report.$original.detected_content === value
);
-
+
if (checkLog?.length === 0) {
await LogReport.create({
detected_content: value,
@@ -230,6 +270,32 @@ export async function runtimeCheckLogs(folderPath) {
// if(checkSpecialVersion())
});
+
+ if (
+ checkSpecialVersion(line) !== "" &&
+ listExcludeErr.filter((err) => line.includes(err)).length === 0
+ ) {
+ let checkVersion = checkSpecialVersion(line);
+ 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 === checkVersion
+ );
+
+ if (checkLog?.length === 0) {
+ await LogReport.create({
+ detected_content: checkVersion,
+ line: index + 1,
+ id_file: log?.id_ldf,
+ });
+ lines.push(index + 1);
+ }
+ }
});
}
@@ -278,7 +344,7 @@ export async function runtimeCheckLogs(folderPath) {
let important = [
"Vxx",
"V00",
- "(CAT3K_CAA-UNIVERSALK9-M), Version 16.9.",
+ "(CAT3K_CAA-UNIVERSALK9-M), Version",
];
listReport.map((log, index) => {
let item = listExtraItem.includes(log.detected_content)
@@ -321,7 +387,9 @@ export async function runtimeCheckLogs(folderPath) {
let icon =
important.filter((i) => content.includes(i)).length > 0
- ? "------------\n\n:no_entry: :no_entry:**" + fileName + "**:no_entry: :no_entry:"
+ ? "------------\n\n:no_entry: :no_entry:**" +
+ fileName +
+ "**:no_entry: :no_entry:"
: "------------\n\n:warning: :warning: **" + fileName + "**";
sendMessToZulip(
"stream",
diff --git a/screenshot.js b/screenshot.js
index 0326eaf..3c35259 100644
--- a/screenshot.js
+++ b/screenshot.js
@@ -1,8 +1,40 @@
-let a = [1,2,3]
+// let a = [1,2,3]
-console.log(a.slice(0,4))
+// console.log(a.slice(0,4))
+const checkSpecialVersion = (paragraph) => {
+ try {
+ const regex = /\(CAT3K_CAA-UNIVERSALK9-M\), Version 16\.9\.[2-9]/;
+ const regex1 = /\(CAT3K_CAA-UNIVERSALK9-M\), Version 1[7-9]\.[0-9]\.[2-9]/;
+ const regex2 =
+ /\(CAT3K_CAA-UNIVERSALK9-M\), Version [2-9][0-9]\.[0-9]\.[2-9]/;
+ // Use the regular expression to find the match
+ const match = paragraph.match(regex);
+ const match1 = paragraph.match(regex1);
+ const match2 = paragraph.match(regex2);
+ if (match || match1 || match2) {
+ if (match) {
+ console.log(match[0]);
+ }
+ if (match1) {
+ console.log(match1[0]);
+ }
+
+ if (match2) {
+ console.log(match2[0]);
+ }
+ } else {
+ return "";
+ }
+ } catch (error) {
+ console.log(error);
+ }
+};
+
+checkSpecialVersion(
+ "Cisco IOS Software [Fuji], Catalyst L3 Switch Software (CAT3K_CAA-UNIVERSALK9-M), Version 16.9.1, RELEASE SOFTWARE (fc2)"
+);
// const puppeteer = require("puppeteer");
// const zulip = require("zulip-js");
|