import time from typing import Dict, List, Any from config import ConfigManager from login_manager import LoginManager from logger_config import global_logger as logger class AutoLoginApp: """ 自动登录应用主类 """ def __init__(self): """ 初始化自动登录应用 """ self.config_manager = ConfigManager() self.login_manager = LoginManager() def run(self): """ 运行自动登录应用 """ logger.info("===== 自动登录应用启动 =====") # 直接调用LoginManager的run函数处理所有网站 self.login_manager.run() # 从配置管理器直接获取duration参数 duration = self.login_manager.get_duration() logger.info(f"延时 {duration} 秒后获取所有页面cookies") time.sleep(duration) # 调用save_cookies函数获取并保存所有网站的cookies到config.json try: all_cookies = self.login_manager.save_cookies() logger.info(f"成功获取并保存 {len(all_cookies)} 个网站的cookies到config.json文件") except Exception as e: logger.error(f"获取或保存cookies时发生错误: {e}") logger.info("===== 所有网站处理完成 =====") # 从配置管理器直接获取AutoQuit配置并关闭浏览器 auto_quit = self.config_manager.load_config().get('AutoQuit', False) if auto_quit: try: self.login_manager.close(True) # 直接传入True表示关闭浏览器 logger.info("已关闭浏览器") except Exception as e: logger.error(f"关闭浏览器时发生错误: {e}") else: logger.info("浏览器保持打开状态") # 不再需要返回auto_quit值,因为它已经在方法内部使用 if __name__ == "__main__": app = AutoLoginApp() try: app.run() except KeyboardInterrupt: logger.info("程序被用户中断") except Exception as e: logger.error(f"程序运行时发生错误: {e}")