Mercurial > pidgin.yaz
annotate libpurple/purple-url-handler @ 29182:139aa186e8cc
Don't call purple_xfer_start in msn_xfer_init. purple_xfer_start is called
later after the other side accepts, and this second call clobbers the file
handle. This file handle is leaked resulting in Pidgin appearing to lock
the file stopping Windows from being able to delete it.
The changes from darkrain42's branch actually fixed the real file handle
leak except for the addition of this one line.
Fixes #1643.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Mon, 14 Dec 2009 06:50:33 +0000 |
parents | 971b89243a20 |
children | adef21420870 |
rev | line source |
---|---|
22013
fefe61275687
A small patch from shreevatsa: "Some of the Python scripts start with
Richard Laager <rlaager@wiktel.com>
parents:
17319
diff
changeset
|
1 #!/usr/bin/env python |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
2 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
3 import dbus |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
4 import re |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
5 import sys |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
6 import time |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
7 import urllib |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
8 |
23421
0565c227608d
Handle D-Bus errors more helpfully in purple-url-handler.
Will Thompson <will.thompson@collabora.co.uk>
parents:
23072
diff
changeset
|
9 bus = dbus.SessionBus() |
0565c227608d
Handle D-Bus errors more helpfully in purple-url-handler.
Will Thompson <will.thompson@collabora.co.uk>
parents:
23072
diff
changeset
|
10 obj = None |
0565c227608d
Handle D-Bus errors more helpfully in purple-url-handler.
Will Thompson <will.thompson@collabora.co.uk>
parents:
23072
diff
changeset
|
11 try: |
0565c227608d
Handle D-Bus errors more helpfully in purple-url-handler.
Will Thompson <will.thompson@collabora.co.uk>
parents:
23072
diff
changeset
|
12 obj = bus.get_object("im.pidgin.purple.PurpleService", |
0565c227608d
Handle D-Bus errors more helpfully in purple-url-handler.
Will Thompson <will.thompson@collabora.co.uk>
parents:
23072
diff
changeset
|
13 "/im/pidgin/purple/PurpleObject") |
0565c227608d
Handle D-Bus errors more helpfully in purple-url-handler.
Will Thompson <will.thompson@collabora.co.uk>
parents:
23072
diff
changeset
|
14 except dbus.DBusException, e: |
0565c227608d
Handle D-Bus errors more helpfully in purple-url-handler.
Will Thompson <will.thompson@collabora.co.uk>
parents:
23072
diff
changeset
|
15 if e._dbus_error_name == "org.freedesktop.DBus.Error.ServiceUnknown": |
0565c227608d
Handle D-Bus errors more helpfully in purple-url-handler.
Will Thompson <will.thompson@collabora.co.uk>
parents:
23072
diff
changeset
|
16 print "Error: no libpurple-powered client is running. Try starting Pidgin or Finch." |
0565c227608d
Handle D-Bus errors more helpfully in purple-url-handler.
Will Thompson <will.thompson@collabora.co.uk>
parents:
23072
diff
changeset
|
17 sys.exit(1) |
16143
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
18 purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface") |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
19 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
20 class CheckedObject: |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
21 def __init__(self, obj): |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
22 self.obj = obj |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
23 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
24 def __getattr__(self, attr): |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
25 return CheckedAttribute(self, attr) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
26 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
27 class CheckedAttribute: |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
28 def __init__(self, cobj, attr): |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
29 self.cobj = cobj |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
30 self.attr = attr |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
31 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
32 def __call__(self, *args): |
16145
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
33 # Redirect stderr to suppress the printing of an " Introspect error" |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
34 # message if nothing is listening on the bus. We print a friendly |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
35 # error message ourselves. |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
36 real_stderr = sys.stderr |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
37 sys.stderr = None |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
38 result = self.cobj.obj.__getattr__(self.attr)(*args) |
16145
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
39 sys.stderr = real_stderr |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
40 |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
41 # This can be useful for debugging. |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
42 # if (result == 0): |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
43 # print "Error: " + self.attr + " " + str(args) + " returned " + str(result) |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
44 |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
45 return result |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
46 |
16143
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
47 cpurple = CheckedObject(purple) |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
48 |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
49 def extendlist(list, length, fill): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
50 if len(list) < length: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
51 return list + [fill] * (length - len(list)) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
52 else: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
53 return list |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
54 |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
55 def convert(value): |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
56 try: |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
57 return int(value) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
58 except: |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
59 return value |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
60 |
23422
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
61 def account_not_found(): |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
62 print "No matching account found." |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
63 sys.exit(1) |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
64 |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
65 def bring_account_online(account): |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
66 if not cpurple.PurpleAccountIsConnected(account): |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
67 # The last argument is meant to be a GList * but the D-Bus binding |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
68 # generator thing just wants a UInt32, which is pretty failing. |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
69 # Happily, passing a 0 to mean an empty list turns out to work anyway. |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
70 purple.PurpleAccountSetStatusList(account, "online", 1, 0) |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
71 purple.PurpleAccountConnect(account) |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
72 |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
73 def findaccount(protocolname, accountname="", matcher=None): |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
74 if matcher: |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
75 for account in cpurple.PurpleAccountsGetAll(): |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
76 if accountname != "" and accountname != cpurple.PurpleAccountGetUsername(a): |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
77 continue |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
78 if matcher(account): |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
79 bring_account_online(account) |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
80 return account |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
81 account_not_found() |
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
82 |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
83 # prefer connected accounts |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
84 account = cpurple.PurpleAccountsFindConnected(accountname, protocolname) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
85 if (account != 0): |
23422
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
86 return account |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
87 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
88 # try to get any account and connect it |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
89 account = cpurple.PurpleAccountsFindAny(accountname, protocolname) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
90 if (account == 0): |
23422
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
91 account_not_found() |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
92 |
23422
0c66344d0ed5
Give findaccount an option 'matcher' callback parameter, to match arbitrary
Will Thompson <will.thompson@collabora.co.uk>
parents:
23421
diff
changeset
|
93 bring_account_online(account) |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
94 return account |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
95 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
96 def goim(account, screenname, message=None): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
97 # XXX: 1 == PURPLE_CONV_TYPE_IM |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
98 conversation = cpurple.PurpleConversationNew(1, account, screenname) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
99 if message: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
100 purple.PurpleConvSendConfirm(conversation, message) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
101 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
102 def gochat(account, params, message=None): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
103 connection = cpurple.PurpleAccountGetConnection(account) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
104 purple.ServJoinChat(connection, params) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
105 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
106 if message != None: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
107 for i in range(20): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
108 # XXX: 2 == PURPLE_CONV_TYPE_CHAT |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
109 conversation = purple.PurpleFindConversationWithAccount(2, params.get("channel", params.get("room")), account) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
110 if conversation: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
111 purple.PurpleConvSendConfirm(conversation, message) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
112 break |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
113 else: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
114 time.sleep(0.5) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
115 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
116 def addbuddy(account, screenname, group="", alias=""): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
117 cpurple.PurpleBlistRequestAddBuddy(account, screenname, group, alias) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
118 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
119 |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
120 def aim(uri): |
16143
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
121 protocol = "prpl-aim" |
16455 | 122 match = re.match(r"^aim:([^?]*)(\?(.*))", uri) |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
123 if not match: |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
124 print "Invalid aim URI: %s" % uri |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
125 return |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
126 |
16455 | 127 command = urllib.unquote_plus(match.group(1)) |
128 paramstring = match.group(3) | |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
129 params = {} |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
130 if paramstring: |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
131 for param in paramstring.split("&"): |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
132 key, value = extendlist(param.split("=", 1), 2, "") |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
133 params[key] = urllib.unquote_plus(value) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
134 accountname = params.get("account", "") |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
135 screenname = params.get("screenname", "") |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
136 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
137 account = findaccount(protocol, accountname) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
138 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
139 if command.lower() == "goim": |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
140 goim(account, screenname, params.get("message")) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
141 elif command.lower() == "gochat": |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
142 gochat(account, params) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
143 elif command.lower() == "addbuddy": |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
144 addbuddy(account, screenname, params.get("group", "")) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
145 |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
146 def gg(uri): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
147 protocol = "prpl-gg" |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
148 match = re.match(r"^gg:(.*)", uri) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
149 if not match: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
150 print "Invalid gg URI: %s" % uri |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
151 return |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
152 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
153 screenname = urllib.unquote_plus(match.group(1)) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
154 account = findaccount(protocol) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
155 goim(account, screenname) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
156 |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
157 def icq(uri): |
16143
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
158 protocol = "prpl-icq" |
16455 | 159 match = re.match(r"^icq:([^?]*)(\?(.*))", uri) |
16143
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
160 if not match: |
16455 | 161 print "Invalid icq URI: %s" % uri |
16143
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
162 return |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
163 |
16455 | 164 command = urllib.unquote_plus(match.group(1)) |
165 paramstring = match.group(3) | |
16143
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
166 params = {} |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
167 if paramstring: |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
168 for param in paramstring.split("&"): |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
169 key, value = extendlist(param.split("=", 1), 2, "") |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
170 params[key] = urllib.unquote_plus(value) |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
171 accountname = params.get("account", "") |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
172 screenname = params.get("screenname", "") |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
173 |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
174 account = findaccount(protocol, accountname) |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
175 |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
176 if command.lower() == "goim": |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
177 goim(account, screenname, params.get("message")) |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
178 elif command.lower() == "gochat": |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
179 gochat(account, params) |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
180 elif command.lower() == "addbuddy": |
598b1b15b199
Trac Ticket #149 from JensenDied
Richard Laager <rlaager@wiktel.com>
parents:
15885
diff
changeset
|
181 addbuddy(account, screenname, params.get("group", "")) |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
182 |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
183 def irc(uri): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
184 protocol = "prpl-irc" |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
185 match = re.match(r"^irc:(//([^/]*)/)?([^?]*)(\?(.*))?", uri) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
186 if not match: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
187 print "Invalid irc URI: %s" % uri |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
188 return |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
189 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
190 server = urllib.unquote_plus(match.group(2)) or "" |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
191 target = match.group(3) or "" |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
192 query = match.group(5) or "" |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
193 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
194 modifiers = {} |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
195 if target: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
196 for modifier in target.split(",")[1:]: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
197 modifiers[modifier] = True |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
198 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
199 isnick = modifiers.has_key("isnick") |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
200 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
201 paramstring = match.group(5) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
202 params = {} |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
203 if paramstring: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
204 for param in paramstring.split("&"): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
205 key, value = extendlist(param.split("=", 1), 2, "") |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
206 params[key] = urllib.unquote_plus(value) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
207 |
23423
668b62240235
Make irc:// URLs use an account on the right server, not just the first IRC
Will Thompson <will.thompson@collabora.co.uk>
parents:
23422
diff
changeset
|
208 def correct_server(account): |
668b62240235
Make irc:// URLs use an account on the right server, not just the first IRC
Will Thompson <will.thompson@collabora.co.uk>
parents:
23422
diff
changeset
|
209 username = cpurple.PurpleAccountGetUsername(account) |
25460
971b89243a20
Make a hack in purple-url-handler cleaner.
Johannes Buchner
parents:
24995
diff
changeset
|
210 return ("@" in username) and (server == (username.split("@"))[1]) |
23423
668b62240235
Make irc:// URLs use an account on the right server, not just the first IRC
Will Thompson <will.thompson@collabora.co.uk>
parents:
23422
diff
changeset
|
211 |
668b62240235
Make irc:// URLs use an account on the right server, not just the first IRC
Will Thompson <will.thompson@collabora.co.uk>
parents:
23422
diff
changeset
|
212 account = findaccount(protocol, matcher=correct_server) |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
213 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
214 if (target != ""): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
215 if (isnick): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
216 goim(account, urllib.unquote_plus(target.split(",")[0]), params.get("msg")) |
23423
668b62240235
Make irc:// URLs use an account on the right server, not just the first IRC
Will Thompson <will.thompson@collabora.co.uk>
parents:
23422
diff
changeset
|
217 else: |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
218 channel = urllib.unquote_plus(target.split(",")[0]) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
219 if channel[0] != "#": |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
220 channel = "#" + channel |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
221 gochat(account, {"server": server, "channel": channel, "password": params.get("key", "")}, params.get("msg")) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
222 |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
223 def msnim(uri): |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
224 protocol = "prpl-msn" |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
225 match = re.match(r"^msnim:([^?]*)(\?(.*))", uri) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
226 if not match: |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
227 print "Invalid msnim URI: %s" % uri |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
228 return |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
229 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
230 command = urllib.unquote_plus(match.group(1)) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
231 paramstring = match.group(3) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
232 params = {} |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
233 if paramstring: |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
234 for param in paramstring.split("&"): |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
235 key, value = extendlist(param.split("=", 1), 2, "") |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
236 params[key] = urllib.unquote_plus(value) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
237 screenname = params.get("contact", "") |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
238 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
239 account = findaccount(protocol) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
240 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
241 if command.lower() == "chat": |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
242 goim(account, screenname) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
243 elif command.lower() == "add": |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
244 addbuddy(account, screenname) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
245 |
17319
8a7238fb7905
explicit merge of 'dc4f2ee34039521ae6a198fe7d62f4dca8a84589'
Jeffrey Connelly <jaconnel@calpoly.edu>
diff
changeset
|
246 def myim(uri): |
23424
ab1f79d3ceeb
Remove some tab literals from purple-url-handler, for consistency and for
Will Thompson <will.thompson@collabora.co.uk>
parents:
23423
diff
changeset
|
247 protocol = "prpl-myspace" |
ab1f79d3ceeb
Remove some tab literals from purple-url-handler, for consistency and for
Will Thompson <will.thompson@collabora.co.uk>
parents:
23423
diff
changeset
|
248 print "TODO: send uri: ", uri |
ab1f79d3ceeb
Remove some tab literals from purple-url-handler, for consistency and for
Will Thompson <will.thompson@collabora.co.uk>
parents:
23423
diff
changeset
|
249 assert False, "Not implemented" |
16398
81015b477483
Add stub for myim: URL handler.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
16145
diff
changeset
|
250 |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
251 def sip(uri): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
252 protocol = "prpl-simple" |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
253 match = re.match(r"^sip:(.*)", uri) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
254 if not match: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
255 print "Invalid sip URI: %s" % uri |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
256 return |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
257 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
258 screenname = urllib.unquote_plus(match.group(1)) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
259 account = findaccount(protocol) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
260 goim(account, screenname) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
261 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
262 def xmpp(uri): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
263 protocol = "prpl-jabber" |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
264 match = re.match(r"^xmpp:(//([^/?#]*)/?)?([^?#]*)(\?([^;#]*)(;([^#]*))?)?(#(.*))?", uri) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
265 if not match: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
266 print "Invalid xmpp URI: %s" % uri |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
267 return |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
268 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
269 tmp = match.group(2) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
270 if (tmp): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
271 accountname = urllib.unquote_plus(tmp) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
272 else: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
273 accountname = "" |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
274 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
275 screenname = urllib.unquote_plus(match.group(3)) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
276 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
277 tmp = match.group(5) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
278 if (tmp): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
279 command = urllib.unquote_plus(tmp) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
280 else: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
281 command = "" |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
282 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
283 paramstring = match.group(7) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
284 params = {} |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
285 if paramstring: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
286 for param in paramstring.split(";"): |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
287 key, value = extendlist(param.split("=", 1), 2, "") |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
288 params[key] = urllib.unquote_plus(value) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
289 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
290 account = findaccount(protocol, accountname) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
291 |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
292 if command.lower() == "message": |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
293 goim(account, screenname, params.get("body")) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
294 elif command.lower() == "join": |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
295 room, server = screenname.split("@") |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
296 gochat(account, {"room": room, "server": server}) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
297 elif command.lower() == "roster": |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
298 addbuddy(account, screenname, params.get("group", ""), params.get("name", "")) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
299 else: |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
300 goim(account, screenname) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
301 |
24857
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
302 def gtalk(uri): |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
303 protocol = "prpl-jabber" |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
304 match = re.match(r"^gtalk:([^?]*)(\?(.*))", uri) |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
305 if not match: |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
306 print "Invalid gtalk URI: %s" % uri |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
307 return |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
308 |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
309 command = urllib.unquote_plus(match.group(1)) |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
310 paramstring = match.group(3) |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
311 params = {} |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
312 if paramstring: |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
313 for param in paramstring.split("&"): |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
314 key, value = extendlist(param.split("=", 1), 2, "") |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
315 params[key] = urllib.unquote_plus(value) |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
316 accountname = params.get("from_jid", "") |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
317 jid = params.get("jid", "") |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
318 |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
319 account = findaccount(protocol, accountname) |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
320 |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
321 if command.lower() == "chat": |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
322 goim(account, jid) |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
323 elif command.lower() == "call": |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
324 # XXX V&V prompt to establish call |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
325 goim(account, jid) |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
326 |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
327 def ymsgr(uri): |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
328 protocol = "prpl-yahoo" |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
329 match = re.match(r"^ymsgr:([^?]*)(\?([^&]*)(&(.*))?)", uri) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
330 if not match: |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
331 print "Invalid ymsgr URI: %s" % uri |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
332 return |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
333 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
334 command = urllib.unquote_plus(match.group(1)) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
335 screenname = urllib.unquote_plus(match.group(3)) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
336 paramstring = match.group(5) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
337 params = {} |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
338 if paramstring: |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
339 for param in paramstring.split("&"): |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
340 key, value = extendlist(param.split("=", 1), 2, "") |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
341 params[key] = urllib.unquote_plus(value) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
342 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
343 account = findaccount(protocol) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
344 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
345 if command.lower() == "sendim": |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
346 goim(account, screenname, params.get("m")) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
347 elif command.lower() == "chat": |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
348 gochat(account, {"room": screenname}) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
349 elif command.lower() == "addfriend": |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
350 addbuddy(account, screenname) |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
351 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
352 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
353 def main(argv=sys.argv): |
23072
4b4be7609072
Import a patch (with changes) from Debian:
Ari Pollak <ari@debian.org>
parents:
22013
diff
changeset
|
354 if len(argv) != 2 or argv[1] == "--help" or argv[1] == "-h": |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
355 print "Usage: %s URI" % argv[0] |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
356 print "Example: %s \"xmpp:romeo@montague.net?message\"" % argv[0] |
23072
4b4be7609072
Import a patch (with changes) from Debian:
Ari Pollak <ari@debian.org>
parents:
22013
diff
changeset
|
357 |
4b4be7609072
Import a patch (with changes) from Debian:
Ari Pollak <ari@debian.org>
parents:
22013
diff
changeset
|
358 if len(argv) != 2: |
4b4be7609072
Import a patch (with changes) from Debian:
Ari Pollak <ari@debian.org>
parents:
22013
diff
changeset
|
359 sys.exit(1) |
4b4be7609072
Import a patch (with changes) from Debian:
Ari Pollak <ari@debian.org>
parents:
22013
diff
changeset
|
360 else: |
4b4be7609072
Import a patch (with changes) from Debian:
Ari Pollak <ari@debian.org>
parents:
22013
diff
changeset
|
361 return 0 |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
362 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
363 uri = argv[1] |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
364 type = uri.split(":")[0] |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
365 |
16145
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
366 try: |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
367 if type == "aim": |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
368 aim(uri) |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
369 elif type == "gg": |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
370 gg(uri) |
16145
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
371 elif type == "icq": |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
372 icq(uri) |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
373 elif type == "irc": |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
374 irc(uri) |
16145
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
375 elif type == "msnim": |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
376 msnim(uri) |
16398
81015b477483
Add stub for myim: URL handler.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
16145
diff
changeset
|
377 elif type == "myim": |
17319
8a7238fb7905
explicit merge of 'dc4f2ee34039521ae6a198fe7d62f4dca8a84589'
Jeffrey Connelly <jaconnel@calpoly.edu>
diff
changeset
|
378 myim(uri) |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
379 elif type == "sip": |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
380 sip(uri) |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
381 elif type == "xmpp": |
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
382 xmpp(uri) |
24857
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
383 elif type == "gtalk": |
c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
Paul Aurich <paul@darkrain42.org>
parents:
23424
diff
changeset
|
384 gtalk(uri) |
16145
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
385 elif type == "ymsgr": |
d06673964ff9
Print decent error messages instead of stack traces if there's a problem.
Richard Laager <rlaager@wiktel.com>
parents:
16143
diff
changeset
|
386 ymsgr(uri) |
17282
5059a0a071a2
Restore the protocol specific URL handlers in purple-url-handler for those
Stu Tomlinson <stu@nosnilmot.com>
parents:
17048
diff
changeset
|
387 else: |
17319
8a7238fb7905
explicit merge of 'dc4f2ee34039521ae6a198fe7d62f4dca8a84589'
Jeffrey Connelly <jaconnel@calpoly.edu>
diff
changeset
|
388 print "Unknown protocol: %s" % type |
23421
0565c227608d
Handle D-Bus errors more helpfully in purple-url-handler.
Will Thompson <will.thompson@collabora.co.uk>
parents:
23072
diff
changeset
|
389 except dbus.DBusException, e: |
0565c227608d
Handle D-Bus errors more helpfully in purple-url-handler.
Will Thompson <will.thompson@collabora.co.uk>
parents:
23072
diff
changeset
|
390 print "Error: %s" % (e.message) |
0565c227608d
Handle D-Bus errors more helpfully in purple-url-handler.
Will Thompson <will.thompson@collabora.co.uk>
parents:
23072
diff
changeset
|
391 sys.exit(1) |
15885
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
392 |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
393 if __name__ == "__main__": |
c6e563dfaa7a
More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
394 main() |