mcabber/contrib/events/mcnotify.py
author Mikael Berthe <mikael@lilotux.net>
Sat, 10 Feb 2007 18:42:02 +0100
changeset 1147 fcef5d34b7d4
permissions -rwxr-xr-x
Add a few sample event scripts
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1147
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     1
#!/usr/bin/python
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     2
# Version 0.05
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     3
#
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     4
#  Copyright (C) 2007 Adam Wolk "Mulander" <netprobe@gmail.com>
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     5
#  Slightly updated by Mikael Berthe
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     6
#
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     7
# To use this script, set the "events_command" option to the path of
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     8
# the script (see the mcabberrc.example file for an example)
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     9
#
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    10
# This script is provided under the terms of the GNU General Public License,
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    11
# see the file COPYING in the root mcabber source directory.
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    12
#
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    13
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    14
import sys
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    15
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    16
#CMD_MSG_IN="/usr/bin/play /home/mulander/sound/machine_move.ogg"
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    17
CMD_MSG_IN=""
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    18
SHORT_NICK=True
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    19
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    20
if len(sys.argv) == 5:
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    21
	event,arg1,arg2,filename = sys.argv[1:5]
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    22
else:
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    23
	event,arg1,arg2          = sys.argv[1:4]
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    24
	filename                 = None
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    25
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    26
if event == 'MSG' and arg1 == 'IN':
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    27
	import pynotify,os,locale
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    28
	encoding  = (locale.getdefaultlocale())[1]
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    29
	msg = 'sent you a message.'
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    30
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    31
	if SHORT_NICK and '@' in arg2:
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    32
		arg2 = arg2[0:arg2.index('@')]
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    33
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    34
	if filename is not None:
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    35
		f   = file(filename)
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    36
		msg = f.read()
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    37
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    38
	pynotify.init('mcnotify')
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    39
	msgbox = pynotify.Notification(unicode(arg2, encoding),unicode(msg, encoding))
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    40
	msgbox.set_timeout(3000)
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    41
	msgbox.set_urgency(pynotify.URGENCY_LOW)
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    42
	msgbox.show()
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    43
	if (CMD_MSG_IN):
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    44
		os.system(CMD_MSG_IN + '> /dev/null 2>&1')
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    45
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    46
	if filename is not None and os.path.exists(filename):
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    47
		os.remove(filename)
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    48
	pynotify.uninit()
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    49
fcef5d34b7d4 Add a few sample event scripts
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    50
# vim:set noet sts=8 sw=8: