hacktoberfestdockerselfhostedself-hostedresponsivemonitoringwebsocketwebappuptime-monitoringuptimesocket-iosingle-page-app
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							1.7 KiB
						
					
					
				| const NotificationProvider = require("./notification-provider"); | |
| const axios = require("axios"); | |
| 
 | |
| class Pushover extends NotificationProvider { | |
| 
 | |
|     name = "pushover"; | |
| 
 | |
|     async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { | |
|         let okMsg = "Sent Successfully."; | |
|         let 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, | |
|                 } | |
|                 await axios.post(pushoverlink, data) | |
|                 return okMsg; | |
|             } | |
| 
 | |
|             let data = { | |
|                 "message": "<b>Uptime Kuma Alert</b>\n\n<b>Message</b>:" + msg + "\n<b>Time (UTC)</b>:" + heartbeatJSON["time"], | |
|                 "user": notification.pushoveruserkey, | |
|                 "token": notification.pushoverapptoken, | |
|                 "sound": notification.pushoversounds, | |
|                 "priority": notification.pushoverpriority, | |
|                 "title": notification.pushovertitle, | |
|                 "retry": "30", | |
|                 "expire": "3600", | |
|                 "html": 1, | |
|             } | |
|             await axios.post(pushoverlink, data) | |
|             return okMsg; | |
|         } catch (error) { | |
|             this.throwGeneralAxiosError(error) | |
|         } | |
| 
 | |
|     } | |
| } | |
| 
 | |
| module.exports = Pushover;
 | |
| 
 |