]> git.phdru.name Git - bookmarks_db.git/blobdiff - Robots/parse_html.py
Added HTML Parser based on TidyHTMLTreeBuilder.
[bookmarks_db.git] / Robots / parse_html.py
index fd901a8857883a7bc1c5e02d764f76be7f411406..cc7655bfa950770d3f092ad7c32d387f2f65bd8b 100755 (executable)
@@ -2,7 +2,7 @@
 """
    HTML Parsers wrapper
 
-   Written by BroytMann. Copyright (C) 1997-2008 PhiloSoft Design
+   Written by Broytman. Copyright (C) 1997-2010 PhiloSoft Design
 """
 
 import codecs
@@ -11,6 +11,14 @@ universal_charset = "utf-8"
 DEFAULT_CHARSET = "cp1251" # Stupid default for Russian Cyrillic
 
 parsers = []
+
+try:
+   import parse_html_etreetidy
+except ImportError:
+   pass
+else:
+   parsers.append(parse_html_etreetidy.parse_html)
+
 try:
    import parse_html_beautifulsoup
    parse_html_beautifulsoup.DEFAULT_CHARSET = DEFAULT_CHARSET
@@ -34,7 +42,9 @@ def recode_entities(title, charset):
    for part in entity_re.split(title):
       if part not in ("&", "<", ">", """) and \
             entity_re.match(part):
-         part = unichr(name2codepoint.get(part[1:-1], part)).encode(charset)
+         _part = name2codepoint.get(part[1:-1], None)
+         if _part is not None:
+             part = unichr(_part).encode(charset)
       output.append(part)
    title = ''.join(output)