]> git.phdru.name Git - bookmarks_db.git/blobdiff - Robots/bkmk_rsimple.py
Store icon's URIs.
[bookmarks_db.git] / Robots / bkmk_rsimple.py
index 228899629fb507e94a7877da50ca698c078bc666..ba302943d175dd5e969adcf82cf564e0f2cb644b 100644 (file)
@@ -158,6 +158,7 @@ class robot_simple(Robot):
          if headers:
             try:
                content_type = headers["Content-Type"]
+               self.log("   Content-Type: %s" % content_type)
                try:
                   # extract charset from "text/html; foo; charset=UTF-8, bar; baz;"
                   content_type, charset = content_type.split(';', 1)
@@ -167,7 +168,13 @@ class robot_simple(Robot):
                except (ValueError, IndexError):
                   charset = None
                   self.log("   no charset in Content-Type header")
-               if content_type in ("text/html", "application/xhtml+xml"):
+               for ctype in ("text/html", "application/xhtml+xml"):
+                  if content_type.startswith(ctype):
+                      html = True
+                      break
+               else:
+                  html = False
+               if html:
                   parser = parse_html(fname, charset, self.log)
                   bookmark.real_title = parser.title
                   if parser.refresh:
@@ -195,6 +202,7 @@ class robot_simple(Robot):
                   self.log("   looking for icon at: %s" % icon)
                   if icon in icons:
                      if icons[icon]:
+                        bookmark.icon_href = icon
                         content_type, bookmark.icon = icons[icon]
                         self.log("       cached icon: %s" % content_type)
                      else:
@@ -223,9 +231,10 @@ class robot_simple(Robot):
                         content_type = headers["Content-Type"]
                         if content_type.startswith("image/"):
                            icon_file = open(fname, "rb")
-                           icon = icon_file.read()
+                           icon_data = icon_file.read()
                            icon_file.close()
-                           bookmark.icon = "data:%s;base64,%s" % (content_type, b64encode(icon))
+                           bookmark.icon_href = icon
+                           bookmark.icon = "data:%s;base64,%s" % (content_type, b64encode(icon_data))
                            self.log("   got icon       : %s" % content_type)
                            icons[icon] = (content_type, bookmark.icon)
                         else:
@@ -233,8 +242,8 @@ class robot_simple(Robot):
                            icons[icon] = None
                         os.remove(fname)
 
-            except KeyError:
-               pass
+            except KeyError, key:
+               self.log("   no header: %s" % key)
 
       except IOError, msg:
          if (msg[0] == "http error") and (msg[1] == -1):