From 9cf0c16697fec6e40cecc4e43001b73188600ba4 Mon Sep 17 00:00:00 2001
From: gfdgd_xi <3025613752@qq.com>
Date: Wed, 4 Jan 2023 13:35:31 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=91=BD=E4=BB=A4=E4=B8=8E?=
 =?UTF-8?q?=E5=B8=AE=E5=8A=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 AutoShell/command/installmsi                  |  14 ++++++++++++++
 AutoShell/command/programforum                |  14 ++++++++++++++
 ConfigLanguareRunner-help.json                |   6 +++++-
 ConfigLanguareRunner.py                       |  13 ++++++++++---
 .../ConfigLanguareRunner.cpython-37.pyc       | Bin 18800 -> 19014 bytes
 deb/opt/apps/deepin-wine-runner/AutoConfig.py |  15 +++++++--------
 .../apps/deepin-wine-runner/UI/AutoConfig.py  |   6 +-----
 .../apps/deepin-wine-runner/UI/AutoConfig.ui  |   9 +--------
 .../deepin-wine-runner/deepin-wine-runner     |   5 +++--
 .../deepin-wine-runner/package-script.zip     | Bin 306745 -> 306745 bytes
 mainwindow.py                                 |  11 +++++++----
 package-script.zip                            | Bin 306745 -> 306745 bytes
 12 files changed, 62 insertions(+), 31 deletions(-)
 create mode 100755 AutoShell/command/installmsi
 create mode 100755 AutoShell/command/programforum

diff --git a/AutoShell/command/installmsi b/AutoShell/command/installmsi
new file mode 100755
index 0000000..b766ea2
--- /dev/null
+++ b/AutoShell/command/installmsi
@@ -0,0 +1,14 @@
+#!/usr/bin/env python3
+# 加入路径
+import os
+import sys
+programPath = os.path.split(os.path.realpath(__file__))[0]  # 返回 string
+sys.path.append(f"{programPath}/../../")
+import ConfigLanguareRunner
+# 符号转移
+argv = []
+for i in sys.argv[1:]:
+    argv.append(i.replace(" ", "\\ "))
+com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
+com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
+sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
\ No newline at end of file
diff --git a/AutoShell/command/programforum b/AutoShell/command/programforum
new file mode 100755
index 0000000..b766ea2
--- /dev/null
+++ b/AutoShell/command/programforum
@@ -0,0 +1,14 @@
+#!/usr/bin/env python3
+# 加入路径
+import os
+import sys
+programPath = os.path.split(os.path.realpath(__file__))[0]  # 返回 string
+sys.path.append(f"{programPath}/../../")
+import ConfigLanguareRunner
+# 符号转移
+argv = []
+for i in sys.argv[1:]:
+    argv.append(i.replace(" ", "\\ "))
+com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
+com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
+sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
\ No newline at end of file
diff --git a/ConfigLanguareRunner-help.json b/ConfigLanguareRunner-help.json
index 10517d4..e7f594c 100644
--- a/ConfigLanguareRunner-help.json
+++ b/ConfigLanguareRunner-help.json
@@ -38,5 +38,9 @@
     "control": "打开控制面板\n参数数量:0\n参数介绍:无",
     "taskmgr": "打开任务管理器\n参数数量:0\n参数介绍:无",
     "killallwineserver": "杀死所有 Wine 程序\n参数数量:0\n参数介绍:无",
-    "installvb": "安装指定的 VB 运行库到指定容器\n参数数量:1\n参数介绍:在安装 Visual Basic Runtime 工具的编号,如 4 Visual Basic Runtime Visual Basic 6"
+    "installvb": "安装指定的 VB 运行库到指定容器\n参数数量:1\n参数介绍:在安装 Visual Basic Runtime 工具的编号,如 4 Visual Basic Runtime Visual Basic 6",
+    "installother": "安装未归类的运行库到指定容器\n参数数量:1\n参数介绍:在安装其它运行库工具的编号,如 2 MFC运行库",
+    "decompressionbottle": "解压用 wine 打包的 deb 包内的容器到指定路径\n参数数量:2\n参数介绍:deb 包路径+要解压到的路径",
+    "programforum": "打开程序论坛\n参数数量:0\n参数介绍:无",
+    "installmsi": "安装 MSI 文件到指定容器\n参数数量:1\n参数介绍:msi 文件路径"
 }
\ No newline at end of file
diff --git a/ConfigLanguareRunner.py b/ConfigLanguareRunner.py
index c505a74..61e4cfd 100755
--- a/ConfigLanguareRunner.py
+++ b/ConfigLanguareRunner.py
@@ -128,7 +128,8 @@ class Command():
         "installvb",
         "installother",
         "decompressionbottle",
-        "programforum"
+        "programforum",
+        "installmsi"
     ]
 
     def __init__(self, commandString: str) -> None:
@@ -435,6 +436,10 @@ class Command():
         def ProgramForum(self):
             webbrowser.open_new_tab("https://gfdgdxi.flarum.cloud/")
 
+        def InstallMSI(self):
+            self.command = ["bat", "msiexec", "/i", self.command[1]]
+            return self.Bat()
+
         # 可以运行的命令的映射关系
         # 可以被使用的命令的映射
         commandList = {
@@ -479,7 +484,8 @@ class Command():
             "installvb": InstallVB,
             "installother": InstallOther,
             "decompressionbottle": DecompressionBottle,
-            "programforum": ProgramForum
+            "programforum": ProgramForum,
+            "installmsi": InstallMSI
         }
 
         # 参数数列表
@@ -526,7 +532,8 @@ class Command():
             "installvb": [1],
             "installother": [1],
             "decompressionbottle": [2],
-            "programforum": [0]
+            "programforum": [0],
+            "installmsi": [1]
         }
         windowsUnrun = [
             "createbotton",
diff --git a/__pycache__/ConfigLanguareRunner.cpython-37.pyc b/__pycache__/ConfigLanguareRunner.cpython-37.pyc
index 0990daf596f9f052d22ac077d2a60f3a157eaad4..8626517df130b648e5f7412c32c048e76e17062a 100644
GIT binary patch
delta 3531
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
BZp8oq

delta 3539
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
a5iNV67^djqHzMVQL!B>?WcY9A_WuD?&S*&h

diff --git a/deb/opt/apps/deepin-wine-runner/AutoConfig.py b/deb/opt/apps/deepin-wine-runner/AutoConfig.py
index f18db7b..2f4c949 100755
--- a/deb/opt/apps/deepin-wine-runner/AutoConfig.py
+++ b/deb/opt/apps/deepin-wine-runner/AutoConfig.py
@@ -15,6 +15,7 @@ import sys
 import base64
 import json
 import traceback
+import urllib.request
 import req as requests
 import PyQt5.QtWidgets as QtWidgets
 from UI.AutoConfig import *
@@ -38,8 +39,6 @@ urlSourcesList = [
 urlSources = urlSourcesList[0]
 lists = []
 
-#print(requests.post("http://120.25.153.144:30250/PingLun", {"PinLun": "测试文本", "Version": "purgeexepro.sh"}).text)
-
 class ProgramRunStatusUpload():
     msgWindow = None
     starLayout = None
@@ -139,7 +138,7 @@ class InformationWindow():
             about = f"<h1>关于“{choose}”的介绍</h1>\n<p>暂无此程序的介绍</p>"
         try:
             import requests as r
-            fenlists = requests.get(base64.b64decode("aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy93aW5lLXJ1bm5lci1kb3dubG9hZHMtb2YtcnVubmVyL3Jhdy9icmFuY2gvbWFzdGVyL0Jhc2hBcHBGZW4v").decode("utf-8") + fileName + base64.b64decode("L2FsbC5qc29u").decode("utf-8"), timeout=1000).json()
+            fenlists = requests.get(base64.b64decode("aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy93aW5lLXJ1bm5lci1kb3dubG9hZHMtb2YtcnVubmVyL3Jhdy9icmFuY2gvbWFzdGVyL0Jhc2hBcHBGZW4v").decode("utf-8") + urllib.request.quote(fileName) + base64.b64decode("L2FsbC5qc29u").decode("utf-8"), timeout=1000).json()
             tipsInfo = ""
         except:
             fenlists = [0, 0, 0, 0, 0]
@@ -253,7 +252,7 @@ class ProgramRunStatusShow():
                 fileName = i[1]
                 break
         try:
-            fenlists = requests.get(base64.b64decode("aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy93aW5lLXJ1bm5lci1kb3dubG9hZHMtb2YtcnVubmVyL3Jhdy9icmFuY2gvbWFzdGVyL0Jhc2hBcHBGZW4v").decode("utf-8") + fileName + base64.b64decode("L2FsbC5qc29u").decode("utf-8")).json()
+            fenlists = requests.get(base64.b64decode("aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy93aW5lLXJ1bm5lci1kb3dubG9hZHMtb2YtcnVubmVyL3Jhdy9icmFuY2gvbWFzdGVyL0Jhc2hBcHBGZW4v").decode("utf-8") + urllib.request.quote(fileName) + base64.b64decode("L2FsbC5qc29u").decode("utf-8")).json()
             tipsInfo = ""
         except:
             #traceback.print_exc()
@@ -311,7 +310,7 @@ class ProgramRunStatusShow():
         else:
             # 显示最新的3条评论
             try:
-                all = int(requests.get(f"{base64.b64decode('aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy9iYXNocGlubHVuL3Jhdy9icmFuY2gvbWFzdGVyLw==').decode('utf-8')}{fileName}/data.txt").text)
+                all = int(requests.get(f"{base64.b64decode('aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy9iYXNocGlubHVuL3Jhdy9icmFuY2gvbWFzdGVyLw==').decode('utf-8')}{urllib.request.quote(fileName)}/data.txt").text)
                 now = all - 3
                 print(all)
                 if all < 3:
@@ -322,7 +321,7 @@ class ProgramRunStatusShow():
                 uploadList = []
                 for i in range(all - 1, start - 1, -1):
                     print(f"第 {i + 1} 条评论:")
-                    info = requests.get(f"{base64.b64decode('aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy9iYXNocGlubHVuL3Jhdy9icmFuY2gvbWFzdGVyLw==').decode('utf-8')}{fileName}/pf-{i}.txt").text.strip()
+                    info = requests.get(f"{base64.b64decode('aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy9iYXNocGlubHVuL3Jhdy9icmFuY2gvbWFzdGVyLw==').decode('utf-8')}{urllib.request.quote(fileName)}/pf-{i}.txt").text.strip()
                     print(info)
                     uploadList.append([f"用户{i + 1}", i + 1, info])
                 Add(uploadList)
@@ -380,7 +379,7 @@ def UpdateFen():
     uploadList = []        
     for i in range(now + 2, now - 1, -1):
         print(f"第 {i + 1} 条评论:")
-        info = requests.get(f"https://code.gitlink.org.cn/gfdgd-xi-org/bashpinlun/raw/branch/master/{fileName}/pf-{i}.txt").text.strip()
+        info = requests.get(f"https://code.gitlink.org.cn/gfdgd-xi-org/bashpinlun/raw/branch/master/{urllib.request.quote(fileName)}/pf-{i}.txt").text.strip()
         print(info)
         uploadList.append([f"用户{i + 1}", i + 1, info])
     #ProgramRunStatusShow.pingLunLayout.removeItem(ProgramRunStatusShow.pingLunLayout.itemAt(2))
@@ -572,7 +571,7 @@ if __name__ == "__main__":
         #pass
     # 连接信号和槽
     ui.saerchBotton.clicked.connect(Connect.SearchBotton_Clicked)
-    ui.uploadFen.clicked.connect(UploadFen)
+    #ui.uploadFen.clicked.connect(UploadFen)
     ui.getInfoButton.clicked.connect(InformationWindow.ShowWindow)
     ui.runBotton.clicked.connect(Connect.RunBotton_Clicked)
     ui.openFile.triggered.connect(Connect.OpenFile_Triggered)
diff --git a/deb/opt/apps/deepin-wine-runner/UI/AutoConfig.py b/deb/opt/apps/deepin-wine-runner/UI/AutoConfig.py
index 379cebe..3419fc3 100755
--- a/deb/opt/apps/deepin-wine-runner/UI/AutoConfig.py
+++ b/deb/opt/apps/deepin-wine-runner/UI/AutoConfig.py
@@ -41,9 +41,6 @@ class Ui_MainWindow(object):
         self.getFen = QtWidgets.QPushButton(self.centralwidget)
         self.getFen.setObjectName("getFen")
         self.horizontalLayout_2.addWidget(self.getFen)
-        self.uploadFen = QtWidgets.QPushButton(self.centralwidget)
-        self.uploadFen.setObjectName("uploadFen")
-        self.horizontalLayout_2.addWidget(self.uploadFen)
         self.runBotton = QtWidgets.QPushButton(self.centralwidget)
         self.runBotton.setObjectName("runBotton")
         self.horizontalLayout_2.addWidget(self.runBotton)
@@ -110,8 +107,7 @@ class Ui_MainWindow(object):
         self.searchTips.setText(_translate("MainWindow", "搜索内容(为空代表显示所有内容):"))
         self.saerchBotton.setText(_translate("MainWindow", "搜索"))
         self.getInfoButton.setText(_translate("MainWindow", "获取选中项介绍"))
-        self.getFen.setText(_translate("MainWindow", "获取选中项的评分"))
-        self.uploadFen.setText(_translate("MainWindow", "提交选中项的评分"))
+        self.getFen.setText(_translate("MainWindow", "获取/提交选中项的评分和评论"))
         self.runBotton.setText(_translate("MainWindow", "部署此方案"))
         self.menu.setTitle(_translate("MainWindow", "程序"))
         self.menu_2.setTitle(_translate("MainWindow", "切换源"))
diff --git a/deb/opt/apps/deepin-wine-runner/UI/AutoConfig.ui b/deb/opt/apps/deepin-wine-runner/UI/AutoConfig.ui
index c793ce7..ea5b234 100755
--- a/deb/opt/apps/deepin-wine-runner/UI/AutoConfig.ui
+++ b/deb/opt/apps/deepin-wine-runner/UI/AutoConfig.ui
@@ -64,14 +64,7 @@
       <item>
        <widget class="QPushButton" name="getFen">
         <property name="text">
-         <string>获取选中项的评分</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QPushButton" name="uploadFen">
-        <property name="text">
-         <string>提交选中项的评分</string>
+         <string>获取/提交选中项的评分和评论</string>
         </property>
        </widget>
       </item>
diff --git a/deb/opt/apps/deepin-wine-runner/deepin-wine-runner b/deb/opt/apps/deepin-wine-runner/deepin-wine-runner
index 563ecf7..099161b 100755
--- a/deb/opt/apps/deepin-wine-runner/deepin-wine-runner
+++ b/deb/opt/apps/deepin-wine-runner/deepin-wine-runner
@@ -1852,7 +1852,7 @@ def UploadLog():
                 "Log": returnText.toPlainText(),
                 "Wine": wine[o1.currentText()],
                 "Tips": text
-                }).json
+                }).json()
             if returnList["ExitCode"] == 0:
                 QtWidgets.QMessageBox.information(window, "提示", "上传成功!")    
             else:
@@ -2343,7 +2343,8 @@ exe路径\' 参数 \'
 updateThingsString = transla.transe("U", '''※1、不基于生态适配脚本打包器支持禁用 Mono/Gecko 打包器;
 ※2、自动容器配置脚本新增命令 decompressionbottle、programforum,新增评论功能;
 ※3、安装 Windows 虚拟机功能更换应答镜像图标并添加常用 Windows 组件安装功能;
-※4、安装 Windows 虚拟机功能提供镜像下载的网盘链接。
+※4、安装 Windows 虚拟机功能提供镜像下载的网盘链接;
+※5、修复提交日志功能在提交成功时依旧提示提交失败问题。
 ''')
 for i in information["Thank"]:
     thankText += f"{i}\n"
diff --git a/deb/opt/apps/deepin-wine-runner/package-script.zip b/deb/opt/apps/deepin-wine-runner/package-script.zip
index 289971c1f54a0e14e22800312fc126daf765beec..95f67cdd356f935420275242f31c56bee8df1b91 100755
GIT binary patch
delta 180
zcmdmaM`-6Ap$TRz>%MPEo<8vxqww_lUKX~=8@O0DhTCwV2{&)x+P;B{@yiV~agg%u
zM;|k4^I?&gZnc1guU-BV<97K^OtNiQRJ6xdFmI2oV0j^kCb>PSi-nCDA-Emrwp|JU
Dl#EP8

delta 180
zcmdmaM`-6Ap$TRzUeh)wPoMaUQFwZNFALk`4O}c6!)>_Ggqt^TZQsDf_~izgI7s>S
zqmLQ2`LIY#w_3o$*Dn8wal8B{CfPPDD%xW!n77APu)GjNliZ%v#lpsn5Zn%Q+b#tF
Dnm0z<

diff --git a/mainwindow.py b/mainwindow.py
index 563ecf7..cc77040 100755
--- a/mainwindow.py
+++ b/mainwindow.py
@@ -1852,7 +1852,7 @@ def UploadLog():
                 "Log": returnText.toPlainText(),
                 "Wine": wine[o1.currentText()],
                 "Tips": text
-                }).json
+                }).json()
             if returnList["ExitCode"] == 0:
                 QtWidgets.QMessageBox.information(window, "提示", "上传成功!")    
             else:
@@ -2341,9 +2341,12 @@ exe路径\' 参数 \'
 以及此脚本安装的 Wine 无法保证 100% 能使用,以及副作用是会提示;
 <code>N: 鉴于仓库 'https://community-packages.deepin.com/beige beige InRelease' 不支持 'i386' 体系结构,跳过配置文件 'main/binary-i386/Packages' 的获取。</code>''')
 updateThingsString = transla.transe("U", '''※1、不基于生态适配脚本打包器支持禁用 Mono/Gecko 打包器;
-※2、自动容器配置脚本新增命令 decompressionbottle、programforum,新增评论功能;
-※3、安装 Windows 虚拟机功能更换应答镜像图标并添加常用 Windows 组件安装功能;
-※4、安装 Windows 虚拟机功能提供镜像下载的网盘链接。
+※2、自动容器配置脚本新增命令 decompressionbottle、programforum、installmsi 以及上述命令的帮助;
+※3、自动容器配置脚本新增评论功能;
+※4、自动容器配置脚本新增许多应用安装脚本;
+※5、安装 Windows 虚拟机功能更换应答镜像图标并添加常用 Windows 组件安装功能;
+※6、安装 Windows 虚拟机功能提供镜像下载的网盘链接;
+7、修复提交日志功能在提交成功时依旧提示提交失败问题。
 ''')
 for i in information["Thank"]:
     thankText += f"{i}\n"
diff --git a/package-script.zip b/package-script.zip
index 289971c1f54a0e14e22800312fc126daf765beec..95f67cdd356f935420275242f31c56bee8df1b91 100755
GIT binary patch
delta 180
zcmdmaM`-6Ap$TRz>%MPEo<8vxqww_lUKX~=8@O0DhTCwV2{&)x+P;B{@yiV~agg%u
zM;|k4^I?&gZnc1guU-BV<97K^OtNiQRJ6xdFmI2oV0j^kCb>PSi-nCDA-Emrwp|JU
Dl#EP8

delta 180
zcmdmaM`-6Ap$TRzUeh)wPoMaUQFwZNFALk`4O}c6!)>_Ggqt^TZQsDf_~izgI7s>S
zqmLQ2`LIY#w_3o$*Dn8wal8B{CfPPDD%xW!n77APu)GjNliZ%v#lpsn5Zn%Q+b#tF
Dnm0z<