From 5c2cd380eaf0a660eeb6c646b9128c8da6f4f652 Mon Sep 17 00:00:00 2001 From: gfdgd_xi <3025613752@qq.com> Date: Fri, 26 Aug 2022 12:11:34 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E9=87=8A=E5=99=A8=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AutoConfig.py | 29 ++++++++++- ConfigLanguareRunner.py | 62 +++++++++++++++++++---- UI/AutoConfig.py | 15 ++---- UI/AutoConfig.ui | 9 ---- UI/__pycache__/AutoConfig.cpython-37.pyc | Bin 2668 -> 2536 bytes dxvk.7z | Bin 3150826 -> 3150883 bytes mainwindow.py | 2 +- 7 files changed, 85 insertions(+), 32 deletions(-) diff --git a/AutoConfig.py b/AutoConfig.py index 395e42d..ae49e36 100644 --- a/AutoConfig.py +++ b/AutoConfig.py @@ -50,21 +50,48 @@ class Connect: return # 执行脚本 process = QtCore.QProcess() - process.start(f"{programPath}/launch.sh", ["deepin-terminal", "-e", "env", "WINE=deepin-wine6-stable", "WINEPREFIX=/home/gfdgd_xi/.deepinwine", f"{programPath}/ConfigLanguareRunner.py", "/tmp/wine-runner-auto-config.wsh"]) + process.start(f"{programPath}/launch.sh", ["deepin-terminal", "-e", "env", f"WINE={wine}", f"WINEPREFIX={wineprefix}", f"{programPath}/ConfigLanguareRunner.py", "/tmp/wine-runner-auto-config.wsh"]) process.waitForFinished() + def OpenFile_Triggered(): + path = QtWidgets.QFileDialog.getOpenFileName(window, "提示", homePath, "配置文件(*.sh *.wsh);;全部文件(*.*)") + if path[0] == "": + return + # 执行脚本 + process = QtCore.QProcess() + process.start(f"{programPath}/launch.sh", ["deepin-terminal", "-e", "env", f"WINE={wine}", f"WINEPREFIX={wineprefix}", f"{programPath}/ConfigLanguareRunner.py", path[0]]) + process.waitForFinished() +# 读取文本文档 +def readtxt(path): + f = open(path, "r") # 设置文件对象 + str = f.read() # 获取内容 + f.close() # 关闭文本对象 + return str # 返回结果 if __name__ == "__main__": + homePath = os.path.expanduser('~') programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string + information = json.loads(readtxt(f"{programPath}/information.json")) + version = information["Version"] + wine = "deepin-wine6-stable" + wineprefix = f"{homePath}/.wine" + try: + wine = sys.argv[1] + wineprefix = sys.argv[2] + except: + pass app = QtWidgets.QApplication(sys.argv) window = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(window) + window.setWindowTitle(f"Wine 运行器 {version}——容器自动配置部署脚本") window.show() # 连接信号和槽 ui.saerchBotton.clicked.connect(Connect.SearchBotton_Clicked) ui.runBotton.clicked.connect(Connect.RunBotton_Clicked) + ui.openFile.triggered.connect(Connect.OpenFile_Triggered) + ui.exitProgram.triggered.connect(window.close) # 解析云列表 try: # 获取列表 diff --git a/ConfigLanguareRunner.py b/ConfigLanguareRunner.py index 5d60248..b3be81b 100755 --- a/ConfigLanguareRunner.py +++ b/ConfigLanguareRunner.py @@ -37,14 +37,17 @@ programEnv = [ ["($THANK)", thankText], ["($MAKER)", "gfdgd xi、为什么您不喜欢熊出没和阿布呢"], ["($COPYRIGHT)", f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢"], - ["($?)", 0] + ["($?)", "0"] ] readOnlyEnv = [ "($DANGER)", "($HOME)", "($PROGRAMPATH)", "($VERSION)", - "($THANK)" + "($THANK)", + "($MAKER)", + "($COPYRIGHT)", + "($?)" ] class Command(): @@ -52,7 +55,8 @@ class Command(): dangerCommand = [ "bash", "bat", - "download" + "download", + "reg" ] # 可以被使用的命令 commandList = [ @@ -74,7 +78,12 @@ class Command(): "version", "thank", "pause", - "download" + "download", + "installdxvk", + "createbotton", + "reg", + "enabledopengl", + "disbledopengl" ] def __init__(self, commandString: str) -> None: @@ -141,6 +150,14 @@ class Command(): return InstallDll.Download(self.wineBottonPath, InstallDll.GetNameByNumber(int(self.command[1])), InstallDll.GetUrlByNumber(int(self.command[1]))) return InstallDll.Download(self.wineBottonPath, self.command[1], InstallDll.GetUrlByName(self.command[1])) + def InstallDxvk(self): + if not os.path.exists(f"{programPath}/dxvk"): + if os.system(f"7z x \"{programPath}/dxvk.7z\" -o\"{programPath}\""): + print("错误:无法解压资源") + return 1 + os.remove(f"{programPath}/dxvk.7z") + return os.system(f"env 'WINE={self.wine}' 'WINE64={self.wine}' 'WINEPREFIX={self.wineBottonPath}' bash '{programPath}/dxvk/auto.sh' install") + def Thank(self) -> int: for i in information["Thank"]: print(i) @@ -172,6 +189,11 @@ class Command(): QtWidgets.QMessageBox.information(None, self.command[1], self.command[2]) return 0 + def CreateBotton(self): + self.command = ["bat", "exit"] + self.Bat() + return 0 + def InstallSparkCoreFont(self): if not os.system("which aptss"): # 最新版本星火应用商店处理 @@ -208,8 +230,8 @@ class Command(): command += f"'{i}' " return os.system(command) - def Bat(self): - command = ["WINEPREFIX='$WINEPREFIX'", "$WINE"] + def Bat(self) -> int: + command = ["WINEPREFIX='($WINEPREFIX)'", "($WINE)"] for i in programEnv: for k in range(len(command)): command[k] = command[k].replace(i[0], i[1]) @@ -218,7 +240,6 @@ class Command(): commandStr = command[0] + " " for i in command[1:]: commandStr += f"{i} " - print(commandStr) return os.system(commandStr) def Version(self): @@ -239,6 +260,18 @@ class Command(): pass return os.system(command) + def Reg(self) -> int: + self.command = ["bat", "regedit", "/s", self.command[1]] + return self.Bat() + + def EnabledOpenGl(self) -> int: + self.command = ["reg", f"{programPath}/EnabledOpengl.reg"] + return self.Reg() + + def DisbledOpenGl(self) -> int: + self.command = ["reg", f"{programPath}/DisabledOpengl.reg"] + return self.Reg() + # 可以运行的命令的映射关系 # 可以被使用的命令的映射 commandList = { @@ -260,7 +293,12 @@ class Command(): "version": Version, "thank": Thank, "pause": Pause, - "download": Download + "download": Download, + "installdxvk": InstallDxvk, + "createbotton": CreateBotton, + "reg": Reg, + "enabledopengl": EnabledOpenGl, + "disbledopengl": DisbledOpenGl } # 参数数列表 @@ -283,7 +321,12 @@ class Command(): "version": [0], "thank": [0], "pause": [0], - "download": [1] + "download": [1], + "installdxvk": [0], + "createbotton": [0], + "reg": [1], + "enabledopengl": [0], + "disbledopengl": [0] } # 解析 @@ -315,6 +358,7 @@ class Command(): # 正常命令解析 if len(i) -1 < self.commandInfo[i[0]][0]: print("参数不足") + programEnv[9][1] = "-3" continue # 替换环境变量 for a in range(1, len(i)): diff --git a/UI/AutoConfig.py b/UI/AutoConfig.py index dc727d2..1418666 100644 --- a/UI/AutoConfig.py +++ b/UI/AutoConfig.py @@ -2,15 +2,12 @@ # Form implementation generated from reading ui file 'AutoConfig.ui' # -# Created by: PyQt5 UI code generator 5.15.6 +# Created by: PyQt5 UI code generator 5.11.3 # -# WARNING: Any manual changes made to this file will be lost when pyuic5 is -# run again. Do not edit this file unless you know what you are doing. - +# WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets - class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") @@ -46,8 +43,6 @@ class Ui_MainWindow(object): self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 36)) self.menubar.setObjectName("menubar") - self.menu_2 = QtWidgets.QMenu(self.menubar) - self.menu_2.setObjectName("menu_2") self.menu = QtWidgets.QMenu(self.menubar) self.menu.setObjectName("menu") MainWindow.setMenuBar(self.menubar) @@ -59,14 +54,10 @@ class Ui_MainWindow(object): self.help.setObjectName("help") self.openFile = QtWidgets.QAction(MainWindow) self.openFile.setObjectName("openFile") - self.menu_2.addAction(self.help) - self.menu_2.addSeparator() - self.menu_2.addAction(self.about) self.menu.addAction(self.openFile) self.menu.addSeparator() self.menu.addAction(self.exitProgram) self.menubar.addAction(self.menu.menuAction()) - self.menubar.addAction(self.menu_2.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) @@ -77,9 +68,9 @@ class Ui_MainWindow(object): self.searchTips.setText(_translate("MainWindow", "搜索内容(为空代表显示所有内容):")) self.saerchBotton.setText(_translate("MainWindow", "搜索")) self.runBotton.setText(_translate("MainWindow", "部署此方案")) - self.menu_2.setTitle(_translate("MainWindow", "帮助")) self.menu.setTitle(_translate("MainWindow", "程序")) self.about.setText(_translate("MainWindow", "关于")) self.exitProgram.setText(_translate("MainWindow", "退出程序")) self.help.setText(_translate("MainWindow", "帮助")) self.openFile.setText(_translate("MainWindow", "打开本地部署脚本")) + diff --git a/UI/AutoConfig.ui b/UI/AutoConfig.ui index 9b491ca..7b0ae10 100644 --- a/UI/AutoConfig.ui +++ b/UI/AutoConfig.ui @@ -74,14 +74,6 @@ 36 - - - 帮助 - - - - - 程序 @@ -91,7 +83,6 @@ - diff --git a/UI/__pycache__/AutoConfig.cpython-37.pyc b/UI/__pycache__/AutoConfig.cpython-37.pyc index ebd2bd8dc4710004c59f4e02053efbb9a93296f4..e40ce52387c595c890c0a66e2397a6cb284694be 100644 GIT binary patch delta 494 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 VT?3r~f!LGYvx2|n)X_np{{aLme{cW* delta 2393 zcmW;Bc|6mP1IO{nF=lR>doyP4D{@R!b5`VBO3Hn%zOK;0mbF!c=x|>RBXbWKUq?+s z+!&@y?Xju>!7~QxJ%^*iXwsb}E$^#Xpwm0sfT27rTK9=_&j<)K)liCP>pfV#P zP`$uTs8#g1u@tE|^90K43mN`wEj^rhmrYA@hAbZjLPR$qLe1yExYo zjv7e~Cgs;Wp-AzTRbz7X`4vzXWQQ=rk&<|@AhShDRF27)hlxeF;7^JxGtH8X_YF?f z4XoCy=%q~QdXL_jy?A4>Gj-WD&9Yj}JE}R08nskwLSHoewAwNJvLk})KK3yQd^_wr zOZk(@yOjP&`-107Y}`@gq*rpC_eVd1$F0QgjIrhT6ozR@xVC^C-mUIMz&KOZ<5~=M zA6%ZL>@?0ZrJXl(k;p(h{jS!&@9{+dPv~B z?|7UX1lL33SEIW=A=_^l*|MxHAP`~lud=9nng;PJp9ZOvXTeNZh-`wV7GWqC8bKbk z*0zi_0y(`$7KYWUcTcycU=7of+?e@9%gSGJT&05*FfN(c9TQ*eR=%FS$KmlJXOsr+ zcGzJDTRylSUFOfd0(IGhbZQ$U48%l##$Gy`d+6xj8_L~}H03ER_+(aa)$z@bbFIsc zWrXu|>E6Izj0%nYMTp*QLXelZUEeig+y&p+HvFxIiHq2MT=hGAW*lzsZ90$JU$7g# zQIli7G#Owq=Hk$=vL!o_?>F-yoBraO&Q|=#S4nadg_qt9FG>1AIe!l+^CdHN)fHIt zU3M5VJIVO*VIK+B(MkDLyApcyAjl@t=}}M=LlQ$x`X%!XRlY}`Bk19VXgbG*clTmE z)uD$?l!LH!K~Q3t)d5wy zute~BP^q82*}l}!Mp;*`isX5&QI^K36s=GEb8fkLQ_cpn_R92fzEIohSpV%)2gp~K z-P~gp&SSXSxy7VI2{DB0k)x|!PxH|7?!}rhX^IZhjP%?@KPA4i@0%9B zcZWJMnN}&DYbAgVdN%1TapJt951lcwae7AHVduQXUsyll&vPJef?n(T(mjC{^`VQH`q6%~vNIeR71M2CbSj;|!b@lsOT~6r+wo!isGa`F<)kX}_D2i#b z6Yth2jh=Lr2=u)0kga#8NdH@VRg(B3RWf^v^O;_Be5F~Bv~j#Jb*cr{ZQWe?C{e5Z zV68=p;IU=*`>O}tkC9#y<6kC|E56RDd)76ai+l>*rec;N#mAF@Tq)?yvk>ij-XeiR zmCGcJ;QUsR@9zH7SUVqkZx1K=>yIhRD{}wCUD=cuPWYQs%i6Ek#^3Ay97V~B6>d}f zLT6ou#Ap4IiOad|&)!`+co#&lH;!wyj{EXw4T=@BfI16YmH%L!RZWTj-;V%u0FD4S z0bBrX01x25#tYyBKmhyzC_n%p2oM4Y14IC#05O0#Kmu?S00T$@qyW+Y8GtN64j>PJ z0}ucO01}`GPy(O;$^bM#1)vI01E>Qu0Ga?TfOca9SjUQ=AQ0J@GP%-pxG@atRjU28 zGM}81=|EeFoa|?mE0`gQ1~b<6^JJE-h8Wv13xSbkALezpXm+T<#3Necmq~$3tiN3J zRj*mL_Lw8wVEWdZ2}tm_u&#??ypbaVL9Pqeh5?q!b|J1yKL4cW{d^L6gz zEaH`yxk@Dx{y9}JFgBqJntweR_-~*>cElxX96RT;bBa#w6hZY7zEW{R=t+N+ZIwj! zqdUiiV{iT}_gRPsW4v76%ORy4bup(|H7=8^3fIQv6X)~due&L5n78UR8b@1tu?up{ zg{w1y>ue|Xj)B5rHYqkfHP6TWF7WJBdkM@Go%AH4TtQe{VJ(Wt^zV0Myy!R-MO R27#cYJO~H6Bu)|p`X30^TIT=& diff --git a/mainwindow.py b/mainwindow.py index 925b1d8..23cf89a 100755 --- a/mainwindow.py +++ b/mainwindow.py @@ -562,7 +562,7 @@ def InstallDXVK(): wineBottonPath = e1.currentText() process = QtCore.QProcess() process.startDetached(f"{programPath}/launch.sh", ["deepin-terminal", "-e", - "env", f"WINE={wine[o1.currentText()]}", f"WINE64={wine[o1.currentText()]}", f"WINEPREFIX={wineBottonPath}", + "env", f"WINE={wine[o1.currentText()]}", f"WINE64={wine[o1.currentText()]}", f"WINEPREFIX={wineBottonPath}", "bash", f"{programPath}/dxvk/setup_dxvk.sh", "install"]) def UninstallDXVK():