From e89844f701a02a3e37e308d162f2be8be78e3a96 Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Tue, 25 Feb 2025 18:57:27 +0300 Subject: [PATCH] Refactor(Robots): Merge `bkmk_rmultirequests` into `concurrent_futures` --- Robots/bkmk_rmultirequests.py | 15 ++------------- Robots/concurrent_futures.py | 22 ++++++++++++++++++---- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/Robots/bkmk_rmultirequests.py b/Robots/bkmk_rmultirequests.py index 3a52b44..d7de8cb 100644 --- a/Robots/bkmk_rmultirequests.py +++ b/Robots/bkmk_rmultirequests.py @@ -6,25 +6,14 @@ This file is a part of Bookmarks database and Internet robot. """ __author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 2024 PhiloSoft Design" +__copyright__ = "Copyright (C) 2024, 2025 PhiloSoft Design" __license__ = "GNU GPL" __all__ = ['robot_multirequests'] from Robots.concurrent_futures import cf_multiprocess -from robots import import_robot, set_params, robot_params class robot_multirequests(cf_multiprocess): - def check_bkmk_task(self): - return check_bookmark_subproc - - -def check_bookmark_subproc(bookmark): - log_lines = [] - robot = import_robot('requests') - set_params(robot, robot_params) - robot.report_checked = False - robot(log_lines.append).check_bookmark(bookmark) - return bookmark, log_lines + robot_name = 'requests' diff --git a/Robots/concurrent_futures.py b/Robots/concurrent_futures.py index b6ab0fb..825379c 100644 --- a/Robots/concurrent_futures.py +++ b/Robots/concurrent_futures.py @@ -5,19 +5,17 @@ This file is a part of Bookmarks database and Internet robot. """ __author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 2024 PhiloSoft Design" +__copyright__ = "Copyright (C) 2024, 2025 PhiloSoft Design" __license__ = "GNU GPL" __all__ = ['concurrent_futures'] -from queue import Queue import concurrent.futures import os -import threading from bkmk_objects import copy_bkmk -from Robots.base import robot_base +from robots import import_robot, set_params, robot_params from Robots.multi_mixin import multi_mixin @@ -88,3 +86,19 @@ class cf_multiprocess(concurrent_futures): async def get_url(self, url, req_headers): raise NotImplementedError( 'This robot does not implement get_url; use non-forking robots.') + + def check_bkmk_task(self): + return check_bookmark_subproc(self.robot_name) + + +class check_bookmark_subproc(object): + def __init__(self, robot_name): + self.robot = robot = import_robot(robot_name) + set_params(robot, robot_params) + + def __call__(self, bookmark): + log_lines = [] + robot = self.robot + robot.report_checked = False + robot(log_lines.append).check_bookmark(bookmark) + return bookmark, log_lines -- 2.39.5