Files
DailyCheckMac/mw_dailycheck.py
Julian Freeman 8b84f0e09b Squashed commit of the following:
commit da7f17b6e6
Author: Julian Freeman <freemanjulian372@gmail.com>
Date:   Fri Feb 2 20:51:21 2024 -0400

    dev 02022051
2024-02-02 21:06:48 -04:00

102 lines
4.0 KiB
Python

# coding: utf8
import json
from pathlib import Path
from datetime import datetime
from PySide6 import QtWidgets, QtGui, QtCore
from wg_basic import WgBasic
from wg_software import WgSoftware
from wg_extensions import WgExtensions
from global_vars import (
request_content,
accept_warning,
)
class UiMwDailyCheck(object):
def __init__(self, window: QtWidgets.QMainWindow):
self.cw = QtWidgets.QWidget(window)
window.setCentralWidget(self.cw)
self.vly_m = QtWidgets.QVBoxLayout()
self.cw.setLayout(self.vly_m)
self.tw_m = QtWidgets.QTabWidget(self.cw)
self.vly_m.addWidget(self.tw_m)
self.wg_basic = WgBasic(self.cw)
self.wg_software = WgSoftware(self.cw)
self.wg_extensions = WgExtensions(self.cw)
self.tw_m.addTab(self.wg_basic, "基本信息")
self.tw_m.addTab(self.wg_software, "已安装软件")
self.tw_m.addTab(self.wg_extensions, "已安装插件")
self.menu_bar = window.menuBar()
self.menu_help = self.menu_bar.addMenu("帮助")
self.menu_about = self.menu_bar.addMenu("关于")
self.act_update_safe = QtGui.QAction("更新安全标注", window)
self.act_export_unknown = QtGui.QAction("导出未知", window)
self.act_about = QtGui.QAction("关于", window)
self.act_about_qt = QtGui.QAction("关于 Qt", window)
self.menu_help.addActions([self.act_update_safe, self.act_export_unknown])
self.menu_about.addActions([self.act_about, self.act_about_qt])
class MwDailyCheck(QtWidgets.QMainWindow):
def __init__(self, version: tuple, parent=None):
super().__init__(parent)
self.version = version
self.setWindowTitle("日常检查工具")
self.setWindowIcon(QtGui.QIcon(":/images/dailycheck_128.png"))
self.ui = UiMwDailyCheck(self)
self.ui.act_update_safe.triggered.connect(self.on_act_update_safe_triggered)
self.ui.act_export_unknown.triggered.connect(self.on_act_export_unknown_triggered)
self.ui.act_about.triggered.connect(self.on_act_about_triggered)
self.ui.act_about_qt.triggered.connect(self.on_act_about_qt_triggered)
def sizeHint(self):
return QtCore.QSize(800, 600)
def on_act_about_triggered(self):
msg = f"日常检查工具\n\n适用于 MacOS 平台。版本:{self.version[0]}.{self.version[1]}.{self.version[-1]}"
QtWidgets.QMessageBox.about(self, "关于", msg)
def on_act_about_qt_triggered(self):
QtWidgets.QMessageBox.aboutQt(self, "关于 Qt")
def on_act_update_safe_triggered(self):
root_url = "https://julianfreeman.github.io/dailycheckutils"
marks_all = request_content(f"{root_url}/marks_all.json").decode("utf8")
if len(marks_all) == 0:
return
marks_all_d = json.loads(marks_all)
self.ui.wg_software.update_safe(marks_all_d["software_mac"])
self.ui.wg_extensions.update_safe(marks_all_d["extensions"])
self.ui.wg_basic.update_safe(marks_all_d["isp"])
def on_act_export_unknown_triggered(self):
dirname = QtWidgets.QFileDialog.getExistingDirectory(self, "导出未知")
if len(dirname) == 0:
return
now = datetime.strftime(datetime.now(), "%y%m%d%H%M")
ex_file = Path(dirname, f"未知信息{now}.json")
if accept_warning(self, ex_file.exists(), "警告", "文件已存在,确认覆盖吗?"):
return
unknown_software = self.ui.wg_software.export_unknown()
unknown_ext = self.ui.wg_extensions.export_unknown()
unknown_isp_manu = self.ui.wg_basic.export_unknown()
unknown_all = {
"software_mac": unknown_software,
"extensions": unknown_ext,
}
unknown_all.update(unknown_isp_manu)
ex_file.write_text(json.dumps(unknown_all, indent=4, ensure_ascii=False), "utf8")
QtWidgets.QMessageBox.information(self, "提示", f"已导出到 {ex_file}")