def run(cfg): _show_head_line("开始核心逻辑") start_time = datetime.datetime.now() if cfg.common.enable_multiprocessing: logger.info(f"已开启多进程模式({cfg.get_pool_size()}),将并行运行~") get_pool().starmap( do_run, [ (_idx + 1, account_config, cfg.common) for _idx, account_config in enumerate(cfg.account_configs) if account_config.is_enabled() ], ) else: for idx, account_config in enumerate(cfg.account_configs): idx += 1 if not account_config.is_enabled(): logger.info(f"第{idx}个账号({account_config.name})未启用,将跳过") continue do_run(idx, account_config, cfg.common) used_time = datetime.datetime.now() - start_time _show_head_line(f"处理总计{len(cfg.account_configs)}个账户 共耗时 {used_time}")
def check_all_skey_and_pskey(cfg): if not has_any_account_in_normal_run(cfg): return _show_head_line("启动时检查各账号skey/pskey/openid是否过期") QQLogin(cfg.common).check_and_download_chrome_ahead() if cfg.common.enable_multiprocessing and cfg.is_all_account_auto_login(): logger.info(color("bold_yellow") + f"已开启多进程模式({cfg.get_pool_size()}),并检测到所有账号均使用自动登录模式,将开启并行登录模式") get_pool().starmap( do_check_all_skey_and_pskey, [ (_idx + 1, account_config, cfg.common) for _idx, account_config in enumerate(cfg.account_configs) if account_config.is_enabled() ], ) logger.info("全部账号检查完毕") else: for _idx, account_config in enumerate(cfg.account_configs): idx = _idx + 1 if not account_config.is_enabled(): # 未启用的账户的账户不走该流程 continue do_check_all_skey_and_pskey(idx, account_config, cfg.common)
def do_run(idx: int, account_config: AccountConfig, common_config: CommonConfig): _show_head_line(f"开始处理第{idx}个账户({account_config.name})") start_time = datetime.datetime.now() djcHelper = DjcHelper(account_config, common_config) djcHelper.check_skey_expired() djcHelper.get_bind_role_list() djcHelper.ark_lottery() used_time = datetime.datetime.now() - start_time _show_head_line(f"处理第{idx}个账户({account_config.name}) 共耗时 {used_time}")
def run(cfg): _show_head_line("开始核心逻辑") for idx, account_config in enumerate(cfg.account_configs): idx += 1 if not account_config.is_enabled(): logger.info(f"第{idx}个账号({account_config.name})未启用,将跳过") continue _show_head_line(f"开始处理第{idx}个账户({account_config.name})") djcHelper = DjcHelper(account_config, cfg.common) djcHelper.check_skey_expired() djcHelper.get_bind_role_list() djcHelper.ark_lottery()
def check_all_skey_and_pskey(cfg): if not has_any_account_in_normal_run(cfg): return _show_head_line("启动时检查各账号skey/pskey/openid是否过期") for _idx, account_config in enumerate(cfg.account_configs): idx = _idx + 1 if not account_config.is_enabled(): # 未启用的账户的账户不走该流程 continue logger.warning(color("fg_bold_yellow") + f"------------检查第{idx}个账户({account_config.name})------------") djcHelper = DjcHelper(account_config, cfg.common) djcHelper.fetch_pskey() djcHelper.check_skey_expired() djcHelper.get_bind_role_list(print_warning=False)