Mercurial > pidgin.yaz
changeset 24857:c260fe3ac5c8
Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889
committer: John Bailey <rekkanoryo@rekkanoryo.org>
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Thu, 01 Jan 2009 17:03:44 +0000 |
parents | a6742d9eadf3 |
children | 3a4070656d61 |
files | libpurple/purple-url-handler |
diffstat | 1 files changed, 27 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/purple-url-handler Thu Jan 01 16:51:09 2009 +0000 +++ b/libpurple/purple-url-handler Thu Jan 01 17:03:44 2009 +0000 @@ -299,6 +299,31 @@ else: goim(account, screenname) +def gtalk(uri): + protocol = "prpl-jabber" + match = re.match(r"^gtalk:([^?]*)(\?(.*))", uri) + if not match: + print "Invalid gtalk URI: %s" % uri + return + + command = urllib.unquote_plus(match.group(1)) + paramstring = match.group(3) + params = {} + if paramstring: + for param in paramstring.split("&"): + key, value = extendlist(param.split("=", 1), 2, "") + params[key] = urllib.unquote_plus(value) + accountname = params.get("from_jid", "") + jid = params.get("jid", "") + + account = findaccount(protocol, accountname) + + if command.lower() == "chat": + goim(account, jid) + elif command.lower() == "call": + # XXX V&V prompt to establish call + goim(account, jid) + def ymsgr(uri): protocol = "prpl-yahoo" match = re.match(r"^ymsgr:([^?]*)(\?([^&]*)(&(.*))?)", uri) @@ -355,6 +380,8 @@ sip(uri) elif type == "xmpp": xmpp(uri) + elif type == "gtalk": + gtalk(uri) elif type == "ymsgr": ymsgr(uri) else: