mirror of https://github.com/louislam/uptime-kuma
				
				
				
			Merge pull request #214 from ChrisTheBaron/pushbullet
Add Pushbullet notification servicepull/221/head
						commit
						80eadcb236
					
				| 
						 | 
				
			
			@ -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">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue