commit 8724c545a8af8f34565aa71620e66cbd71547f37 Author: DLmaster <DLmaster_361@163.com> Date: Fri Apr 11 18:08:28 2025 +0800 feat(core): 预接入mirrorc commit d57ebaa281ff7c418aa8f11fe8e8ba260d8dbeca Author: DLmaster <DLmaster_361@163.com> Date: Thu Apr 10 12:37:26 2025 +0800 chore(core): 基础配置相关内容重构 - 添加理智药设置选项 #34 - 输入对话框添加回车键确认能力 #35 - 用户列表UI改版升级 - 配置类取消单例限制 - 配置读取方式与界面渲染方法优化 commit 710542287d04719c8443b91acb227de1dccc20d0 Author: DLmaster <DLmaster_361@163.com> Date: Fri Mar 28 23:32:17 2025 +0800 chore(core): search相关结构重整 commit 8009c69236655e29119ce62ff53a0360abaed2af Merge:648f42b9f88f92Author: DLmaster <DLmaster_361@163.com> Date: Mon Mar 24 15:31:40 2025 +0800 Merge branch 'dev' into user_list_dev
116 lines
3.5 KiB
Python
116 lines
3.5 KiB
Python
# <AUTO_MAA:A MAA Multi Account Management and Automation Tool>
|
||
# Copyright © <2024> <DLmaster361>
|
||
|
||
# This file is part of AUTO_MAA.
|
||
|
||
# AUTO_MAA is free software: you can redistribute it and/or modify
|
||
# it under the terms of the GNU General Public License as published
|
||
# by the Free Software Foundation, either version 3 of the License,
|
||
# or (at your option) any later version.
|
||
|
||
# AUTO_MAA is distributed in the hope that it will be useful,
|
||
# but WITHOUT ANY WARRANTY; without even the implied warranty
|
||
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
|
||
# the GNU General Public License for more details.
|
||
|
||
# You should have received a copy of the GNU General Public License
|
||
# along with AUTO_MAA. If not, see <https://www.gnu.org/licenses/>.
|
||
|
||
# DLmaster_361@163.com
|
||
|
||
"""
|
||
AUTO_MAA
|
||
AUTO_MAA主业务定时器
|
||
v4.2
|
||
作者:DLmaster_361
|
||
"""
|
||
|
||
from loguru import logger
|
||
from PySide6.QtWidgets import QWidget
|
||
from PySide6.QtCore import QTimer
|
||
from datetime import datetime
|
||
import pyautogui
|
||
|
||
from .config import Config
|
||
from .task_manager import TaskManager
|
||
from app.services import System
|
||
|
||
|
||
class _MainTimer(QWidget):
|
||
|
||
def __init__(self, parent=None):
|
||
super().__init__(parent)
|
||
|
||
self.if_FailSafeException = False
|
||
|
||
self.Timer = QTimer()
|
||
self.Timer.timeout.connect(self.timed_start)
|
||
self.Timer.timeout.connect(self.set_silence)
|
||
self.Timer.start(1000)
|
||
self.LongTimer = QTimer()
|
||
self.LongTimer.timeout.connect(self.long_timed_task)
|
||
self.LongTimer.start(3600000)
|
||
|
||
def long_timed_task(self):
|
||
"""长时间定期检定任务"""
|
||
|
||
Config.get_gameid("ALL")
|
||
|
||
def timed_start(self):
|
||
"""定时启动代理任务"""
|
||
|
||
for name, info in Config.queue_dict.items():
|
||
|
||
if not info["Config"].get(info["Config"].queueSet_Enabled):
|
||
continue
|
||
|
||
history = Config.get_history(name)
|
||
|
||
data = info["Config"].toDict()
|
||
|
||
time_set = [
|
||
data["Time"][f"TimeSet_{_}"]
|
||
for _ in range(10)
|
||
if data["Time"][f"TimeEnabled_{_}"]
|
||
]
|
||
# 按时间调起代理任务
|
||
curtime = datetime.now().strftime("%Y-%m-%d %H:%M")
|
||
if (
|
||
curtime[11:16] in time_set
|
||
and curtime != history["Time"][:16]
|
||
and name not in Config.running_list
|
||
):
|
||
|
||
logger.info(f"定时任务:{name}")
|
||
TaskManager.add_task("自动代理_新调度台", name, data)
|
||
|
||
def set_silence(self):
|
||
"""设置静默模式"""
|
||
|
||
if (
|
||
not Config.if_ignore_silence
|
||
and Config.get(Config.function_IfSilence)
|
||
and Config.get(Config.function_BossKey) != ""
|
||
):
|
||
|
||
windows = System.get_window_info()
|
||
if any(
|
||
str(emulator_path) in window
|
||
for window in windows
|
||
for emulator_path in Config.silence_list
|
||
):
|
||
try:
|
||
pyautogui.hotkey(
|
||
*[
|
||
_.strip().lower()
|
||
for _ in Config.get(Config.function_BossKey).split("+")
|
||
]
|
||
)
|
||
except pyautogui.FailSafeException as e:
|
||
if not self.if_FailSafeException:
|
||
logger.warning(f"FailSafeException: {e}")
|
||
self.if_FailSafeException = True
|
||
|
||
|
||
MainTimer = _MainTimer()
|