| 
						
						
							
								
							
						
						
					 | 
					@ -15,7 +15,7 @@ class Notification { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                }) | 
					 | 
					 | 
					                }) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                return true; | 
					 | 
					 | 
					                return true; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } catch (error) { | 
					 | 
					 | 
					            } catch (error) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                console.log(error) | 
					 | 
					 | 
					                console.error(error) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                return false; | 
					 | 
					 | 
					                return false; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -31,7 +31,7 @@ class Notification { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                }) | 
					 | 
					 | 
					                }) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                return true; | 
					 | 
					 | 
					                return true; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } catch (error) { | 
					 | 
					 | 
					            } catch (error) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                console.log(error) | 
					 | 
					 | 
					                console.error(error) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                return false; | 
					 | 
					 | 
					                return false; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -61,7 +61,7 @@ class Notification { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                let res = await axios.post(notification.webhookURL, finalData, config) | 
					 | 
					 | 
					                let res = await axios.post(notification.webhookURL, finalData, config) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                return true; | 
					 | 
					 | 
					                return true; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } catch (error) { | 
					 | 
					 | 
					            } catch (error) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                console.log(error) | 
					 | 
					 | 
					                console.error(error) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                return false; | 
					 | 
					 | 
					                return false; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -105,7 +105,7 @@ class Notification { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					              let res = await axios.post(notification.discordWebhookUrl, data) | 
					 | 
					 | 
					              let res = await axios.post(notification.discordWebhookUrl, data) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					              return true; | 
					 | 
					 | 
					              return true; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } catch(error) { | 
					 | 
					 | 
					            } catch(error) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					              console.log(error) | 
					 | 
					 | 
					              console.error(error) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					              return false; | 
					 | 
					 | 
					              return false; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -121,20 +121,24 @@ class Notification { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            let res = await axios.post(notification.signalURL, data, config) | 
					 | 
					 | 
					            let res = await axios.post(notification.signalURL, data, config) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            return true; | 
					 | 
					 | 
					            return true; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } catch (error) { | 
					 | 
					 | 
					        } catch (error) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            console.log(error) | 
					 | 
					 | 
					            console.error(error) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            return false; | 
					 | 
					 | 
					            return false; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } else if (notification.type === "slack") { | 
					 | 
					 | 
					        } else if (notification.type === "slack") { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            try { | 
					 | 
					 | 
					            try { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                if (heartbeatJSON == null) { | 
					 | 
					 | 
					                if (heartbeatJSON == null) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    let data = {'text': "Uptime Kuma Slack testing successful."} | 
					 | 
					 | 
					                    let data = {'text': "Uptime Kuma Slack testing successful.", 'channel': notification.slackchannel, 'username': notification.slackusername, 'icon_emoji': notification.slackiconemo} | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                    let res = await axios.post(notification.slackwebhookURL, data) | 
					 | 
					 | 
					                    let res = await axios.post(notification.slackwebhookURL, data) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    return true; | 
					 | 
					 | 
					                    return true; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                } | 
					 | 
					 | 
					                } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                const time = heartbeatJSON["time"]; | 
					 | 
					 | 
					                const time = heartbeatJSON["time"]; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                let data = { | 
					 | 
					 | 
					                let data = { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    "text": "Uptime Kuma Alert", | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    "channel":notification.slackchannel, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    "username": notification.slackusername, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    "icon_emoji": notification.slackiconemo, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    "blocks": [{ | 
					 | 
					 | 
					                    "blocks": [{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                            "type": "header", | 
					 | 
					 | 
					                            "type": "header", | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                            "text": { | 
					 | 
					 | 
					                            "text": { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -155,23 +159,52 @@ class Notification { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                            ] | 
					 | 
					 | 
					                            ] | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                        }, | 
					 | 
					 | 
					                        }, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                        { | 
					 | 
					 | 
					                        { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                "type": "actions", | 
					 | 
					 | 
					                            "type": "actions", | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                "elements": [ | 
					 | 
					 | 
					                            "elements": [ | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                    { | 
					 | 
					 | 
					                                { | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                        "type": "button", | 
					 | 
					 | 
					                                    "type": "button", | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                        "text": { | 
					 | 
					 | 
					                                    "text": { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                                            "type": "plain_text", | 
					 | 
					 | 
					                                            "type": "plain_text", | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                                            "text": "Visit Uptime Kuma", | 
					 | 
					 | 
					                                            "text": "Visit Uptime Kuma", | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                                        }, | 
					 | 
					 | 
					                                        }, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                        "value": "Uptime-Kuma", | 
					 | 
					 | 
					                                    "value": "Uptime-Kuma", | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                        "url": notification.slackbutton | 
					 | 
					 | 
					                                    "url": notification.slackbutton || "https://github.com/louislam/uptime-kuma" | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                    } | 
					 | 
					 | 
					                                } | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                                ] | 
					 | 
					 | 
					                                ] | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                            } | 
					 | 
					 | 
					                            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                        ] | 
					 | 
					 | 
					                        ] | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    } | 
					 | 
					 | 
					                    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                let res = await axios.post(notification.slackwebhookURL, data) | 
					 | 
					 | 
					                let res = await axios.post(notification.slackwebhookURL, data) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                return true; | 
					 | 
					 | 
					                return true; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            } catch (error) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                console.error(error) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                return false; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        } else if (notification.type === "pushover") { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    var pushoverlink = 'https://api.pushover.net/1/messages.json' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            try { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                if (heartbeatJSON == null) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    let data = {'message': "<b>Uptime Kuma Pushover testing successful.</b>",  | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    'user': notification.pushoveruserkey, 'token': notification.pushoverapptoken, 'sound':notification.pushoversounds, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    'priority': notification.pushoverpriority, 'title':notification.pushovertitle, 'retry': "30", 'expire':"3600", 'html': 1} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    let res = await axios.post(pushoverlink, data) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    return true; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                let data = { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    "message": "<b>Uptime Kuma Alert</b>\n\n<b>Message</b>:" +msg + '\n<b>Time (UTC)</b>:' +time, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    "user":notification.pushoveruserkey, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    "token": notification.pushoverapptoken, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    "sound": notification.pushoversounds, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    "priority": notification.pushoverpriority, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    "title": notification.pushovertitle, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    "retry": "30", | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    "expire": "3600", | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    "html": 1 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                let res = await axios.post(pushoverlink, data) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                return true; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } catch (error) { | 
					 | 
					 | 
					            } catch (error) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                console.log(error) | 
					 | 
					 | 
					                console.log(error) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                return false; | 
					 | 
					 | 
					                return false; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |