besser82 / rpms / pidgin

Forked from rpms/pidgin 6 years ago
Clone
b49908b
--- a/libpurple/purple-url-handler	2016-01-13 09:45:03.988031246 +0100
b49908b
+++ b/libpurple/purple-url-handler	2016-01-11 10:47:49.000000000 +0100
b49908b
@@ -1,19 +1,22 @@
b49908b
 #!/usr/bin/env python
b49908b
-
b49908b
+from __future__ import print_function
b49908b
 import dbus
b49908b
 import re
b49908b
 import sys
b49908b
 import time
b49908b
-import urllib
b49908b
+try:
b49908b
+    from urllib.parse import unquote_plus
b49908b
+except ImportError:
b49908b
+    from urllib import unquote_plus
b49908b
 
b49908b
 bus = dbus.SessionBus()
b49908b
 obj = None
b49908b
 try:
b49908b
     obj = bus.get_object("im.pidgin.purple.PurpleService",
b49908b
                          "/im/pidgin/purple/PurpleObject")
b49908b
-except dbus.DBusException, e:
b49908b
+except dbus.DBusException as e:
b49908b
     if e._dbus_error_name == "org.freedesktop.DBus.Error.ServiceUnknown":
b49908b
-        print "Error: no libpurple-powered client is running. Try starting Pidgin or Finch."
b49908b
+        print("Error: no libpurple-powered client is running. Try starting Pidgin or Finch.")
b49908b
         sys.exit(1)
b49908b
 purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")
b49908b
 
b49908b
@@ -59,7 +62,7 @@
b49908b
         return value
b49908b
 
b49908b
 def account_not_found():
b49908b
-    print "No matching account found."
b49908b
+    print("No matching account found.")
b49908b
     sys.exit(1)
b49908b
 
b49908b
 def bring_account_online(account):
b49908b
@@ -122,16 +125,16 @@
b49908b
     protocol = "prpl-aim"
b49908b
     match = re.match(r"^aim:([^?]*)(\?(.*))", uri)
b49908b
     if not match:
b49908b
-        print "Invalid aim URI: %s" % uri
b49908b
+        print("Invalid aim URI: %s" % uri)
b49908b
         return
b49908b
 
b49908b
-    command = urllib.unquote_plus(match.group(1))
b49908b
+    command = unquote_plus(match.group(1))
b49908b
     paramstring = match.group(3)
b49908b
     params = {}
b49908b
     if paramstring:
b49908b
         for param in paramstring.split("&"):
b49908b
             key, value = extendlist(param.split("=", 1), 2, "")
b49908b
-            params[key] = urllib.unquote_plus(value)
b49908b
+            params[key] = unquote_plus(value)
b49908b
     accountname = params.get("account", "")
b49908b
     screenname = params.get("screenname", "")
b49908b
 
b49908b
@@ -148,10 +151,10 @@
b49908b
     protocol = "prpl-gg"
b49908b
     match = re.match(r"^gg:(.*)", uri)
b49908b
     if not match:
b49908b
-        print "Invalid gg URI: %s" % uri
b49908b
+        print("Invalid gg URI: %s" % uri)
b49908b
         return
b49908b
 
b49908b
-    screenname = urllib.unquote_plus(match.group(1))
b49908b
+    screenname = unquote_plus(match.group(1))
b49908b
     account = findaccount(protocol)
b49908b
     goim(account, screenname)
b49908b
 
b49908b
@@ -159,16 +162,16 @@
b49908b
     protocol = "prpl-icq"
b49908b
     match = re.match(r"^icq:([^?]*)(\?(.*))", uri)
b49908b
     if not match:
b49908b
-        print "Invalid icq URI: %s" % uri
b49908b
+        print("Invalid icq URI: %s" % uri)
b49908b
         return
b49908b
 
b49908b
-    command = urllib.unquote_plus(match.group(1))
b49908b
+    command = unquote_plus(match.group(1))
b49908b
     paramstring = match.group(3)
b49908b
     params = {}
b49908b
     if paramstring:
b49908b
         for param in paramstring.split("&"):
b49908b
             key, value = extendlist(param.split("=", 1), 2, "")
b49908b
-            params[key] = urllib.unquote_plus(value)
b49908b
+            params[key] = unquote_plus(value)
b49908b
     accountname = params.get("account", "")
b49908b
     screenname = params.get("screenname", "")
b49908b
 
b49908b
@@ -185,10 +188,10 @@
b49908b
     protocol = "prpl-irc"
b49908b
     match = re.match(r"^irc:(//([^/]*))?/?([^?]*)(\?(.*))?", uri)
b49908b
     if not match:
b49908b
-        print "Invalid irc URI: %s" % uri
b49908b
+        print("Invalid irc URI: %s" % uri)
b49908b
         return
b49908b
 
b49908b
-    server = urllib.unquote_plus(match.group(2) or "")
b49908b
+    server = unquote_plus(match.group(2) or "")
b49908b
     target = match.group(3) or ""
b49908b
     query = match.group(5) or ""
b49908b
 
b49908b
@@ -197,14 +200,14 @@
b49908b
         for modifier in target.split(",")[1:]:
b49908b
             modifiers[modifier] = True
b49908b
 
b49908b
-    isnick = modifiers.has_key("isnick")
b49908b
+    isnick = True if "isnick" in modifiers else False
b49908b
 
b49908b
     paramstring = match.group(5)
b49908b
     params = {}
b49908b
     if paramstring:
b49908b
         for param in paramstring.split("&"):
b49908b
             key, value = extendlist(param.split("=", 1), 2, "")
b49908b
-            params[key] = urllib.unquote_plus(value)
b49908b
+            params[key] = unquote_plus(value)
b49908b
 
b49908b
     def correct_server(account):
b49908b
         username = cpurple.PurpleAccountGetUsername(account)
b49908b
@@ -214,9 +217,9 @@
b49908b
 
b49908b
     if (target != ""):
b49908b
         if (isnick):
b49908b
-            goim(account, urllib.unquote_plus(target.split(",")[0]), params.get("msg"))
b49908b
+            goim(account, unquote_plus(target.split(",")[0]), params.get("msg"))
b49908b
         else:
b49908b
-            channel = urllib.unquote_plus(target.split(",")[0])
b49908b
+            channel = unquote_plus(target.split(",")[0])
b49908b
             if channel[0] != "#":
b49908b
                 channel = "#" + channel
b49908b
             gochat(account, {"server": server, "channel": channel, "password": params.get("key", "")}, params.get("msg"))
b49908b
@@ -225,16 +228,16 @@
b49908b
     protocol = "prpl-msn"
b49908b
     match = re.match(r"^msnim:([^?]*)(\?(.*))", uri)
b49908b
     if not match:
b49908b
-        print "Invalid msnim URI: %s" % uri
b49908b
+        print("Invalid msnim URI: %s" % uri)
b49908b
         return
b49908b
 
b49908b
-    command = urllib.unquote_plus(match.group(1))
b49908b
+    command = unquote_plus(match.group(1))
b49908b
     paramstring = match.group(3)
b49908b
     params = {}
b49908b
     if paramstring:
b49908b
         for param in paramstring.split("&"):
b49908b
             key, value = extendlist(param.split("=", 1), 2, "")
b49908b
-            params[key] = urllib.unquote_plus(value)
b49908b
+            params[key] = unquote_plus(value)
b49908b
     screenname = params.get("contact", "")
b49908b
 
b49908b
     account = findaccount(protocol)
b49908b
@@ -244,19 +247,14 @@
b49908b
     elif command.lower() == "add":
b49908b
         addbuddy(account, screenname)
b49908b
 
b49908b
-def myim(uri):
b49908b
-        protocol = "prpl-myspace"
b49908b
-        print "TODO: send uri: ", uri
b49908b
-        assert False, "Not implemented"
b49908b
-
b49908b
 def sip(uri):
b49908b
     protocol = "prpl-simple"
b49908b
     match = re.match(r"^sip:(.*)", uri)
b49908b
     if not match:
b49908b
-        print "Invalid sip URI: %s" % uri
b49908b
+        print("Invalid sip URI: %s" % uri)
b49908b
         return
b49908b
 
b49908b
-    screenname = urllib.unquote_plus(match.group(1))
b49908b
+    screenname = unquote_plus(match.group(1))
b49908b
     account = findaccount(protocol)
b49908b
     goim(account, screenname)
b49908b
 
b49908b
@@ -264,20 +262,20 @@
b49908b
     protocol = "prpl-jabber"
b49908b
     match = re.match(r"^xmpp:(//([^/?#]*)/?)?([^?#]*)(\?([^;#]*)(;([^#]*))?)?(#(.*))?", uri)
b49908b
     if not match:
b49908b
-        print "Invalid xmpp URI: %s" % uri
b49908b
+        print("Invalid xmpp URI: %s" % uri)
b49908b
         return
b49908b
 
b49908b
     tmp = match.group(2)
b49908b
     if (tmp):
b49908b
-        accountname = urllib.unquote_plus(tmp)
b49908b
+        accountname = unquote_plus(tmp)
b49908b
     else:
b49908b
         accountname = ""
b49908b
 
b49908b
-    screenname = urllib.unquote_plus(match.group(3))
b49908b
+    screenname = unquote_plus(match.group(3))
b49908b
 
b49908b
     tmp = match.group(5)
b49908b
     if (tmp):
b49908b
-        command = urllib.unquote_plus(tmp)
b49908b
+        command = unquote_plus(tmp)
b49908b
     else:
b49908b
         command = ""
b49908b
 
b49908b
@@ -286,7 +284,7 @@
b49908b
     if paramstring:
b49908b
         for param in paramstring.split(";"):
b49908b
             key, value = extendlist(param.split("=", 1), 2, "")
b49908b
-            params[key] = urllib.unquote_plus(value)
b49908b
+            params[key] = unquote_plus(value)
b49908b
 
b49908b
     account = findaccount(protocol, accountname)
b49908b
 
b49908b
@@ -304,16 +302,16 @@
b49908b
     protocol = "prpl-jabber"
b49908b
     match = re.match(r"^gtalk:([^?]*)(\?(.*))", uri)
b49908b
     if not match:
b49908b
-        print "Invalid gtalk URI: %s" % uri
b49908b
+        print("Invalid gtalk URI: %s" % uri)
b49908b
         return
b49908b
 
b49908b
-    command = urllib.unquote_plus(match.group(1))
b49908b
+    command = unquote_plus(match.group(1))
b49908b
     paramstring = match.group(3)
b49908b
     params = {}
b49908b
     if paramstring:
b49908b
         for param in paramstring.split("&"):
b49908b
             key, value = extendlist(param.split("=", 1), 2, "")
b49908b
-            params[key] = urllib.unquote_plus(value)
b49908b
+            params[key] = unquote_plus(value)
b49908b
     accountname = params.get("from_jid", "")
b49908b
     jid = params.get("jid", "")
b49908b
 
b49908b
@@ -329,17 +327,17 @@
b49908b
     protocol = "prpl-yahoo"
b49908b
     match = re.match(r"^ymsgr:([^?]*)(\?([^&]*)(&(.*))?)", uri)
b49908b
     if not match:
b49908b
-        print "Invalid ymsgr URI: %s" % uri
b49908b
+        print("Invalid ymsgr URI: %s" % uri)
b49908b
         return
b49908b
 
b49908b
-    command = urllib.unquote_plus(match.group(1))
b49908b
-    screenname = urllib.unquote_plus(match.group(3))
b49908b
+    command = unquote_plus(match.group(1))
b49908b
+    screenname = unquote_plus(match.group(3))
b49908b
     paramstring = match.group(5)
b49908b
     params = {}
b49908b
     if paramstring:
b49908b
         for param in paramstring.split("&"):
b49908b
             key, value = extendlist(param.split("=", 1), 2, "")
b49908b
-            params[key] = urllib.unquote_plus(value)
b49908b
+            params[key] = unquote_plus(value)
b49908b
 
b49908b
     account = findaccount(protocol)
b49908b
 
b49908b
@@ -353,8 +351,8 @@
b49908b
 
b49908b
 def main(argv=sys.argv):
b49908b
     if len(argv) != 2 or argv[1] == "--help" or argv[1] == "-h":
b49908b
-        print "Usage: %s URI" % argv[0]
b49908b
-        print "Example: %s \"xmpp:romeo@montague.net?message\"" % argv[0]
b49908b
+        print("Usage: %s URI" % argv[0])
b49908b
+        print("Example: %s \"xmpp:romeo@montague.net?message\"" % argv[0])
b49908b
 
b49908b
         if len(argv) != 2:
b49908b
             sys.exit(1)
b49908b
@@ -375,8 +373,6 @@
b49908b
             irc(uri)
b49908b
         elif type == "msnim":
b49908b
             msnim(uri)
b49908b
-        elif type == "myim":
b49908b
-            myim(uri)
b49908b
         elif type == "sip":
b49908b
             sip(uri)
b49908b
         elif type == "xmpp":
b49908b
@@ -386,9 +382,9 @@
b49908b
         elif type == "ymsgr":
b49908b
             ymsgr(uri)
b49908b
         else:
b49908b
-            print "Unknown protocol: %s" % type
b49908b
-    except dbus.DBusException, e:
b49908b
-        print "Error: %s" % (e.message)
b49908b
+            print("Unknown protocol: %s" % type)
b49908b
+    except dbus.DBusException as e:
b49908b
+        print("Error: %s" % e.message)
b49908b
         sys.exit(1)
b49908b
 
b49908b
 if __name__ == "__main__":