]> git.phdru.name Git - bookmarks_db.git/blobdiff - parse_html/bkmk_ph_beautifulsoup.py
Fix(Py3): Replace `unicode()` with `.decode()`
[bookmarks_db.git] / parse_html / bkmk_ph_beautifulsoup.py
index 1479f034255c4c5b4e53b872ea5b0c157b4a74c6..e29b4997932d764d29ebc290b9f407ec796a8063 100644 (file)
@@ -19,6 +19,8 @@ from .bkmk_ph_util import HTMLParser
 DEFAULT_CHARSET = "cp1251"  # Stupid default for Russian Cyrillic
 
 # http://groups.google.com/group/beautifulsoup/browse_thread/thread/69093cb0d3a3cf63
+
+
 class BadDeclParser(BeautifulSoup):
     def parse_declaration(self, i):
         """Treat a bogus SGML declaration as raw data. Treat a CDATA
@@ -56,13 +58,15 @@ def _parse_html(html_text, charset):
     except TypeError:
         return None
 
+
 def parse_html(html_text, charset=None, log=None):
     root = _parse_html(html_text, charset)
     if root is 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:
@@ -92,7 +96,7 @@ def parse_html(html_text, charset=None, log=None):
             parts = []
             for part in title:
                 if not isinstance(part, basestring):
-                    part = unicode(part)
+                    part = part.decode()
                 parts.append(part.strip())
             title = ''.join(parts)
 
@@ -101,7 +105,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
@@ -137,17 +142,21 @@ def parse_html(html_text, charset=None, log=None):
         return None
     return HTMLParser(_charset, meta_charset, title, refresh, icon)
 
+
 def _find_contenttype(Tag):
     return (Tag.name == "meta") and \
        (Tag.get("http-equiv", '').lower() == "content-type")
 
+
 def _find_charset(Tag):
     return (Tag.name == "meta") and Tag.get("charset", '')
 
+
 def _find_refresh(Tag):
     return (Tag.name == "meta") and \
        (Tag.get("http-equiv", '').lower() == "refresh")
 
+
 def _find_icon(Tag):
     return (Tag.name == "link") and \
        (Tag.get("rel", '').lower() in ('icon', 'shortcut icon'))