# HG changeset patch # User Paul Aurich # Date 1230829424 0 # Node ID c260fe3ac5c8aed3269d5504e4f485c5e1101d2e # Parent a6742d9eadf301c78dbcb66e5a7f51ee8c379826 Extend purple-url-handler to handle "gtalk" URIs. Fixes #7889 committer: John Bailey diff -r a6742d9eadf3 -r c260fe3ac5c8 libpurple/purple-url-handler --- 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: