X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;ds=sidebyside;f=robots.py;h=543e6ec783152c4caaeaaddba4f55bb71e78da76;hb=HEAD;hp=3efb8f02de8dcee0a4b3429a474c160992b8d8d6;hpb=18c4a4f08c96c72f3f06c06ba3e7eb8d87eaa614;p=bookmarks_db.git diff --git a/robots.py b/robots.py index 3efb8f0..6f2c5a2 100644 --- a/robots.py +++ b/robots.py @@ -5,7 +5,7 @@ This file is a part of Bookmarks database and Internet robot. """ __author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 1997-2014 PhiloSoft Design" +__copyright__ = "Copyright (C) 1997-2025 PhiloSoft Design" __license__ = "GNU GPL" __all__ = ['import_robot', 'robot'] @@ -14,12 +14,25 @@ __all__ = ['import_robot', 'robot'] from os import environ from bkmk_objects import parse_params, set_params -robot_name, robot_params = parse_params(environ.get("BKMK_ROBOT", "forking")) +robot_names, robot_params = parse_params( + environ.get("BKMK_ROBOT", + "multicurlcffi,multirequests,multihttpx,aio")) -def import_robot(robot_name): - exec "from Robots import bkmk_r%s" % robot_name - exec "robot = bkmk_r%s.robot_%s" % (robot_name, robot_name) - return robot -robot = import_robot(robot_name) -set_params(robot, robot_params) +def import_robot(robot_name): + ns = locals() + exec("from Robots import bkmk_r%s" % robot_name, globals(), ns) + exec("robot = bkmk_r%s.robot_%s" % (robot_name, robot_name), globals(), ns) + return ns['robot'] + + +for robot_name in robot_names.split(','): + try: + robot = import_robot(robot_name) + except ImportError: + pass + else: + set_params(robot, robot_params) + break +else: + raise ValueError("No robot found, tried " + robot_names)