]> git.phdru.name Git - bookmarks_db.git/blobdiff - Robots/bkmk_rsimple.py
Test for completely broken HTML.
[bookmarks_db.git] / Robots / bkmk_rsimple.py
index ba302943d175dd5e969adcf82cf564e0f2cb644b..e01c7fece23cd612362ef862af0d486a580bfcdc 100644 (file)
@@ -176,26 +176,29 @@ class robot_simple(Robot):
                   html = False
                if html:
                   parser = parse_html(fname, charset, self.log)
-                  bookmark.real_title = parser.title
-                  if parser.refresh:
-                     refresh = parser.refresh
-                     try:
-                        url = refresh.split('=', 1)[1]
-                     except IndexError:
-                        url = "self"
-                     try:
-                        timeout = float(refresh.split(';')[0])
-                     except (IndexError, ValueError):
-                        raise RedirectException("html", "Bad redirect to %s (%s)" % (url, refresh))
-                     else:
-                        try:
-                           timeout = int(refresh.split(';')[0])
-                        except ValueError:
-                           pass # float timeout
-                        raise RedirectException("html", "%s (%s sec)" % (url, timeout))
-
-                  # Get favicon.ico
-                  icon = parser.icon
+                  if parser:
+                      bookmark.real_title = parser.title
+                      if parser.refresh:
+                         refresh = parser.refresh
+                         try:
+                            url = refresh.split('=', 1)[1]
+                         except IndexError:
+                            url = "self"
+                         try:
+                            timeout = float(refresh.split(';')[0])
+                         except (IndexError, ValueError):
+                            raise RedirectException("html", "Bad redirect to %s (%s)" % (url, refresh))
+                         else:
+                            try:
+                               timeout = int(refresh.split(';')[0])
+                            except ValueError:
+                               pass # float timeout
+                            raise RedirectException("html", "%s (%s sec)" % (url, timeout))
+
+                      # Get favicon.ico
+                      icon = parser.icon
+                  else:
+                     icon = None
                   if not icon:
                      icon = "/favicon.ico"
                   icon = urljoin("%s://%s%s" % (url_type, url_host, url_path), icon)
@@ -248,18 +251,18 @@ class robot_simple(Robot):
       except IOError, msg:
          if (msg[0] == "http error") and (msg[1] == -1):
             bookmark.no_error = "The server did not return any header - it is not an error, actually"
-            self.log(bookmark.no_error)
+            self.log('   no headers: %s' % bookmark.no_error)
          else:
             bookmark.error = get_error(msg)
-            self.log(bookmark.error)
+            self.log('   Error: %s' % bookmark.error)
 
       except EOFError:
          bookmark.error = "Unexpected EOF (FTP server closed connection)"
-         self.log(bookmark.error)
+         self.log('   EOF: %s' % bookmark.error)
 
       except RedirectException, msg:
          bookmark.moved = str(msg)
-         self.log(bookmark.moved)
+         self.log('   Moved: %s' % bookmark.moved)
 
       except KeyboardInterrupt:
          self.log("Keyboard interrupt (^C)")
@@ -269,7 +272,7 @@ class robot_simple(Robot):
          import traceback
          traceback.print_exc()
          bookmark.error = "Exception!"
-         self.log(bookmark.error)
+         self.log('   Exception: %s' % bookmark.error)
 
       finally:
          self.finish_check_url(bookmark)