]> git.phdru.name Git - bookmarks_db.git/blobdiff - parse_html/bkmk_parse_html.py
Fix(Py3): Fix `unicode` compatibility
[bookmarks_db.git] / parse_html / bkmk_parse_html.py
index c14d055dfe9213556b48bf60fc4ee467d3888a39..8d6cb7c4e121d7e2a7b99c571e524ff75accf98c 100644 (file)
@@ -14,6 +14,8 @@ __all__ = ['parse_html', 'parse_filename', 'universal_charset']
 import codecs
 import os
 
+from ..compat import unicode
+
 try:
     from . import bkmk_ph_beautifulsoup4
 except ImportError:
@@ -167,7 +169,7 @@ def parse_html(html_text, charset=None, log=None):
     converted_title = title = parser.title
     if title and (not parser.charset):
         try:
-            unicode(title, "ascii")
+            title.decode("ascii")
         except UnicodeDecodeError:
             parser.charset = DEFAULT_CHARSET
 
@@ -186,12 +188,19 @@ def parse_html(html_text, charset=None, log=None):
             if log: log("   title          : %s" % title)
             if parser.charset != universal_charset:
                 try:
-                    converted_title = unicode(title, parser.charset).encode(universal_charset)
+                    converted_title = title.decode(parser.charset).\
+                        encode(universal_charset)
                 except UnicodeError:
-                    if log: log("   incorrect conversion from %s, converting from %s" % (parser.charset, DEFAULT_CHARSET))
-                    converted_title = unicode(title, DEFAULT_CHARSET, "replace").encode(universal_charset, "replace")
+                    if log:
+                        log("   incorrect conversion from %s,"
+                            "converting from %s"
+                            % (parser.charset, DEFAULT_CHARSET))
+                    converted_title = \
+                        title.decode(DEFAULT_CHARSET, "replace").\
+                        encode(universal_charset, "replace")
                     parser.charset = DEFAULT_CHARSET
-            if log and (converted_title != title): log("   converted title: %s" % converted_title)
+            if log and (converted_title != title):
+                log("   converted title: %s" % converted_title)
         except LookupError:
             if log: log("   unknown charset: '%s'" % parser.charset)
     else:
@@ -201,7 +210,8 @@ def parse_html(html_text, charset=None, log=None):
         final_title = recode_entities(converted_title, universal_charset)
         parts = [s.strip() for s in final_title.replace('\r', '').split('\n')]
         final_title = ' '.join([s for s in parts if s])
-        if log and (final_title != converted_title): log("   final title    : %s" % final_title)
+        if log and (final_title != converted_title):
+            log("   final title    : %s" % final_title)
         parser.title = final_title
 
     icon = parser.icon