]> git.phdru.name Git - bookmarks_db.git/blob - robots.py
Remove robots based on Twisted
[bookmarks_db.git] / robots.py
1 """Thin wrapper for module Robots. Provides "default" robot
2
3 This file is a part of Bookmarks database and Internet robot.
4
5 """
6
7 __author__ = "Oleg Broytman <phd@phdru.name>"
8 __copyright__ = "Copyright (C) 1997-2025 PhiloSoft Design"
9 __license__ = "GNU GPL"
10
11 __all__ = ['import_robot', 'robot']
12
13
14 from os import environ
15 from bkmk_objects import parse_params, set_params
16
17 robot_names, robot_params = parse_params(
18     environ.get("BKMK_ROBOT",
19                 "multicurlcffi,multirequests,multihttpx,aio"))
20
21
22 def import_robot(robot_name):
23     ns = locals()
24     exec("from Robots import bkmk_r%s" % robot_name, globals(), ns)
25     exec("robot = bkmk_r%s.robot_%s" % (robot_name, robot_name), globals(), ns)
26     return ns['robot']
27
28
29 for robot_name in robot_names.split(','):
30     try:
31         robot = import_robot(robot_name)
32     except ImportError:
33         pass
34     else:
35         set_params(robot, robot_params)
36         break
37 else:
38     raise ValueError("No robot found, tried " + robot_names)