]> git.phdru.name Git - bookmarks_db.git/blobdiff - Robots/bkmk_robot_base.py
Fix(Robot): Stop splitting and un-splitting URLs
[bookmarks_db.git] / Robots / bkmk_robot_base.py
index 3fd567cda2f0c232017d910e4a66526efcec9d75..a03d5c1b16ec430ab17ac8f899655ae9cf9808bb 100644 (file)
@@ -12,7 +12,7 @@ __all__ = ['robot_base', 'get_error']
 
 
 from base64 import b64encode
-from urllib.parse import urlsplit, urljoin
+from urllib.parse import urljoin
 import sys
 import socket
 import time
@@ -78,16 +78,8 @@ class robot_base(Robot):
             self.start = int(time.time())
             bookmark.icon = None
 
-            split_results = urlsplit(bookmark.href)
-            url_type, netloc, url_path, query, url_tag = split_results
-            url_host = split_results.hostname
-
-            if query:
-                url = "%s://%s%s?%s" % (url_type, url_host, url_path, query)
-            else:
-                url = "%s://%s%s" % (url_type, url_host, url_path)
             error, redirect_code, redirect_to, headers, content = \
-                self.get(bookmark, url, True)
+                self.get(bookmark, bookmark.href, True)
 
             if error:
                 bookmark.error = error
@@ -175,8 +167,7 @@ class robot_base(Robot):
                             icon = None
                         if not icon:
                             icon = "/favicon.ico"
-                        icon_url = urljoin(
-                            "%s://%s%s" % (url_type, url_host, url_path), icon)
+                        icon_url = urljoin(bookmark.href, icon)
                         self.log("   looking for icon at: %s" % icon_url)
                         if icon_url in icons:
                             if icons[icon_url]:
@@ -280,7 +271,8 @@ class robot_base(Robot):
                     self.log("   no header: %s" % key)
 
             md5 = md5wrapper()
-            if url_type == "ftp":  # Pass welcome message through MD5
+            if bookmark.href.startswith("ftp://"):
+                # Pass welcome message through MD5
                 ftp_welcome = self.get_ftp_welcome()
                 if not isinstance(ftp_welcome, bytes):
                     ftp_welcome = ftp_welcome.encode(charset or 'utf-8')