mirror of
				https://github.com/louislam/uptime-kuma.git
				synced 2025-11-01 03:49:24 +08:00 
			
		
		
		
	Add Pushbullet notification service
This commit is contained in:
		| @@ -354,6 +354,41 @@ class Notification { | ||||
|                 throwGeneralAxiosError(error) | ||||
|             } | ||||
|  | ||||
|         } else if (notification.type === "pushbullet") { | ||||
|             try { | ||||
|                 let pushbulletUrl = `https://api.pushbullet.com/v2/pushes`; | ||||
|                 let config = { | ||||
|                     headers: { | ||||
|                         'Access-Token': notification.pushbulletAccessToken, | ||||
|                         'Content-Type': 'application/json' | ||||
|                     } | ||||
|                 }; | ||||
|                 if (heartbeatJSON == null) { | ||||
|                     let testdata = { | ||||
|                         "type": "note",  | ||||
|                         "title": "Uptime Kuma Alert", | ||||
|                         "body": "Testing Successful.", | ||||
|                     } | ||||
|                     await axios.post(pushbulletUrl, testdata, config) | ||||
|                 } else if (heartbeatJSON["status"] == 0) { | ||||
|                     let downdata = { | ||||
|                         "type": "note",  | ||||
|                         "title": "UptimeKuma Alert:" + monitorJSON["name"], | ||||
|                         "body": "[🔴 Down]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"], | ||||
|                     } | ||||
|                     await axios.post(pushbulletUrl, downdata, config) | ||||
|                 } else if (heartbeatJSON["status"] == 1) { | ||||
|                     let updata = { | ||||
|                         "type": "note",  | ||||
|                         "title": "UptimeKuma Alert:" + monitorJSON["name"], | ||||
|                         "body": "[✅ Up]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"], | ||||
|                     } | ||||
|                     await axios.post(pushbulletUrl, updata, config) | ||||
|                 } | ||||
|                 return okMsg; | ||||
|             } catch (error) { | ||||
|                 throwGeneralAxiosError(error) | ||||
|             } | ||||
|         } else { | ||||
|             throw new Error("Notification type is not supported") | ||||
|         } | ||||
|   | ||||
| @@ -25,6 +25,7 @@ | ||||
|                                 <option value="octopush">Octopush</option> | ||||
|                                 <option value="lunasea">LunaSea</option> | ||||
|                                 <option value="apprise">Apprise (Support 50+ Notification services)</option> | ||||
|                                 <option value="pushbullet">Pushbullet</option> | ||||
|                             </select> | ||||
|                         </div> | ||||
|  | ||||
| @@ -371,6 +372,17 @@ | ||||
|                                 </div> | ||||
|                             </div> | ||||
|                         </template> | ||||
|  | ||||
|                         <template v-if="notification.type === 'pushbullet'"> | ||||
|                             <div class="mb-3"> | ||||
|                                 <label for="pushbullet-access-token" class="form-label">Access Token</label> | ||||
|                                 <input id="pushbullet-access-token" v-model="notification.pushbulletAccessToken" type="text" class="form-control" required> | ||||
|                             </div> | ||||
|  | ||||
|                             <p style="margin-top: 8px;"> | ||||
|                                 More info on: <a href="https://docs.pushbullet.com" target="_blank">https://docs.pushbullet.com</a> | ||||
|                             </p> | ||||
|                         </template> | ||||
|                     </div> | ||||
|                     <div class="modal-footer"> | ||||
|                         <button v-if="id" type="button" class="btn btn-danger" :disabled="processing" @click="deleteConfirm"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user