Sun, 30 Aug 2009 03:52:19 +0000
Fix some docs warnings. Thanks to darkrain for pointing them out.
|
22141
adb198961d72
A small patch from shreevatsa: "Some of the Python scripts start with
Richard Laager <rlaager@pidgin.im>
parents:
20195
diff
changeset
|
1 | #!/usr/bin/env python |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
2 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
3 | import dbus |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
4 | import re |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
5 | import urllib |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
6 | import sys |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
7 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
8 | import xml.dom.minidom |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
9 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
10 | xml.dom.minidom.Element.all = xml.dom.minidom.Element.getElementsByTagName |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
11 | |
|
20195
10848da5f7ed
applied changes from c699de7eec5194554b5fcb885019835fb902d95a
Luke Schierer <lschiere@pidgin.im>
parents:
18885
diff
changeset
|
12 | obj = None |
|
10848da5f7ed
applied changes from c699de7eec5194554b5fcb885019835fb902d95a
Luke Schierer <lschiere@pidgin.im>
parents:
18885
diff
changeset
|
13 | try: |
|
10848da5f7ed
applied changes from c699de7eec5194554b5fcb885019835fb902d95a
Luke Schierer <lschiere@pidgin.im>
parents:
18885
diff
changeset
|
14 | obj = dbus.SessionBus().get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject") |
|
10848da5f7ed
applied changes from c699de7eec5194554b5fcb885019835fb902d95a
Luke Schierer <lschiere@pidgin.im>
parents:
18885
diff
changeset
|
15 | except: |
|
10848da5f7ed
applied changes from c699de7eec5194554b5fcb885019835fb902d95a
Luke Schierer <lschiere@pidgin.im>
parents:
18885
diff
changeset
|
16 | pass |
|
10848da5f7ed
applied changes from c699de7eec5194554b5fcb885019835fb902d95a
Luke Schierer <lschiere@pidgin.im>
parents:
18885
diff
changeset
|
17 | |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
18 | purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface") |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
19 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
20 | class CheckedObject: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
21 | def __init__(self, obj): |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
22 | self.obj = obj |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
23 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
24 | def __getattr__(self, attr): |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
25 | return CheckedAttribute(self, attr) |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
26 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
27 | class CheckedAttribute: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
28 | def __init__(self, cobj, attr): |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
29 | self.cobj = cobj |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
30 | self.attr = attr |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
31 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
32 | def __call__(self, *args): |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
33 | result = self.cobj.obj.__getattr__(self.attr)(*args) |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
34 | if result == 0: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
35 | raise "Error: " + self.attr + " " + str(args) + " returned " + str(result) |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
36 | return result |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
37 | |
|
23237
7ec42e06496f
Import a patch (with changes) from Debian:
Ari Pollak <ari@debian.org>
parents:
22141
diff
changeset
|
38 | def show_help(requested=False): |
|
17574
dc3189c42c0c
Fix http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=240589
Mark Doliner <markdoliner@pidgin.im>
parents:
17399
diff
changeset
|
39 | print """This program uses D-Bus to communicate with purple. |
|
15716
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
40 | |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
41 | Usage: |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
42 | |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
43 | %s "command1" "command2" ... |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
44 | |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
45 | Each command is of one of the three types: |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
46 | |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
47 | [protocol:]commandname?param1=value1¶m2=value2&... |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
48 | FunctionName?param1=value1¶m2=value2&... |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
49 | FunctionName(value1,value2,...) |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
50 | |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
51 | The second and third form are provided for completeness but their use |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
52 | is not recommended; use purple-send or purple-send-async instead. The |
|
15716
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
53 | second form uses introspection to find out the parameter names and |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
54 | their types, therefore it is rather slow. |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
55 | |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
56 | Examples of commands: |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
57 | |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
58 | jabber:goim?screenname=testone@localhost&message=hi |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
59 | jabber:gochat?room=TestRoom&server=conference.localhost |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
60 | jabber:getinfo?screenname=testone@localhost |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
61 | jabber:addbuddy?screenname=my friend |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
62 | |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
63 | setstatus?status=away&message=don't disturb |
|
25668
7897eda26d25
List getstatus and getstatusmessage in the purple-remote help output.
Paul Aurich <darkrain42@pidgin.im>
parents:
24836
diff
changeset
|
64 | getstatus |
|
7897eda26d25
List getstatus and getstatusmessage in the purple-remote help output.
Paul Aurich <darkrain42@pidgin.im>
parents:
24836
diff
changeset
|
65 | getstatusmessage |
|
15716
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
66 | quit |
|
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
67 | |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
68 | PurpleAccountsFindConnected?name=&protocol=prpl-jabber |
| 18885 | 69 | PurpleAccountsFindConnected(,prpl-jabber) |
|
15716
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
70 | """ % sys.argv[0] |
|
23237
7ec42e06496f
Import a patch (with changes) from Debian:
Ari Pollak <ari@debian.org>
parents:
22141
diff
changeset
|
71 | if (requested): |
|
7ec42e06496f
Import a patch (with changes) from Debian:
Ari Pollak <ari@debian.org>
parents:
22141
diff
changeset
|
72 | sys.exit(0) |
|
7ec42e06496f
Import a patch (with changes) from Debian:
Ari Pollak <ari@debian.org>
parents:
22141
diff
changeset
|
73 | else: |
|
7ec42e06496f
Import a patch (with changes) from Debian:
Ari Pollak <ari@debian.org>
parents:
22141
diff
changeset
|
74 | sys.exit(1) |
|
15716
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
75 | |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
76 | cpurple = CheckedObject(purple) |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
77 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
78 | urlregexp = r"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?" |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
79 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
80 | def extendlist(list, length, fill): |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
81 | if len(list) < length: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
82 | return list + [fill] * (length - len(list)) |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
83 | else: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
84 | return list |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
85 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
86 | def convert(value): |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
87 | try: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
88 | return int(value) |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
89 | except: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
90 | return value |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
91 | |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
92 | def findaccount(accountname, protocolname): |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
93 | try: |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
94 | # prefer connected accounts |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
95 | account = cpurple.PurpleAccountsFindConnected(accountname, protocolname) |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
96 | return account |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
97 | except: |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
98 | # try to get any account and connect it |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
99 | account = cpurple.PurpleAccountsFindAny(accountname, protocolname) |
|
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
100 | purple.PurpleAccountSetStatusVargs(account, "online", 1) |
|
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
101 | purple.PurpleAccountConnect(account) |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
102 | return account |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
103 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
104 | |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
105 | def execute(uri): |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
106 | match = re.match(urlregexp, uri) |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
107 | protocol = match.group(2) |
|
17399
4b33b14a5459
A conditional in purple_remote was missing a trailing colon.
Ethan Blanton <elb@pidgin.im>
parents:
17253
diff
changeset
|
108 | if protocol == "xmpp": |
|
17253
278327221b51
Make purple-remote accept xmpp as a protocol
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16205
diff
changeset
|
109 | protocol = "jabber" |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
110 | if protocol is not None: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
111 | protocol = "prpl-" + protocol |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
112 | command = match.group(5) |
|
13774
470a932e79e7
[gaim-migrate @ 16184]
Richard Laager <rlaager@pidgin.im>
parents:
13767
diff
changeset
|
113 | paramstring = match.group(7) |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
114 | params = {} |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
115 | if paramstring is not None: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
116 | for param in paramstring.split("&"): |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
117 | key, value = extendlist(param.split("=",1), 2, "") |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
118 | params[key] = urllib.unquote(value) |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
119 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
120 | accountname = params.get("account", "") |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
121 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
122 | if command == "goim": |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
123 | account = findaccount(accountname, protocol) |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
124 | conversation = cpurple.PurpleConversationNew(1, account, params["screenname"]) |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
125 | if "message" in params: |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
126 | im = cpurple.PurpleConversationGetImData(conversation) |
|
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
127 | purple.PurpleConvImSend(im, params["message"]) |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
128 | return None |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
129 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
130 | elif command == "gochat": |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
131 | account = findaccount(accountname, protocol) |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
132 | connection = cpurple.PurpleAccountGetConnection(account) |
|
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
133 | return purple.ServJoinChat(connection, params) |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
134 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
135 | elif command == "addbuddy": |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
136 | account = findaccount(accountname, protocol) |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
137 | return cpurple.PurpleBlistRequestAddBuddy(account, params["screenname"], |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
138 | params.get("group", ""), "") |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
139 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
140 | elif command == "setstatus": |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
141 | current = purple.PurpleSavedstatusGetCurrent() |
|
13763
dc4815a8f4aa
[gaim-migrate @ 16173]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13221
diff
changeset
|
142 | |
|
dc4815a8f4aa
[gaim-migrate @ 16173]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13221
diff
changeset
|
143 | if "status" in params: |
|
dc4815a8f4aa
[gaim-migrate @ 16173]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13221
diff
changeset
|
144 | status_id = params["status"] |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
145 | status_type = purple.PurplePrimitiveGetTypeFromId(status_id) |
|
13763
dc4815a8f4aa
[gaim-migrate @ 16173]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13221
diff
changeset
|
146 | else: |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
147 | status_type = purple.PurpleSavedstatusGetType(current) |
|
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
148 | status_id = purple.PurplePrimitiveGetIdFromType(status_type) |
|
13763
dc4815a8f4aa
[gaim-migrate @ 16173]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13221
diff
changeset
|
149 | |
|
dc4815a8f4aa
[gaim-migrate @ 16173]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13221
diff
changeset
|
150 | if "message" in params: |
|
dc4815a8f4aa
[gaim-migrate @ 16173]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13221
diff
changeset
|
151 | message = params["message"]; |
|
dc4815a8f4aa
[gaim-migrate @ 16173]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13221
diff
changeset
|
152 | else: |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
153 | message = purple.PurpleSavedstatusGetMessage(current) |
|
13763
dc4815a8f4aa
[gaim-migrate @ 16173]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13221
diff
changeset
|
154 | |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
155 | if "account" in params: |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
156 | accounts = [cpurple.PurpleAccountsFindAny(accountname, protocol)] |
|
13763
dc4815a8f4aa
[gaim-migrate @ 16173]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13221
diff
changeset
|
157 | |
|
dc4815a8f4aa
[gaim-migrate @ 16173]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13221
diff
changeset
|
158 | for account in accounts: |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
159 | status = purple.PurpleAccountGetStatus(account, status_id) |
|
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
160 | type = purple.PurpleStatusGetType(status) |
|
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
161 | purple.PurpleSavedstatusSetSubstatus(current, account, type, message) |
|
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
162 | purple.PurpleSavedstatusActivateForAccount(current, account) |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
163 | else: |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
164 | saved = purple.PurpleSavedstatusNew("", status_type) |
|
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
165 | purple.PurpleSavedstatusSetMessage(saved, message) |
|
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
166 | purple.PurpleSavedstatusActivate(saved) |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
167 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
168 | return None |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
169 | |
|
18097
9304ace34e7b
A patch from Norbert Buchmuller:
Norbert Buchmuller <norbi@nix.hu>
parents:
17399
diff
changeset
|
170 | elif command == "getstatus": |
|
9304ace34e7b
A patch from Norbert Buchmuller:
Norbert Buchmuller <norbi@nix.hu>
parents:
17399
diff
changeset
|
171 | current = purple.PurpleSavedstatusGetCurrent() |
|
9304ace34e7b
A patch from Norbert Buchmuller:
Norbert Buchmuller <norbi@nix.hu>
parents:
17399
diff
changeset
|
172 | status_type = purple.PurpleSavedstatusGetType(current) |
|
9304ace34e7b
A patch from Norbert Buchmuller:
Norbert Buchmuller <norbi@nix.hu>
parents:
17399
diff
changeset
|
173 | status_id = purple.PurplePrimitiveGetIdFromType(status_type) |
|
9304ace34e7b
A patch from Norbert Buchmuller:
Norbert Buchmuller <norbi@nix.hu>
parents:
17399
diff
changeset
|
174 | return status_id |
|
9304ace34e7b
A patch from Norbert Buchmuller:
Norbert Buchmuller <norbi@nix.hu>
parents:
17399
diff
changeset
|
175 | |
|
24836
fa1d0f63ea45
Patch from 'jfd' (whose trac user account no longer exists) to implement
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
23256
diff
changeset
|
176 | elif command == "getstatusmessage": |
|
fa1d0f63ea45
Patch from 'jfd' (whose trac user account no longer exists) to implement
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
23256
diff
changeset
|
177 | current = purple.PurpleSavedstatusGetCurrent() |
|
fa1d0f63ea45
Patch from 'jfd' (whose trac user account no longer exists) to implement
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
23256
diff
changeset
|
178 | return purple.PurpleSavedstatusGetMessage(current) |
|
fa1d0f63ea45
Patch from 'jfd' (whose trac user account no longer exists) to implement
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
23256
diff
changeset
|
179 | |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
180 | elif command == "getinfo": |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
181 | account = findaccount(accountname, protocol) |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
182 | connection = cpurple.PurpleAccountGetConnection(account) |
|
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
183 | return purple.ServGetInfo(connection, params["screenname"]) |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11187
diff
changeset
|
184 | |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
185 | elif command == "quit": |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
186 | return purple.PurpleCoreQuit() |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
187 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
188 | elif command == "uri": |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
189 | return None |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
190 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
191 | else: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
192 | match = re.match(r"(\w+)\s*\(([^)]*)\)", command) |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
193 | if match is not None: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
194 | name = match.group(1) |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
195 | argstr = match.group(2) |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
196 | if argstr == "": |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
197 | args = [] |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
198 | else: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
199 | args = argstr.split(",") |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
200 | fargs = [] |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
201 | for arg in args: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
202 | fargs.append(convert(arg.strip())) |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
203 | return purple.__getattr__(name)(*fargs) |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
204 | else: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
205 | # introspect the object to get parameter names and types |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
206 | # this is slow because the entire introspection info must be downloaded |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
207 | data = dbus.Interface(obj, "org.freedesktop.DBus.Introspectable").\ |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
208 | Introspect() |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
209 | introspect = xml.dom.minidom.parseString(data).documentElement |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
210 | for method in introspect.all("method"): |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
211 | if command == method.getAttribute("name"): |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
212 | methodparams = [] |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
213 | for arg in method.all("arg"): |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
214 | if arg.getAttribute("direction") == "in": |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
215 | value = params[arg.getAttribute("name")] |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
216 | type = arg.getAttribute("type") |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
217 | if type == "s": |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
218 | methodparams.append(value) |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
219 | elif type == "i": |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
220 | methodparams.append(int(value)) |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
221 | else: |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
222 | raise "Don't know how to handle type \"%s\"" % type |
|
16205
397be242f4a4
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
223 | return purple.__getattr__(command)(*methodparams) |
|
15716
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
224 | show_help() |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
225 | |
|
23256
35a4e2bbfa46
disapproval of revision '04ec200520788c834a933129aba557e5ce761a08'
Richard Laager <rlaager@pidgin.im>
parents:
23255
diff
changeset
|
226 | if len(sys.argv) == 1: |
|
15716
128dcef5e4b3
Fix bug #1662186: "gaim-remote --help doesn't work" by showing the help for any invalid command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15435
diff
changeset
|
227 | show_help() |
|
23237
7ec42e06496f
Import a patch (with changes) from Debian:
Ari Pollak <ari@debian.org>
parents:
22141
diff
changeset
|
228 | elif (sys.argv[1] == "--help" or sys.argv[1] == "-h"): |
|
7ec42e06496f
Import a patch (with changes) from Debian:
Ari Pollak <ari@debian.org>
parents:
22141
diff
changeset
|
229 | show_help(True) |
|
20195
10848da5f7ed
applied changes from c699de7eec5194554b5fcb885019835fb902d95a
Luke Schierer <lschiere@pidgin.im>
parents:
18885
diff
changeset
|
230 | elif (obj == None): |
|
10848da5f7ed
applied changes from c699de7eec5194554b5fcb885019835fb902d95a
Luke Schierer <lschiere@pidgin.im>
parents:
18885
diff
changeset
|
231 | print "No existing libpurple instance detected." |
|
10848da5f7ed
applied changes from c699de7eec5194554b5fcb885019835fb902d95a
Luke Schierer <lschiere@pidgin.im>
parents:
18885
diff
changeset
|
232 | sys.exit(1); |
|
10848da5f7ed
applied changes from c699de7eec5194554b5fcb885019835fb902d95a
Luke Schierer <lschiere@pidgin.im>
parents:
18885
diff
changeset
|
233 | |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
234 | for arg in sys.argv[1:]: |
|
13774
470a932e79e7
[gaim-migrate @ 16184]
Richard Laager <rlaager@pidgin.im>
parents:
13767
diff
changeset
|
235 | output = execute(arg) |
|
470a932e79e7
[gaim-migrate @ 16184]
Richard Laager <rlaager@pidgin.im>
parents:
13767
diff
changeset
|
236 | |
|
470a932e79e7
[gaim-migrate @ 16184]
Richard Laager <rlaager@pidgin.im>
parents:
13767
diff
changeset
|
237 | if (output != None): |
|
470a932e79e7
[gaim-migrate @ 16184]
Richard Laager <rlaager@pidgin.im>
parents:
13767
diff
changeset
|
238 | print output |
|
470a932e79e7
[gaim-migrate @ 16184]
Richard Laager <rlaager@pidgin.im>
parents:
13767
diff
changeset
|
239 |