Mercurial > hg
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 |
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: |