annotate mcabber/contrib/events/mcnotify.py @ 1731:4fbfae993c24

Improve login process The roster and private storage elements are requested before broadcasting our presence, because we want the roster before we receive our contacts presence notifications. This is more efficients, and also solves an issue with entity capabilities (as we do not store caps for unknown items).
author Mikael Berthe <mikael@lilotux.net>
date Sun, 28 Feb 2010 18:50:30 +0100
parents fcef5d34b7d4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
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: