Getting real time alerts from server to phone with Pushbullet

So I wanted to receive alerts from the long-running scripts on my Raspberry Pi. I used to have postfix to send an email but sometimes it took hours to notice the mail.

I already had Pushbullet installed on Android, which is a service that supports notification/file/link sharing between your devices.
Turns out with a little scripting we can make it send error reports/alerts to the phone. The only thing we need is an Access Token.

Then use a simple shell script in PATH with a POST request and call it to send alerts when required.

#!/bin/sh

curl -u ACCESS_TOKEN_HERE: -X POST https://api.pushbullet.com/v2/pushes --header 'Content-Type: application/json' --data-binary '{"type":"note", "title": "Shell", "body": "'"$1"'"}' > /dev/null 2>&1

Following Python library does the same

import os, inspect

class Pypush:
    """A simple wrapper around Pushbullet"""

    def __init__(self, key):
        self.key = key
        self.title = inspect.stack()[1][1]

    def post(self, msg, title=None):
        title = title or self.title
        os.system('curl -u %s: -X POST https://api.pushbullet.com/v2/pushes --header \'Content-Type: application/json\' --data-binary \'{"type":"note", "title": "%s", "body": "%s"}\'' % (self.key, title, msg))

    def warn(self, msg, title=None):
        self.post('Warning: %s' % msg, title)

    def notify(self, msg, title=None):
        self.post('Notification: %s' % msg, title)

    def error(self, msg, title=None):
        self.post('Error: %s' % msg, title)
 
3
Kudos
 
3
Kudos

Now read this

Authorship Attribution of WhatsApp Users through Lexical Analysis

Imagine that you’re being messaged by a stranger. Your gut says that it’s someone you already know. How do you find which one of your diabolical friends is pulling this out. Problem # Let’s generalize the problem. Given chat histories of... Continue →