In the days when OS X’s instant messenger program was called iChat, I think it was possible to setup a notification when a particular buddy came online. Mostly not very useful to non-stalker-types, especially as some services logged people in and out fairly continuously, but I would occasionally turn it on when trying to get in touch with an elusive friend or family member in a timezone that offers very little overlap with my own. It appears that is no longer an option in the main interface in Mavericks, but Apple do provide the ability to run an AppleScript whenever an event is triggered.
The scripts are stored in $HOME/Library/Application\ Scripts/com.apple.iChat and configured in the Messages’ preferences. The code below is how I configured Messages to send an alert to notification centre when a specific person came online. I publish it here in case anyone else finds it useful.1
(* File: Buddy pounce Author: Nathan Dimmock
Licence: GPL v2 *) using terms from application "Messages" on buddy became available theBuddy with description if description contains "aNameHere" then display notification description with title "Messages" end if end buddy became available # The following are unused but need to be defined to avoid an error on received text invitation theText from theBuddy for theChat end received text invitation on received audio invitation theText from theBuddy for theChat end received audio invitation on received video invitation theText from theBuddy for theChat end received video invitation on received remote screen sharing invitation from theBuddy for theChat end received remote screen sharing invitation on received local screen sharing invitation from theBuddy for theChat end received local screen sharing invitation on received file transfer invitation theFileTransfer end received file transfer invitation on buddy authorization requested theRequest end buddy authorization requested on message sent theMessage for theChat end message sent on message received theMessage from theBuddy for theChat end message received on chat room message received theMessage from theBuddy for theChat end chat room message received on active chat message received theMessage end active chat message received on addressed chat room message received theMessage from theBuddy for theChat end addressed chat room message received on addressed message received theMessage from theBuddy for theChat end addressed message received on av chat started end av chat started on av chat ended end av chat ended on login finished for theService end login finished on logout finished for theService end logout finished on buddy became unavailable theBuddy end buddy became unavailable on completed file transfer end completed file transfer end using terms from
- As an aside, I think this script ended up elegantly minimalistic. However AppleScript remains frustratingly hard to generate, since even simple things, such as extracting the “first name” property from theBuddy object so it could be compared to a fixed string, proved difficult to fathom from the online documentation. [back]