diff --git a/README.md b/README.md index b09048d74..31589e99f 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ npm run setup # Option 1. Try it npm run start-server -# (Recommanded) +# (Recommended) # Option 2. Run in background using PM2 # Install PM2 if you don't have: npm install pm2 -g pm2 start npm --name uptime-kuma -- run start-server diff --git a/server/model/monitor.js b/server/model/monitor.js index 2735c378f..162772875 100644 --- a/server/model/monitor.js +++ b/server/model/monitor.js @@ -71,7 +71,9 @@ class Monitor extends BeanModel { try { if (this.type === "http" || this.type === "keyword") { let startTime = dayjs().valueOf(); - let res = await axios.get(this.url) + let res = await axios.get(this.url, { + headers: { 'User-Agent':'Uptime-Kuma' } + }) bean.msg = `${res.status} - ${res.statusText}` bean.ping = dayjs().valueOf() - startTime; @@ -79,7 +81,14 @@ class Monitor extends BeanModel { bean.status = 1; } else { - if (res.data.includes(this.keyword)) { + let data = res.data; + + // Convert to string for object/array + if (typeof data !== "string") { + data = JSON.stringify(data) + } + + if (data.includes(this.keyword)) { bean.msg += ", keyword is found" bean.status = 1; } else { diff --git a/src/pages/Details.vue b/src/pages/Details.vue index 0b031bfe6..f925c2849 100644 --- a/src/pages/Details.vue +++ b/src/pages/Details.vue @@ -137,7 +137,7 @@ export default { }, ping() { - if (this.lastHeartBeat.ping) { + if (this.lastHeartBeat.ping || this.lastHeartBeat.ping === 0) { return this.lastHeartBeat.ping; } else { return "N/A" @@ -145,7 +145,7 @@ export default { }, avgPing() { - if (this.$root.avgPingList[this.monitor.id]) { + if (this.$root.avgPingList[this.monitor.id] || this.$root.avgPingList[this.monitor.id] === 0) { return this.$root.avgPingList[this.monitor.id]; } else { return "N/A" diff --git a/src/pages/EditMonitor.vue b/src/pages/EditMonitor.vue index 7054d73ac..01af50610 100644 --- a/src/pages/EditMonitor.vue +++ b/src/pages/EditMonitor.vue @@ -30,7 +30,7 @@
-
Search keyword in plain html response and it is case-sensitive
+
Search keyword in plain html or JSON response and it is case-sensitive