X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=Robots%2Fbkmk_rforking.py;h=6ca35efd8231f9448761bc707bed77c75e3a6f3f;hb=71712390f4edb041609ff7bc9272d12a5c1a9b1d;hp=5eac7e0d31553db250895c64660a89abcb9f4de3;hpb=0e76f1851882b99da63a7c8a9e4cdf0c4a48657f;p=bookmarks_db.git diff --git a/Robots/bkmk_rforking.py b/Robots/bkmk_rforking.py index 5eac7e0..6ca35ef 100644 --- a/Robots/bkmk_rforking.py +++ b/Robots/bkmk_rforking.py @@ -1,21 +1,28 @@ -""" - 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 " +__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 @@ -37,8 +44,6 @@ def restart_subp(log): subp_pipe = RecordFile(check_subp) -from bkmk_objects import Robot - class robot_forking(Robot): def check_url(self, bookmark): if not check_subp: @@ -47,15 +52,14 @@ class robot_forking(Robot): 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: @@ -77,6 +81,5 @@ class robot_forking(Robot): # Tested return 1 - def stop(self): stop_subp(None) # Stop subprocess; do not log restarting