]> git.phdru.name Git - bookmarks_db.git/blobdiff - Robots/bkmk_rforking.py
Fix(Robot): Stop splitting and un-splitting URLs
[bookmarks_db.git] / Robots / bkmk_rforking.py
index 2aa49e061347c1f5665ee9daf143dab643fc0162..7b458df0ca8767cba61c3c1b76a3d8d5579b03f3 100644 (file)
@@ -10,7 +10,8 @@ __license__ = "GNU GPL"
 __all__ = ['robot_forking']
 
 
-import sys, os
+import os
+import sys
 
 try:
     import cPickle as pickle
@@ -23,11 +24,12 @@ from bkmk_objects import Robot
 
 # This is to catch 'close failed: [Errno 9] Bad file descriptor' message
 # from os.close() in Subprocess.die() and errors from the subprocess.
-sys.stderr = open("err.log", 'a')
+sys.stderr = open("err.log", 'at')
 
 check_subp = None
 subp_pipe = None
 
+
 def stop_subp(log):
     global check_subp, subp_pipe
     if check_subp:
@@ -35,19 +37,22 @@ def stop_subp(log):
         del check_subp
     del subp_pipe
 
+
 def restart_subp(log):
     global check_subp, subp_pipe
     stop_subp(log)
 
-    check_subp = Subprocess("%s/Robots/bkmk_rforking_sub.py" % os.path.dirname(sys.argv[0]),
+    check_subp = Subprocess("%s/Robots/bkmk_rforking_sub.py"
+                            % os.path.dirname(sys.argv[0]),
                             control_stderr=True)
     subp_pipe = RecordFile(check_subp)
 
 
 _set_subproc = True
 
+
 class robot_forking(Robot):
-    subproc = 'urllib2' # Default subprocess
+    subproc = 'urllib # Default subprocess
 
     def check_url(self, bookmark):
         global _set_subproc
@@ -58,7 +63,9 @@ class robot_forking(Robot):
             subproc_attrs = []
             for attr in dir(self):
                 if attr.startswith('subproc_'):
-                    subproc_attrs.append((attr[len('subproc_'):], getattr(self, attr)))
+                    subproc_attrs.append(
+                        (attr[len('subproc_'):], getattr(self, attr))
+                    )
             if subproc_attrs:
                 subproc += ':' + ':'.join(
                     ['='.join((k, v)) for k, v in subproc_attrs]
@@ -66,20 +73,20 @@ class robot_forking(Robot):
             os.environ['BKMK_ROBOT'] = subproc
 
         if not check_subp:
-            restart_subp(self.log) # Not restart, just start afresh
+            restart_subp(self.log)  # Not restart, just start afresh
 
         try:
             save_parent = bookmark.parent
             bookmark.parent = None
             subp_pipe.write_record(pickle.dumps(bookmark))
 
-            if check_subp.waitForPendingChar(60): # wait a minute
+            if check_subp.waitForPendingChar(60):  # wait a minute
                 new_b = pickle.loads(subp_pipe.read_record())
                 for attr in (
                     "error", "no_error",
                     "moved", "size", "md5", "real_title",
                     "last_tested", "last_modified", "test_time",
-                    "icon", "icon_href",
+                    "icon", "icon_href", "charset",
                 ):
                     if hasattr(new_b, attr):
                         setattr(bookmark, attr, getattr(new_b, attr))
@@ -93,7 +100,7 @@ class robot_forking(Robot):
                 error = check_subp.readPendingErrLine()
                 if not error:
                     break
-                sys.stderr.write("(subp) " + error)
+                sys.stderr.write("(subp) %s" % error)
             sys.stderr.flush()
 
         except KeyboardInterrupt:
@@ -103,4 +110,4 @@ class robot_forking(Robot):
         return 1
 
     def stop(self):
-        stop_subp(None) # Stop subprocess; do not log restarting
+        stop_subp(None)  # Stop subprocess; do not log restarting