]> git.phdru.name Git - bookmarks_db.git/blobdiff - parse_html/bkmk_ph_beautifulsoup.py
Fix(parse_html): Fix import
[bookmarks_db.git] / parse_html / bkmk_ph_beautifulsoup.py
index e1969f3250aa73d6e46e24883dd264f6df7ccd94..94a572bb48e0153fbb93f403ccfb46abe48566f2 100644 (file)
@@ -14,7 +14,9 @@ __all__ = ['parse_html']
 import re
 from sgmllib import SGMLParser, SGMLParseError
 from BeautifulSoup import BeautifulSoup, CData
+
 from .bkmk_ph_util import HTMLParser
+from compat import string_type
 
 DEFAULT_CHARSET = "cp1251"  # Stupid default for Russian Cyrillic
 
@@ -65,7 +67,8 @@ def parse_html(html_text, charset=None, log=None):
         return None
 
     _charset = root.originalEncoding
-    if _charset in ("ISO-8859-2", "windows-1252", "MacCyrillic"):  # Replace default
+    if _charset in ("ISO-8859-2", "windows-1252", "MacCyrillic"):
+        # Replace with default and re-parse
         _charset = DEFAULT_CHARSET
         root = _parse_html(html_text, _charset)
         if root is None:
@@ -94,8 +97,8 @@ def parse_html(html_text, charset=None, log=None):
         else:
             parts = []
             for part in title:
-                if not isinstance(part, basestring):
-                    part = unicode(part)
+                if not isinstance(part, string_type):
+                    part = part.decode()
                 parts.append(part.strip())
             title = ''.join(parts)
 
@@ -104,7 +107,8 @@ def parse_html(html_text, charset=None, log=None):
         try:
             meta_content = meta.get("content")
             if meta_content:
-                __charset = meta_content.lower().split('charset=')[1].split(';')[0]
+                __charset = meta_content.lower().split('charset=')[1].\
+                    split(';')[0]
             else:
                 __charset = False
         except IndexError:  # No charset in the META Content-Type