X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=Robots%2Fbkmk_robot_base.py;h=a03d5c1b16ec430ab17ac8f899655ae9cf9808bb;hb=HEAD;hp=df33a26bd43162d92252e04df933bcb378abaffe;hpb=7462ff4d330df6386557b5265e454ffa0e6b7bb9;p=bookmarks_db.git diff --git a/Robots/bkmk_robot_base.py b/Robots/bkmk_robot_base.py index df33a26..a03d5c1 100644 --- a/Robots/bkmk_robot_base.py +++ b/Robots/bkmk_robot_base.py @@ -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,13 +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 - - 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 @@ -172,16 +167,22 @@ 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]: bookmark.icon_href = icon_url content_type, bookmark.icon = icons[icon_url] - self.log(" cached icon: %s" % content_type) + self.log(" cached icon : %s" + % content_type) else: - self.log(" cached icon: no icon") + self.log(" cached icon : no icon") + elif icon_url.startswith('data:'): + content_type, icon_data = \ + icon_url[len('data:'):].split(',', 1) + bookmark.icon_href = bookmark.icon = icon_url + self.log(" got data icon : %s" % content_type) + icons[icon_url] = (content_type, icon_url) else: try: _icon_url = icon_url @@ -270,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')