]> git.phdru.name Git - bookmarks_db.git/blobdiff - bkmk_parser.py
Version 4.5.0.
[bookmarks_db.git] / bkmk_parser.py
index 02b20d780c56003aea95d30827e4a8d85e6c4ef4..d4b6a2f32e05d6a8c3676f1415afa7ef1f441dfd 100644 (file)
@@ -13,7 +13,8 @@ __license__ = "GNU GPL"
 __all__ = ['BkmkParser']
 
 
-import sys, os
+import os
+from m_lib.defenc import default_encoding
 from m_lib.net.www.html import HTMLParser
 from bkmk_objects import Folder, Bookmark, Ruler
 
@@ -37,11 +38,6 @@ else:
    dump_names = debug
 
 
-try:
-    from m_lib.defenc import default_encoding as DEFAULT_CHARSET
-except ImportError:
-    DEFAULT_CHARSET = None
-
 class BkmkParser(HTMLParser):
    def __init__(self):
       HTMLParser.__init__(self)
@@ -54,8 +50,8 @@ class BkmkParser(HTMLParser):
 
    def handle_data(self, data):
       if data:
-         if self.charset and DEFAULT_CHARSET:
-            data = unicode(data, self.charset, "replace").encode(DEFAULT_CHARSET, "xmlcharrefreplace")
+         if self.charset and default_encoding:
+            data = unicode(data, self.charset, "replace").encode(default_encoding, "xmlcharrefreplace")
          self.accumulator += data
 
    # Mozilla - get charset
@@ -78,8 +74,8 @@ class BkmkParser(HTMLParser):
             pass
 
    def start_title(self, attrs):
-      if DEFAULT_CHARSET:
-         self.accumulator += '<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=%s">\n' % DEFAULT_CHARSET
+      if default_encoding:
+         self.accumulator += '<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=%s">\n' % default_encoding
       self.accumulator += "<TITLE>"
 
    def end_title(self):
@@ -133,7 +129,7 @@ class BkmkParser(HTMLParser):
       add_date = None
       last_visit = None
       last_modified = None
-      keyword = None
+      keyword = ''
       icon = None
       charset = None
 
@@ -156,7 +152,8 @@ class BkmkParser(HTMLParser):
 
       debug("Bookmark points to: `%s'" % href)
       bookmark = Bookmark(href, add_date, last_visit, last_modified,
-         keyword or '', '', icon, charset)
+         keyword=keyword, icon=icon,
+         charset=charset, parser_charset=self.charset or default_encoding)
       self.current_object = bookmark
       self.current_folder.append(bookmark)
       self.urls += 1