From 185efc1f96f25fa00a2c6b6d05f6b372f2440fcb Mon Sep 17 00:00:00 2001 From: Hatanezumi <13630961608@163.com> Date: Fri, 24 Mar 2023 00:44:41 +0800 Subject: [PATCH] v1.0.1 --- src/AutoProcess.py | 3 +- src/__pycache__/AutoProcess.cpython-310.pyc | Bin 2414 -> 2380 bytes src/__pycache__/main.cpython-310.pyc | Bin 15655 -> 16508 bytes src/main.py | 42 +++++++++++++------- ui/MainWindow.py | 14 +++++++ ui/MainWindow.ui | 20 ++++++++++ ui/__pycache__/MainWindow.cpython-310.pyc | Bin 7770 -> 8001 bytes 7 files changed, 63 insertions(+), 16 deletions(-) diff --git a/src/AutoProcess.py b/src/AutoProcess.py index 37a359f..3d7ea82 100644 --- a/src/AutoProcess.py +++ b/src/AutoProcess.py @@ -5,7 +5,6 @@ @Contact : Hatanezumi@chunshengserver.cn ''' import os -import json import requests def get_mods(base_path:str) -> tuple[bool,str|list[str]]: @@ -43,7 +42,7 @@ def get_cloud(path:str, target, arg): if req.status_code != 200: target(arg,False,"返回值为:{}".format(req.status_code)) return - res = json.loads(req.content) + res = req.content target(arg,True,res) except Exception as err: target(arg,False,err) \ No newline at end of file diff --git a/src/__pycache__/AutoProcess.cpython-310.pyc b/src/__pycache__/AutoProcess.cpython-310.pyc index 118e38ab745e331b94f89e91d6f6fefa960413be..82e1e836eae26cc2ed21a7dcd4f3dc1992538b82 100644 GIT binary patch delta 308 zcmXwzF-yci5QTSUH=E6R$w?6L9ms_u_H?Ch*D8N`cmZ~g-jTy|0%*hLQ_PR2}3hZmPjp%*+mbx5klXg+*oR4rOs3X4U%fqRDw9- z(g#9`ad5ir+hz~6KQ@`aGP|3r{5P8CgnfW9BXV3jNggJ!Yylw?yL`fB7;qgjmc7h<71| z8SpWRtkYSdvjmD(Bxt{LdlCCC@lqDkyAoDw1!Q zN4&+>gJHvK?3@jrCf@*ozU8k_(kE6Q=Jkh_Lg9H2-$6eJS4UzDEBaB~Lq#7s2V!In z9#-{>Q(GP2ot;}9F@X!rA?JiSURl5n%||VUY~Y-4YmiNldS6CG?DW&#)b6Io)Ym=P z+*&hH{jwPxJktvxpa>xZun2O*f3mt+trwvUGmVN;<4@_+U diff --git a/src/__pycache__/main.cpython-310.pyc b/src/__pycache__/main.cpython-310.pyc index 2697115cd710daa8209b0321f934953dd3a55d50..3e1a49f61fbf784e4e6e24f6fafc2ff52e96917b 100644 GIT binary patch delta 5764 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 bAMQiB;#Oq0+2Jm5;jcjUdVF0{D%boUffiMD delta 5015 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 diff --git a/src/main.py b/src/main.py index 9cc5869..a2d516f 100644 --- a/src/main.py +++ b/src/main.py @@ -6,6 +6,7 @@ ''' import os import sys +import json import py7zr import requests import webbrowser @@ -14,6 +15,7 @@ from PySide6.QtCore import Qt, QStringListModel, Signal, QObject from PySide6.QtGui import QColor,QIcon, QTextCursor from ui.MainWindow import Ui_MainWindow from threading import Thread +import ctypes.wintypes from src import AutoProcess #常量 @@ -22,6 +24,7 @@ REFRESH = 101 GETMODS = 200 GETMODINFO = 201 GETNEWVERSION = 202 +GETUPDATELOG = 203 GETOTHER = 210 INFO = 300 WARNING = 301 @@ -37,6 +40,7 @@ class CustomizeSingals(QObject): download_err = Signal(Exception) set_new_version = Signal(str) get_new_version_err = Signal(str) + set_plainTextEdit_updatelog = Signal(str) class Process(): @staticmethod def set_comboBox(comboBox:QComboBox, texts:list): @@ -56,12 +60,15 @@ class Process(): singals.set_Status_Tip.connect(window.set_Status_Tip) singals.set_new_version.connect(window.set_new_version) singals.get_new_version_err.connect(window.get_new_version_err) + singals.set_plainTextEdit_updatelog.connect(window.set_plainTextEdit_updatelog) if not state: if mode == INIT: if source == GETMODS: singals.set_Status_Tip.emit('获取云AR信息失败:{}'.format(res)) elif source == GETNEWVERSION: singals.get_new_version_err.emit(res) + elif source == GETUPDATELOG: + singals.set_plainTextEdit_updatelog.emit('获取更新日志失败:{}'.format(res)) return elif mode == REFRESH: if source == GETMODS: @@ -69,11 +76,13 @@ class Process(): elif source == GETMODINFO: singals.message_box.emit(WARNING,'出现错误',"获取mod信息失败:{}".format(res),QMessageBox.Ok,QMessageBox.Ok) if source == GETMODS: - singals.set_listView_Network.emit(res) + singals.set_listView_Network.emit(json.loads(res)) elif source == GETMODINFO: - singals.set_network_page.emit(res) + singals.set_network_page.emit(json.loads(res)) elif source == GETNEWVERSION: - singals.set_new_version.emit(res['version']) + singals.set_new_version.emit(json.loads(res)['version']) + elif source == GETUPDATELOG: + singals.set_plainTextEdit_updatelog.emit(res.decode()) except Exception as err: singals.message_box.emit((WARNING,'出现错误',"获取信息失败:{}".format(err),QMessageBox.Ok,QMessageBox.Ok)) @staticmethod @@ -130,7 +139,16 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.listView_local_qsl = QStringListModel() self.listView_Network_qsl = QStringListModel() self.fileDialog = QFileDialog(self) - self.base_mod_path = os.path.join(os.path.splitdrive(os.environ['systemroot'])[0],os.environ['homepath'],'Documents','Red Alert 3','Mods') + try: + buf = ctypes.create_unicode_buffer(ctypes.wintypes.MAX_PATH) + ctypes.windll.shell32.SHGetFolderPathW(None, 5, None, 0, buf) + if buf == '': + raise Exception('目录获取失败') + self.documents_path = buf.value + except: + self.base_mod_path = os.path.join(os.path.splitdrive(os.environ['systemroot'])[0],os.environ['homepath'],'Documents','Red Alert 3','Mods') + else: + self.base_mod_path = os.path.join(self.documents_path,'Red Alert 3','Mods') self.cloud_mods = {} self.cloud_mod_source = (None,{}) self.isdownloading = False @@ -154,18 +172,12 @@ class MainWindow(QMainWindow, Ui_MainWindow): #获取更新信息 t = Thread(target=AutoProcess.get_cloud,args=('https://www.chunshengserver.cn/files/RA3mods/RA3_affiliated_mod_downloader.json',Process.get_cloud_data,(self,INIT,GETNEWVERSION)),daemon=True) t.start() + #获取更新日志 + t = Thread(target=AutoProcess.get_cloud,args=('https://www.chunshengserver.cn/files/RA3mods/更新日志.txt',Process.get_cloud_data,(self,INIT,GETUPDATELOG)),daemon=True) + t.start() def __comboBox_mods_changed(self): if self.mods[0] is False: return - # currentText = self.comboBox_mods.currentText()#为了保证数据安全采用字符串匹配的方式 - # find = False - # for mod_path in self.mods[1]: - # if os.path.split(mod_path)[1].removesuffix('.skudef') == currentText: - # self.select_mod = mod_path - # find = True - # break - # if find is False: - # return #显示本地列表内容 currentIndex = self.comboBox_mods.currentIndex()#因为有重复的名称,所以采用索引匹配 mod_path = self.mods[1][currentIndex] @@ -313,7 +325,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.progressBar_Download.setValue(value) def download_finished(self,path:str): self.isdownloading = False - self.progressBar_Download.value(0) + self.progressBar_Download.setValue(0) select = QMessageBox.information(self,'下载成功','下载成功,是否自动解压?',QMessageBox.Ok|QMessageBox.Cancel,QMessageBox.Cancel) if select == QMessageBox.Ok: try: @@ -337,6 +349,8 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.label_about_newverison.setText("最新版本:连接到纯世蜉生失败,原因:{}".format(err)) def __on_pushButton_release_clicked(self): webbrowser.open('https://cloud.armorrush.com/Hatanezumi/RA3_affiliated_mod_downloader/releases') + def set_plainTextEdit_updatelog(self,text:str): + self.plainTextEdit_updatelog.setPlainText(text) def init(): app = QApplication(sys.argv) main_window = MainWindow() diff --git a/ui/MainWindow.py b/ui/MainWindow.py index 7271d81..a13eadb 100644 --- a/ui/MainWindow.py +++ b/ui/MainWindow.py @@ -200,6 +200,7 @@ class Ui_MainWindow(object): self.plainTextEdit_introduce = QPlainTextEdit(self.tab_Network) self.plainTextEdit_introduce.setObjectName(u"plainTextEdit_introduce") self.plainTextEdit_introduce.setLineWrapMode(QPlainTextEdit.NoWrap) + self.plainTextEdit_introduce.setReadOnly(True) self.horizontalLayout_3.addWidget(self.plainTextEdit_introduce) @@ -312,6 +313,18 @@ class Ui_MainWindow(object): self.verticalLayout_10.addWidget(self.label_about_newverison) + self.label_updatelog = QLabel(self.tab_about) + self.label_updatelog.setObjectName(u"label_updatelog") + + self.verticalLayout_10.addWidget(self.label_updatelog) + + self.plainTextEdit_updatelog = QPlainTextEdit(self.tab_about) + self.plainTextEdit_updatelog.setObjectName(u"plainTextEdit_updatelog") + self.plainTextEdit_updatelog.setLineWrapMode(QPlainTextEdit.NoWrap) + self.plainTextEdit_updatelog.setReadOnly(True) + + self.verticalLayout_10.addWidget(self.plainTextEdit_updatelog) + self.pushButton_release = QPushButton(self.tab_about) self.pushButton_release.setObjectName(u"pushButton_release") @@ -368,6 +381,7 @@ class Ui_MainWindow(object): self.label_about_contact.setText(QCoreApplication.translate("MainWindow", u"\u8054\u7cfb:Hatanezumi@chunshengserver.cn", None)) self.label_about_verison.setText(QCoreApplication.translate("MainWindow", u"\u5f53\u524d\u7248\u672c:", None)) self.label_about_newverison.setText(QCoreApplication.translate("MainWindow", u"\u6700\u65b0\u7248\u672c:", None)) + self.label_updatelog.setText(QCoreApplication.translate("MainWindow", u"\u66f4\u65b0\u65e5\u5fd7:", None)) self.pushButton_release.setText(QCoreApplication.translate("MainWindow", u"\u53d1\u5e03\u9875", None)) self.tabWidget_Main.setTabText(self.tabWidget_Main.indexOf(self.tab_about), QCoreApplication.translate("MainWindow", u"\u5173\u4e8e", None)) #if QT_CONFIG(statustip) diff --git a/ui/MainWindow.ui b/ui/MainWindow.ui index 4074d97..caab5f8 100644 --- a/ui/MainWindow.ui +++ b/ui/MainWindow.ui @@ -241,6 +241,9 @@ QPlainTextEdit::NoWrap + + true + @@ -372,6 +375,23 @@ + + + + 更新日志: + + + + + + + QPlainTextEdit::NoWrap + + + true + + + diff --git a/ui/__pycache__/MainWindow.cpython-310.pyc b/ui/__pycache__/MainWindow.cpython-310.pyc index 93af9f956d5b871fd457a033509d5849f848bd5f..e79f5366f492e2f450ae7cec0f0f47f3b7c8d196 100644 GIT binary patch delta 634 zcmca*bI^`2pO=@50SG$kWKta6Hu4oSGpTWHZf0J}%IdH{Ek$axB4;TxBk$ztJSs^g z_B9My;mwRS4DpFTR^kH26!(RUj0|A5V~Ks16PyRs31!DF;0MWrcqQU+{YgMp5>USf zimIf^+j)!wlYw$9VD%|Aj9}YRfg-6u)t+G0j0@60e2C5k={1ZHRu;#Cj1+6IzRU$# z5YZHdUJhs2E7x5-3hBaZb%EDN4)<&rC^AEh*9g$(2kN5s6~#pPVn^&$wvv zev!9~Jd;<8PG;j_;$h@toNOZI&-h|nm>jg3U;luQtP8Bc04OT~#KoYL#KFM9$WYHv&*QcEpNt-(0K#yH JhRHT^asaX%vXB4( delta 418 zcmX?Tcguz^pO=@50SKD4WKxQpH}VxTGi~AA+|0a`b+ZX)9y6o(pVm?D?Lu#kBn6VQ5wER_Y!Da=qyRTiisvDF}K zu(k4=HKpb-N^t`H{Iq}K(;dw(7j7+O1MylnKiSo%sXqCm^i8%5pg>X4