代码拉取完成,页面将自动刷新
同步操作将从 thor.lee/rpa 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
from runtime.load import load_scripts
from runtime.task import TaskScheduler
from lib import excel
from lib.log import logger
import os
import time
class RPA(object):
def __init__(self, script_dir=None) -> None:
super().__init__()
if script_dir is None:
script_dir = os.path.join(os.getcwd(), "scripts")
flow_cls = load_scripts(script_dir)
self.scheduler = TaskScheduler(flow_cls)
def list_flow(self):
group_map = {}
for script_def in self.scheduler.scripts:
group_name = script_def.group
if group_name not in group_map:
group_map[group_name] = {
"title": group_name, "flows": []
}
d = script_def.to_dict()
del d["cls"]
del d["func"]
group_map[group_name]["flows"].append(d)
return list(group_map.values())
def submit_flow(self, flow_name, flow_args, execute_time=None):
"""
flow_name = 流程的唯一名称
flow_args = 流程的执行参数
execute_time = 定时执行时间, 秒为单位的时间戳
"""
if execute_time is not None:
if execute_time < time.time():
logger.error("定时执行时间不能早于当前时间")
return "FAIL"
#如果是设置位定时执行的任务,需要提前先执行precheck方法确保输入的参数都是正确的
script = list(filter(lambda x: str(x.name) == flow_name, self.scheduler.scripts))[0]
if script.cls:
flow = script.cls(**flow_args)
flow.precheck()
self.scheduler.submit(flow_name, flow_args, execute_time)
return "OK"
def list_user(self):
return excel.loads2dict("c:\\rpa\\账号.xlsx")
def get_password(self, uid):
users = excel.loads2dict("c:\\rpa\\账号.xlsx")
user = list(filter(lambda x: f'{x["序号"]}' == f"{uid}", users))[0]
return user["密码"]
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。