-"""
- Forking robot
+"""Forking robot
- Written by Broytman. Copyright (C) 2000-2007 PhiloSoft Design.
+This file is a part of Bookmarks database and Internet robot.
"""
+__author__ = "Oleg Broytman <phd@phdru.name>"
+__copyright__ = "Copyright (C) 2000-2012 PhiloSoft Design"
+__license__ = "GNU GPL"
+
+__all__ = ['robot_forking']
+
+
+import sys, os
try:
- import cPickle
- pickle = cPickle
+ import cPickle as pickle
except ImportError:
import pickle
-import sys, os
from subproc import Subprocess, RecordFile
+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 from the subprocess.
+# from os.close() in Subprocess.die() and errors from the subprocess.
sys.stderr = open("err.log", 'a')
check_subp = None
subp_pipe = RecordFile(check_subp)
-from bkmk_objects import Robot
-
class robot_forking(Robot):
def check_url(self, bookmark):
if not check_subp:
try:
save_parent = bookmark.parent
bookmark.parent = None
-
- bookmark.tempfname = self.tempfname
subp_pipe.write_record(pickle.dumps(bookmark))
- if check_subp.waitForPendingChar(300): # wait 5 minutes
+ 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"):
+ "last_tested", "last_modified", "test_time",
+ "icon", "icon_href"):
if hasattr(new_b, attr):
setattr(bookmark, attr, getattr(new_b, attr))
else:
# Tested
return 1
-
def stop(self):
stop_subp(None) # Stop subprocess; do not log restarting