fix: 历史记录加载方法优化
This commit is contained in:
@@ -33,7 +33,7 @@ import sys
|
||||
import shutil
|
||||
import re
|
||||
import base64
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime, timedelta, date
|
||||
from collections import defaultdict
|
||||
from pathlib import Path
|
||||
from qfluentwidgets import (
|
||||
@@ -606,7 +606,7 @@ class MaaUserConfig(QConfig):
|
||||
|
||||
class AppConfig(GlobalConfig):
|
||||
|
||||
VERSION = "4.3.4.4"
|
||||
VERSION = "4.3.4.5"
|
||||
|
||||
gameid_refreshed = Signal()
|
||||
PASSWORD_refreshed = Signal()
|
||||
@@ -752,7 +752,7 @@ class AppConfig(GlobalConfig):
|
||||
]
|
||||
|
||||
# 生成本日关卡信息
|
||||
days = datetime.strptime(self.server_date(), "%Y-%m-%d").isoweekday()
|
||||
days = self.server_date().isoweekday()
|
||||
|
||||
gameid_list = [
|
||||
{"value": "-", "text": "当前/上次", "days": [1, 2, 3, 4, 5, 6, 7]},
|
||||
@@ -787,13 +787,13 @@ class AppConfig(GlobalConfig):
|
||||
|
||||
self.gameid_refreshed.emit()
|
||||
|
||||
def server_date(self) -> str:
|
||||
def server_date(self) -> date:
|
||||
"""获取当前的服务器日期"""
|
||||
|
||||
dt = datetime.now()
|
||||
if dt.time() < datetime.min.time().replace(hour=4):
|
||||
dt = dt - timedelta(days=1)
|
||||
return dt.strftime("%Y-%m-%d")
|
||||
return dt.date()
|
||||
|
||||
def check_data(self) -> None:
|
||||
"""检查用户数据文件并处理数据文件版本更新"""
|
||||
@@ -1478,9 +1478,21 @@ class AppConfig(GlobalConfig):
|
||||
info: Dict[str, Dict[str, Union[int, dict]]] = json.load(f)
|
||||
|
||||
data = {}
|
||||
# 4点前的记录放在当日最后
|
||||
sorted_maa_result = sorted(
|
||||
info["maa_result"].items(),
|
||||
key=lambda x: (
|
||||
(
|
||||
1
|
||||
if datetime.strptime(x[0], "%H:%M:%S").time()
|
||||
< datetime.min.time().replace(hour=4)
|
||||
else 0
|
||||
),
|
||||
datetime.strptime(x[0], "%H:%M:%S"),
|
||||
),
|
||||
)
|
||||
data["条目索引"] = [
|
||||
[k, "完成" if v == "Success!" else "异常"]
|
||||
for k, v in info["maa_result"].items()
|
||||
[k, "完成" if v == "Success!" else "异常"] for k, v in sorted_maa_result
|
||||
]
|
||||
data["条目索引"].insert(0, ["数据总览", "运行"])
|
||||
data["统计数据"] = {"公招统计": list(info["recruit_statistics"].items())}
|
||||
|
||||
@@ -112,7 +112,7 @@ class MaaManager(QObject):
|
||||
def run(self):
|
||||
"""主进程,运行MAA代理进程"""
|
||||
|
||||
curdate = Config.server_date()
|
||||
curdate = Config.server_date().strftime("%Y-%m-%d")
|
||||
begin_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
self.configure()
|
||||
|
||||
@@ -26,7 +26,7 @@ v4.3
|
||||
"""
|
||||
|
||||
from loguru import logger
|
||||
from PySide6.QtWidgets import QWidget
|
||||
from PySide6.QtWidgets import QApplication, QWidget
|
||||
import sys
|
||||
import ctypes
|
||||
import win32gui
|
||||
@@ -113,6 +113,7 @@ class _SystemHandler:
|
||||
elif mode == "KillSelf":
|
||||
|
||||
self.main_window.close()
|
||||
QApplication.quit()
|
||||
|
||||
elif sys.platform.startswith("linux"):
|
||||
|
||||
@@ -138,6 +139,7 @@ class _SystemHandler:
|
||||
elif mode == "KillSelf":
|
||||
|
||||
self.main_window.close()
|
||||
QApplication.quit()
|
||||
|
||||
def is_startup(self) -> bool:
|
||||
"""判断程序是否已经开机自启"""
|
||||
|
||||
@@ -543,7 +543,7 @@ class UserLableSettingCard(SettingCard):
|
||||
text_list.append("未通过人工排查")
|
||||
text_list.append(
|
||||
f"今日已代理{self.qconfig.get(self.configItems["ProxyTimes"])}次"
|
||||
if Config.server_date()
|
||||
if Config.server_date().strftime("%Y-%m-%d")
|
||||
== self.qconfig.get(self.configItems["LastProxyDate"])
|
||||
else "今日未进行代理"
|
||||
)
|
||||
@@ -553,7 +553,7 @@ class UserLableSettingCard(SettingCard):
|
||||
self.qconfig.get(self.configItems["LastAnnihilationDate"]),
|
||||
"%Y-%m-%d",
|
||||
).isocalendar()[:2]
|
||||
== datetime.strptime(Config.server_date(), "%Y-%m-%d").isocalendar()[:2]
|
||||
== Config.server_date().isocalendar()[:2]
|
||||
else "本周剿灭未完成"
|
||||
)
|
||||
|
||||
|
||||
@@ -38,9 +38,14 @@ from qfluentwidgets import (
|
||||
PushButton,
|
||||
ExpandGroupSettingCard,
|
||||
TextBrowser,
|
||||
CardWidget,
|
||||
ComboBox,
|
||||
ZhDatePicker,
|
||||
SubtitleLabel,
|
||||
)
|
||||
from PySide6.QtCore import Signal
|
||||
from PySide6.QtCore import Signal, QDate
|
||||
import os
|
||||
from datetime import datetime
|
||||
from functools import partial
|
||||
from pathlib import Path
|
||||
from typing import List
|
||||
@@ -58,20 +63,22 @@ class History(QWidget):
|
||||
|
||||
content_widget = QWidget()
|
||||
self.content_layout = QVBoxLayout(content_widget)
|
||||
self.history_top_bar = self.HistoryTopBar(self)
|
||||
|
||||
self.history_top_bar.search_history.connect(self.reload_history)
|
||||
|
||||
scrollArea = ScrollArea()
|
||||
scrollArea.setWidgetResizable(True)
|
||||
scrollArea.setWidget(content_widget)
|
||||
layout = QVBoxLayout()
|
||||
layout.addWidget(self.history_top_bar)
|
||||
layout.addWidget(scrollArea)
|
||||
self.setLayout(layout)
|
||||
|
||||
self.history_card_list = []
|
||||
|
||||
self.refresh()
|
||||
|
||||
def refresh(self):
|
||||
"""刷新脚本实例界面"""
|
||||
def reload_history(self, start_date: QDate, end_date: QDate, mode: str) -> None:
|
||||
"""加载历史记录界面"""
|
||||
|
||||
while self.content_layout.count() > 0:
|
||||
item = self.content_layout.takeAt(0)
|
||||
@@ -84,13 +91,61 @@ class History(QWidget):
|
||||
|
||||
history_dict = Config.search_history()
|
||||
|
||||
for date, user_list in history_dict.items():
|
||||
selected_history = filter(
|
||||
lambda item: datetime(
|
||||
start_date.year(), start_date.month(), start_date.day()
|
||||
)
|
||||
<= datetime.strptime(item[0], "%Y年 %m月 %d日")
|
||||
<= datetime(end_date.year(), end_date.month(), end_date.day()),
|
||||
history_dict.items(),
|
||||
)
|
||||
for date, user_list in selected_history:
|
||||
|
||||
self.history_card_list.append(HistoryCard(date, user_list, self))
|
||||
self.content_layout.addWidget(self.history_card_list[-1])
|
||||
|
||||
self.content_layout.addStretch(1)
|
||||
|
||||
class HistoryTopBar(CardWidget):
|
||||
"""历史记录顶部工具栏"""
|
||||
|
||||
search_history = Signal(QDate, QDate, str)
|
||||
|
||||
def __init__(self, parent=None, name: str = None):
|
||||
super().__init__(parent)
|
||||
|
||||
Layout = QHBoxLayout(self)
|
||||
|
||||
self.lable_1 = SubtitleLabel("查询范围:")
|
||||
self.start_date = ZhDatePicker()
|
||||
self.start_date.setDate(QDate(2019, 5, 1))
|
||||
self.lable_2 = SubtitleLabel("→")
|
||||
self.end_date = ZhDatePicker()
|
||||
server_date = Config.server_date()
|
||||
self.end_date.setDate(
|
||||
QDate(server_date.year, server_date.month, server_date.day)
|
||||
)
|
||||
self.mode = ComboBox()
|
||||
self.mode.setPlaceholderText("请选择查询模式")
|
||||
self.mode.addItems(["按日期分类"])
|
||||
|
||||
self.button = PushButton(FluentIcon.SEARCH, "查询")
|
||||
self.button.clicked.connect(
|
||||
lambda: self.search_history.emit(
|
||||
self.start_date.getDate(),
|
||||
self.end_date.getDate(),
|
||||
self.mode.currentText(),
|
||||
)
|
||||
)
|
||||
|
||||
Layout.addWidget(self.lable_1)
|
||||
Layout.addWidget(self.start_date)
|
||||
Layout.addWidget(self.lable_2)
|
||||
Layout.addWidget(self.end_date)
|
||||
Layout.addWidget(self.mode)
|
||||
Layout.addStretch(1)
|
||||
Layout.addWidget(self.button)
|
||||
|
||||
|
||||
class HistoryCard(ExpandGroupSettingCard):
|
||||
|
||||
|
||||
@@ -140,9 +140,6 @@ class AUTO_MAA(MSFluentWindow):
|
||||
self.dispatch_center.update_top_bar() if index == 3 else None
|
||||
)
|
||||
)
|
||||
self.stackedWidget.currentChanged.connect(
|
||||
lambda index: (self.history.refresh() if index == 4 else None)
|
||||
)
|
||||
|
||||
# 创建系统托盘及其菜单
|
||||
self.tray = QSystemTrayIcon(
|
||||
@@ -324,7 +321,7 @@ class AUTO_MAA(MSFluentWindow):
|
||||
logger.info("自动添加任务:调度队列_1")
|
||||
TaskManager.add_task(
|
||||
"自动代理_主调度台",
|
||||
"主任务队列",
|
||||
"调度队列_1",
|
||||
Config.queue_dict["调度队列_1"]["Config"].toDict(),
|
||||
)
|
||||
|
||||
@@ -332,7 +329,7 @@ class AUTO_MAA(MSFluentWindow):
|
||||
|
||||
logger.info("自动添加任务:脚本_1")
|
||||
TaskManager.add_task(
|
||||
"自动代理_主调度台", "主任务队列", {"Queue": {"Member_1": "脚本_1"}}
|
||||
"自动代理_主调度台", "自定义队列", {"Queue": {"Member_1": "脚本_1"}}
|
||||
)
|
||||
|
||||
else:
|
||||
|
||||
@@ -1099,7 +1099,7 @@ class MemberManager(QWidget):
|
||||
text_list.append("未通过人工排查")
|
||||
text_list.append(
|
||||
f"今日已代理{config.get(config.Data_ProxyTimes)}次"
|
||||
if Config.server_date()
|
||||
if Config.server_date().strftime("%Y-%m-%d")
|
||||
== config.get(config.Data_LastProxyDate)
|
||||
else "今日未进行代理"
|
||||
)
|
||||
@@ -1109,9 +1109,7 @@ class MemberManager(QWidget):
|
||||
config.get(config.Data_LastAnnihilationDate),
|
||||
"%Y-%m-%d",
|
||||
).isocalendar()[:2]
|
||||
== datetime.strptime(
|
||||
Config.server_date(), "%Y-%m-%d"
|
||||
).isocalendar()[:2]
|
||||
== Config.server_date().isocalendar()[:2]
|
||||
else "本周剿灭未完成"
|
||||
)
|
||||
|
||||
|
||||
2
main.py
2
main.py
@@ -27,7 +27,6 @@ v4.3
|
||||
|
||||
from loguru import logger
|
||||
from PySide6.QtWidgets import QApplication
|
||||
from PySide6.QtCore import Qt
|
||||
from qfluentwidgets import FluentTranslator
|
||||
import sys
|
||||
|
||||
@@ -36,7 +35,6 @@ import sys
|
||||
def main():
|
||||
|
||||
application = QApplication(sys.argv)
|
||||
QApplication.setAttribute(Qt.AA_DontCreateNativeWidgetSiblings)
|
||||
|
||||
translator = FluentTranslator()
|
||||
application.installTranslator(translator)
|
||||
|
||||
@@ -1,8 +1,17 @@
|
||||
{
|
||||
"main_version": "4.3.4.4",
|
||||
"main_version": "4.3.4.5",
|
||||
"updater_version": "1.0.0.0",
|
||||
"announcement": "\n## 新增功能\n- 屏蔽MuMu模拟器开屏广告功能上线\n- 更新器支持多线程下载\n- 添加强制关闭ADB与模拟器等增强任务项\n## 修复BUG\n- 修复统计信息HTML模板公招匹配错误\n- 修复密码显示按钮动画异常\n- 修复`检测到MAA未能实际执行任务`报错被异常屏蔽\n- 修复MAA超时判定异常失效\n## 程序优化\n- 关机等电源操作添加100s倒计时\n- 人工排查弹窗方法优化\n- 人工排查时自动屏蔽静默操作\n- 公告样式优化",
|
||||
"version_info": {
|
||||
"4.3.4.5": {
|
||||
"修复BUG": [
|
||||
"修复启动时运行主任务的历史记录与完成后任务异常"
|
||||
],
|
||||
"程序优化": [
|
||||
"历史记录转为自行搜索",
|
||||
"历史记录时间条目排序规则优化"
|
||||
]
|
||||
},
|
||||
"4.3.4.4": {
|
||||
"修复BUG": [
|
||||
"修复更新时主程序退出不彻底"
|
||||
|
||||
Reference in New Issue
Block a user