Categories
android irc Linux nma notifymyandroid push notifications weechat

Modern push notifications with Weechat and NMA

After notifo seemingly stopped pushing notifications to my devices, I began to look for an alternative that more transparently used Google’s C2DM service for notifications.  It didn’t take me long to find NMA, short for NotifyMyAndroid.  This is a very simple http(s) API to push notifications to one/many devices.  I’ve broken this down into a few easy steps.

  1. Sign up for an account on www.notifymyandroid.com.  Log in, click on ‘My Account‘, then ‘Generate New Key’
  2. Install the NMA Android app (around $3 USD) onto your android device.  Launch the app and login
  3. Install pynma.py and nma.py to $HOME/.weechat/python.
  4. (Optional) Symlink nma.py to $HOME/.weechat/python/autoload
  5. In weechat:
    /python load python/nma.py
    /set plugins.var.python.nma.apikey "$myapikey"
  6. (Optional) To inly send notifications when detached from the screen: install and load the screen_away.py, then
    /python load python/screen_away.py
    /set plugins.var.python.nma.only_away on

Now you too can be harassed by inane IRC highlights no matter where in the world you are!  Thankfully, the NMA Android app has a ‘quiet hours’ in case you’d rather not be woken up in the middle of the night.

Categories
android irssi Linux push notifications screen ssh

IRSSI Push notifications to GNOME desktop and Android device

Several people have asked me recently how I forward IRSSI notifications to my desktop and Android devices. The solution could be basically described as follows:

IRSSI configuration

Install these scripts into $HOME/.irssi/scripts (and symlink it in $HOME/.irssi/scripts/autorun) to have them autoloaded when IRSSI starts.

Android configuration

Sign up for a notifo account, download the android app, and sign in with it. Make note of the username and API key, as you’ll be configuring irssi to use them.

You’ll be loading the scripts in IRSSI and setting 2 notifo parameters:

/script load screen_away.pl
/script load socketnotify.pl
/script load notifonotify.pl
/set notifo_username $USER_NAME
/set notifo_api_secret $API_KEY

Now receiving highlights while you’re away (detached from the screen) will send them to your android device.

Desktop configuration

Add an entry similar to this in your $HOME/.ssh/config file (creating it if it doesn’t exist yet). This will forward your traffic being received by the IRC server (on localhost) on port 4443 to your SSH client on port 4443 (IE: your laptop):

Host irc.myshellserver.org
ControlMaster Yes
ControlPath $HOME/.ssh/irc.control
RemoteForward 4443 localhost:4443

Now all we need is a daemon running on your client to listen on localhost:4443 and receive the messages, then insert them into some sort of notification service. My method for doing this is to have a script in $HOME/bin run in a screen and display them using pynotify.

I’ve written a script that I call notifywatch that does exactly that. Save it to $HOME/bin/notifywatch.py and mark it executable.

Add screen -d -m $HOME/bin/notifywatch into your startup scripts, and desktop notifications should work as well (even while connected to your IRSSI screen)!