mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-08-08 19:14:06 +08:00
implement keyword monitor
This commit is contained in:
@@ -28,6 +28,7 @@ class Monitor extends BeanModel {
|
||||
active: this.active,
|
||||
type: this.type,
|
||||
interval: this.interval,
|
||||
keyword: this.keyword,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -57,12 +58,25 @@ class Monitor extends BeanModel {
|
||||
}
|
||||
|
||||
try {
|
||||
if (this.type === "http") {
|
||||
if (this.type === "http" || this.type === "keyword") {
|
||||
let startTime = dayjs().valueOf();
|
||||
let res = await axios.get(this.url)
|
||||
bean.msg = `${res.status} - ${res.statusText}`
|
||||
bean.ping = dayjs().valueOf() - startTime;
|
||||
bean.status = 1;
|
||||
|
||||
if (this.type === "http") {
|
||||
bean.status = 1;
|
||||
} else {
|
||||
|
||||
if (res.data.includes(this.keyword)) {
|
||||
bean.msg += ", keyword is found"
|
||||
bean.status = 1;
|
||||
} else {
|
||||
throw new Error(bean.msg + ", but keyword is not found")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
} else if (this.type === "port") {
|
||||
bean.ping = await tcping(this.hostname, this.port);
|
||||
|
@@ -147,6 +147,7 @@ let monitorList = {};
|
||||
bean.interval = monitor.interval
|
||||
bean.hostname = monitor.hostname;
|
||||
bean.port = monitor.port;
|
||||
bean.keyword = monitor.keyword;
|
||||
|
||||
await R.store(bean)
|
||||
|
||||
|
Reference in New Issue
Block a user