diff --git a/AutoConfig.py b/AutoConfig.py
index 6e1910e..5168510 100755
--- a/AutoConfig.py
+++ b/AutoConfig.py
@@ -312,7 +312,7 @@ class ProgramRunStatusShow():
else:
# 显示最新的3条评论
try:
- all = int(requests.get(f"https://code.gitlink.org.cn/gfdgd-xi-org/bashpinlun/raw/branch/master/{fileName}/data.txt").text)
+ all = int(requests.get(f"{base64.b64decode('aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy9iYXNocGlubHVuL3Jhdy9icmFuY2gvbWFzdGVyLw==').decode('utf-8')}{fileName}/data.txt").text)
now = all - 3
print(all)
if all < 3:
@@ -323,7 +323,7 @@ class ProgramRunStatusShow():
uploadList = []
for i in range(all - 1, start - 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"{base64.b64decode('aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy9iYXNocGlubHVuL3Jhdy9icmFuY2gvbWFzdGVyLw==').decode('utf-8')}{fileName}/pf-{i}.txt").text.strip()
print(info)
uploadList.append([f"用户{i + 1}", i + 1, info])
Add(uploadList)
diff --git a/VM/VirtualMachine b/VM/VirtualMachine
index bae4484..ed25358 100755
Binary files a/VM/VirtualMachine and b/VM/VirtualMachine differ
diff --git a/deb/DEBIAN/control b/deb/DEBIAN/control
index 5257407..9731feb 100755
--- a/deb/DEBIAN/control
+++ b/deb/DEBIAN/control
@@ -1,5 +1,5 @@
-Package: wine-runner-linux
-Version: 3.0.0.2
+Package: spark-deepin-wine-runner
+Version: 3.0.1
Maintainer: gfdgd xi <3025613752@qq.com>
Homepage: https://gitee.com/gfdgd-xi-org/deep-wine-runner
Architecture: all
diff --git a/deb/opt/apps/deepin-wine-runner/AutoConfig.py b/deb/opt/apps/deepin-wine-runner/AutoConfig.py
index b438e76..5168510 100755
--- a/deb/opt/apps/deepin-wine-runner/AutoConfig.py
+++ b/deb/opt/apps/deepin-wine-runner/AutoConfig.py
@@ -31,12 +31,15 @@ urlSourcesList = [
"https://gitee.com/gfdgd-xi/deep-wine-runner-auto-configuration-script/raw/master/", # Gitee 源
"https://gfdgd-xi.github.io/deep-wine-runner-auto-configuration-script/", # Github 源
"http://gfdgdxi.msns.cn/wine-runner-list/auto/", # 备用源1,纯 IPv6 源
- "http://120.25.153.144/deep-wine-runner-auto-configuration-script/", # 备用源2
+ "http://gfdgdxi.free.idcfengye.com/deep-wine-runner-auto-configuration-script/", # 备用源2
"http://gfdgdxi.free.idcfengye.com/wine-runner-list/auto/", # 备用源 3
"http://127.0.0.1/wine-runner-list/auto/" # 本地测试源
]
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
@@ -136,7 +139,7 @@ class InformationWindow():
about = f"
关于“{choose}”的介绍
\n暂无此程序的介绍
"
try:
import requests as r
- fenlists = requests.get(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9iYXNoYXBwLw==").decode("utf-8") + fileName + base64.b64decode("L2FsbC5qc29u").decode("utf-8"), timeout=1000).json()
+ fenlists = requests.get(base64.b64decode("aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy93aW5lLXJ1bm5lci1kb3dubG9hZHMtb2YtcnVubmVyL3Jhdy9icmFuY2gvbWFzdGVyL0Jhc2hBcHBGZW4v").decode("utf-8") + fileName + base64.b64decode("L2FsbC5qc29u").decode("utf-8"), timeout=1000).json()
tipsInfo = ""
except:
fenlists = [0, 0, 0, 0, 0]
@@ -207,10 +210,36 @@ class InformationWindow():
message.show()
message.exec_()
+def Add(lists: list):
+ global pinLunLayout
+ pinLunLayout1 = QtWidgets.QVBoxLayout()
+ pinLunLayout = QtWidgets.QWidget()
+ pinLunLayout.setLayout(pinLunLayout1)
+ for i in range(pinLunLayout1.count()):
+ pinLunLayout1.removeItem(pinLunLayout1.itemAt(i))
+ for i in lists:
+ widget = QtWidgets.QWidget()
+ inLayout = QtWidgets.QGridLayout()
+ inLayout.addWidget(QtWidgets.QLabel("
"), 0, 0, 1, 3)
+ inLayout.addWidget(QtWidgets.QLabel(f"{i[0]}"), 1, 0)
+ inLayout.addWidget(QtWidgets.QLabel(f"第{i[1]}层
"), 1, 2)
+ inLayout.addWidget(QtWidgets.QLabel(i[2]), 2, 0, 1, 3)
+ widget.setLayout(inLayout)
+ pinLunLayout1.addWidget(widget)
+ #pinLunLayout.addWidget(QtWidgets.QLabel("
"))
+# pinLunLayout = widget
+
+all = 0
+now = 0
class ProgramRunStatusShow():
msgWindow = None
+ pingLunLayout = None
def ShowWindow():
global lists
+ global all
+ global now
+ global leftButton
+ global rightButton
# 获取选中项
try:
choose = ui.searchList.selectionModel().selectedIndexes()[0].data()
@@ -224,15 +253,12 @@ class ProgramRunStatusShow():
fileName = i[1]
break
try:
- fenlists = requests.get(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9iYXNoYXBwLw==").decode("utf-8") + fileName + base64.b64decode("L2FsbC5qc29u").decode("utf-8")).json()
- #r = requests.get(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9hcHAv").decode("utf-8") + sha + base64.b64decode("L3RpdGxlLnR4dA==").decode("utf-8"))
- #r.encoding = "utf-8"
- #title = r.text
+ fenlists = requests.get(base64.b64decode("aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy93aW5lLXJ1bm5lci1kb3dubG9hZHMtb2YtcnVubmVyL3Jhdy9icmFuY2gvbWFzdGVyL0Jhc2hBcHBGZW4v").decode("utf-8") + fileName + base64.b64decode("L2FsbC5qc29u").decode("utf-8")).json()
tipsInfo = ""
except:
#traceback.print_exc()
fenlists = [0, 0, 0, 0, 0]
- tipsInfo = "暂时无人提交此脚本运行情况,是否立即提交?"
+ tipsInfo = "暂时无人提交此脚本评分,是否立即提交?"
maxHead = fenlists.index(max(fenlists))
allNumber = 0
@@ -248,13 +274,13 @@ class ProgramRunStatusShow():
msgWidget = QtWidgets.QWidget()
msgWidgetLayout = QtWidgets.QGridLayout()
starLayout = QtWidgets.QHBoxLayout()
- uploadButton = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "点此上传运行情况"))
+ uploadButton = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "点此提交评分"))
uploadButton.clicked.connect(lambda: ProgramRunStatusUpload.ShowWindow(fileName, choose))
- msgWidgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "综合评价:")), 0, 0)
- msgWidgetLayout.addLayout(starLayout, 0, 1)
- msgWidgetLayout.addWidget(QtWidgets.QLabel(tipsInfo), 1, 0, 1, 2)
+ msgWidgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "综合评价:")), 0, 0, 2, 1)
+ msgWidgetLayout.addLayout(starLayout, 0, 1, 2, 1)
+ msgWidgetLayout.addWidget(QtWidgets.QLabel(tipsInfo), 0, 2)
#msgWidgetLayout.addWidget(QtWidgets.QLabel("" if dateVersion == "" else f"数据版本:{dateVersion}"), 2, 0, 1, 2)
- msgWidgetLayout.addWidget(uploadButton, 3, 0, 1, 2)
+ msgWidgetLayout.addWidget(uploadButton, 1, 2)
end = 5
if maxHead > 5:
for i in range(end):
@@ -265,12 +291,136 @@ class ProgramRunStatusShow():
head = maxHead
for i in range(head, end):
starLayout.addWidget(QtWidgets.QLabel(f""))
+ pingLun = QtWidgets.QWidget()
+ msgWidgetLayout.addWidget(pingLun, 4, 0, 1, 3)
+ pingLunLayout = QtWidgets.QGridLayout()
+ pingLunInfo = QtWidgets.QTextEdit()
+ #pingLunInfo.document().setMaximumBlockCount(5)
+ uploadButton = QtWidgets.QPushButton("评论")
+ pingLunLayout.addWidget(pingLunInfo, 0, 0, 1, 3)
+ pingLunLayout.addWidget(uploadButton, 1, 2)
+ pingLunInfo.setPlaceholderText("""在此输入评论,须知:
+※1、不得含有色情、暴力、侮辱等违法内容
+※2、不得有广告推广等内容
+※3、字数至少 15 字,但不得超过 250 字
+※4、评论内容最多 5 行,且评论内容将会进行审核,意味着评论不会实时生效显示""")
+ leftButton = QtWidgets.QPushButton("上一页")
+ rightButton = QtWidgets.QPushButton("下一页")
+ if maxHead == 0:
+ #pingLun.setDisabled(True)
+ pass
+ else:
+ # 显示最新的3条评论
+ try:
+ all = int(requests.get(f"{base64.b64decode('aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy9iYXNocGlubHVuL3Jhdy9icmFuY2gvbWFzdGVyLw==').decode('utf-8')}{fileName}/data.txt").text)
+ now = all - 3
+ print(all)
+ if all < 3:
+ start = 0
+ rightButton.setDisabled(True)
+ else:
+ start = all - 3
+ 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()
+ print(info)
+ uploadList.append([f"用户{i + 1}", i + 1, info])
+ Add(uploadList)
+ except:
+ traceback.print_exc()
+ try:
+ ProgramRunStatusShow.pingLunLayout = pingLunLayout
+ pingLunLayout.addWidget(pinLunLayout, 2, 0, 1, 3)
+ except:
+ leftButton.setDisabled(True)
+ rightButton.setDisabled(True)
+ leftButton.clicked.connect(Left)
+ rightButton.clicked.connect(Right)
+ pingLunLayout.addWidget(leftButton, 3, 0)
+ pingLunLayout.addWidget(rightButton, 3, 2)
+ leftButton.setDisabled(True)
+ pingLun.setLayout(pingLunLayout)
msgWidget.setLayout(msgWidgetLayout)
+ uploadButton.clicked.connect(lambda: ProgramRunStatusShow.Upload(pingLunInfo.toPlainText(), fileName))
ProgramRunStatusShow.msgWindow.setCentralWidget(msgWidget)
ProgramRunStatusShow.msgWindow.setWindowIcon(QtGui.QIcon(iconPath))
ProgramRunStatusShow.msgWindow.setWindowTitle(f"脚本“{choose}”运行情况")
ProgramRunStatusShow.msgWindow.show()
+ def Upload(info, name):
+ print(f"脚本:{name}")
+ print(f"评论:{info}")
+ try:
+ #
+ res = requests.post(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0OjMwMjUwL1BpbmdMdW4=").decode("utf-8"), {"PinLun": info, "Version": name}).json()
+ print(res)
+ if res["ExitCode"]:
+ QtWidgets.QMessageBox.critical(ProgramRunStatusShow.msgWindow, "错误", res["Error"])
+ return
+ QtWidgets.QMessageBox.information(ProgramRunStatusShow.msgWindow, "提示", res["Error"])
+ except:
+ traceback.print_exc()
+ QtWidgets.QMessageBox.critical(ProgramRunStatusShow.msgWindow, "错误", "提交失败")
+
+
+def UpdateFen():
+ global now
+ fileName = ""
+ # 获取选中项
+ try:
+ choose = ui.searchList.selectionModel().selectedIndexes()[0].data()
+ except:
+ QtWidgets.QMessageBox.critical(window, "错误", "您未选择任何配置文件")
+ return
+ for i in lists:
+ print(i)
+ if i[0] == choose:
+ fileName = i[1]
+ break
+ 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()
+ print(info)
+ uploadList.append([f"用户{i + 1}", i + 1, info])
+ #ProgramRunStatusShow.pingLunLayout.removeItem(ProgramRunStatusShow.pingLunLayout.itemAt(2))
+ ProgramRunStatusShow.pingLunLayout.removeWidget(pinLunLayout)
+ pinLunLayout.hide()
+ #pinLunLayout.
+ Add(uploadList)
+ #l = QtWidgets.QGridLayout()
+ #l.removeWidget(pinLunLayout)
+ ProgramRunStatusShow.pingLunLayout.addWidget(pinLunLayout, 2, 0, 1, 3)
+
+def Left():
+ global now
+ global all
+
+ if now + 6 >= all:
+ now = all - 3
+ leftButton.setDisabled(True)
+ rightButton.setEnabled(True)
+ else:
+ now += 3
+ leftButton.setEnabled(True)
+ rightButton.setEnabled(True)
+ UpdateFen()
+ print(all)
+ print(now)
+
+def Right():
+ global now
+ if now - 3 < 0:
+ now = 0
+ rightButton.setDisabled(True)
+ leftButton.setEnabled(True)
+ else:
+ now -= 3
+ leftButton.setEnabled(True)
+ rightButton.setEnabled(True)
+ UpdateFen()
+
def UploadFen():
global lists
# 获取选中项
@@ -401,6 +551,7 @@ if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
+ pinLunLayout = QtWidgets.QHBoxLayout()
ui.setupUi(window)
window.setWindowTitle(f"Wine 运行器 {version}——容器自动配置部署脚本")
window.setWindowIcon(QtGui.QIcon(f"{programPath}/deepin-wine-runner.svg"))
diff --git a/deb/opt/apps/deepin-wine-runner/AutoShell/command/decompressionbottle b/deb/opt/apps/deepin-wine-runner/AutoShell/command/decompressionbottle
new file mode 100755
index 0000000..b766ea2
--- /dev/null
+++ b/deb/opt/apps/deepin-wine-runner/AutoShell/command/decompressionbottle
@@ -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/deb/opt/apps/deepin-wine-runner/ConfigLanguareRunner.py b/deb/opt/apps/deepin-wine-runner/ConfigLanguareRunner.py
index e9fffd4..c505a74 100755
--- a/deb/opt/apps/deepin-wine-runner/ConfigLanguareRunner.py
+++ b/deb/opt/apps/deepin-wine-runner/ConfigLanguareRunner.py
@@ -2,7 +2,7 @@
# 使用系统默认的 python3 运行
###########################################################################################
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
-# 版本:2.1.0
+# 版本:3.0.1
# 更新时间:2022年10月05日
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
# 基于 Python3 构建
@@ -11,8 +11,10 @@ import os
import sys
import time
import json
+import random
import platform
import traceback
+import webbrowser
import subprocess
import PyQt5.QtWidgets as QtWidgets
# 读取文本文档
@@ -38,8 +40,8 @@ programEnv = [
["($PROGRAMPATH)", programPath],
["($VERSION)", version],
["($THANK)", thankText],
- ["($MAKER)", "gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
- ["($COPYRIGHT)", f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
+ ["($MAKER)", "RacoonGX 团队,By gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
+ ["($COPYRIGHT)", f"©2020~{time.strftime('%Y')} RacoonGX 团队,By gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
["($?)", "0"],
["($PLATFORM)", platform.system()],
["($DEBUG)", "1"]
@@ -57,6 +59,19 @@ readOnlyEnv = [
"($SYSTEM)",
"($DEBUG)"
]
+
+def FindFile(file, name):
+ for i in os.listdir(file):
+ path = f"{file}/{i}"
+ if os.path.isdir(path):
+ returnPath = FindFile(path, name)
+ if returnPath != None:
+ return returnPath.replace("//", "/")
+ if os.path.isfile(path):
+ if i == name:
+ return path
+ return None
+
def Debug():
if "--debug" in sys.argv:
traceback.print_exc()
@@ -111,7 +126,9 @@ class Command():
"disbledWinebottlecreatelink",
"enabledWinebottlecreatelink",
"installvb",
- "installother"
+ "installother",
+ "decompressionbottle",
+ "programforum"
]
def __init__(self, commandString: str) -> None:
@@ -279,7 +296,7 @@ class Command():
def Version(self):
print(f"版本:{version}")
- print(f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢")
+ print(f"©2020~{time.strftime('%Y')} RacoonGX 团队,By gfdgd xi、为什么您不喜欢熊出没和阿布呢")
return 0
def Pause(self) -> int:
@@ -389,6 +406,20 @@ class Command():
self.command = ["bat", "reg", "add", "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "/v", "ProxyServer", "/d", f"{proxyServerAddress}:{port}", "/f"]
self.Bat()
+ def DecompressionBottle(self):
+ tempDebDir = f"/tmp/wine-runner-unpack-deb-{random.randint(0, 1000)}"
+ if os.system(f"dpkg -x '{self.command[1]}' '{tempDebDir}'"):
+ return 1
+ zippath = FindFile(tempDebDir, "files.7z")
+ if zippath == None:
+ return 2
+ # 解压文件
+ os.system(f"mkdir -p '{self.command[2]}'")
+ fi = os.system(f"7z x -y '{zippath}' -o'{self.command[2]}'")
+ os.system(f"rm -rfv '{tempDebDir}'")
+ return fi
+
+
def DisbledHttpProxy(self):
self.command = ["bat", "reg", "add", "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "/v", "ProxyEnable", "/t", "REG_DWORD", "/d", "00000000", "/f"]
self.Bat()
@@ -401,6 +432,9 @@ class Command():
import InstallOther
return InstallOther.Download(self.wineBottonPath, int(self.command[1]), self.wine)
+ def ProgramForum(self):
+ webbrowser.open_new_tab("https://gfdgdxi.flarum.cloud/")
+
# 可以运行的命令的映射关系
# 可以被使用的命令的映射
commandList = {
@@ -443,7 +477,9 @@ class Command():
"disbledWinebottlecreatelink": DisbledWineBottleCreateLink,
"enabledWinebottlecreatelink": EnabledWineBottleCreateLink,
"installvb": InstallVB,
- "installother": InstallOther
+ "installother": InstallOther,
+ "decompressionbottle": DecompressionBottle,
+ "programforum": ProgramForum
}
# 参数数列表
@@ -488,7 +524,9 @@ class Command():
"disbledWinebottlecreatelink": [0],
"enabledWinebottlecreatelink": [0],
"installvb": [1],
- "installother": [1]
+ "installother": [1],
+ "decompressionbottle": [2],
+ "programforum": [0]
}
windowsUnrun = [
"createbotton",
@@ -502,7 +540,8 @@ class Command():
"disbledopengl",
"installdxvk",
"installfont",
- "installsparkcorefont"
+ "installsparkcorefont",
+ "decompressionbottle"
]
# 解析
def __init__(self, command: list, wineBottonPath: str, wine: str) -> int:
@@ -554,7 +593,7 @@ class Command():
i[a] = i[a].replace(b[0], b[1])
commandReturn = self.commandList[i[0]](self)
if commandReturn:
- print(f"运行命令{' '.join(self.command)}出现错误")
+ print(f"运行命令{' '.join(self.command)}出现错误,返回值:", commandReturn)
programEnv[9][1] = str(commandReturn)
if self.close:
break
@@ -574,7 +613,7 @@ if __name__ == "__main__":
if len(sys.argv) - optionAll < 2:
print("Wine 运行器自动配置文件解析器交互环境")
print(f"版本:{version}")
- print(f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢")
+ print(f"©2020~{time.strftime('%Y')} RacoonGX 团队,By gfdgd xi、为什么您不喜欢熊出没和阿布呢")
print("--------------------------------------------------------------")
while True:
commandLine = input(">")
diff --git a/deb/opt/apps/deepin-wine-runner/Mount.sh b/deb/opt/apps/deepin-wine-runner/Mount.sh
index 6fd5b6f..4ef5f0e 100755
--- a/deb/opt/apps/deepin-wine-runner/Mount.sh
+++ b/deb/opt/apps/deepin-wine-runner/Mount.sh
@@ -7,6 +7,7 @@ if [ ! -d "$1" ]; then
echo "路径不存在!"
exit 1
fi
+programPath=`dirname $0`
echo $0
echo $1
echo $2
@@ -16,13 +17,14 @@ cd "$1"
# 拷贝 Qemu Static
cp -r /usr/bin/qemu-*-static ./usr/bin
# 挂载目录
-mount --bind /dev ./dev
+# 此部分将会由 pardus-chroot 来处理
+#mount --bind /dev ./dev
#mount --bind /dev/pts ./dev/pts
-mount -t proc /proc ./proc
-mount --bind /etc/resolv.conf ./etc/resolv.conf
-mount -t sysfs /sys ./sys
+#mount -t proc /proc ./proc
+#mount --bind /etc/resolv.conf ./etc/resolv.conf
+#mount -t sysfs /sys ./sys
#mount --bind /dev/shm ./dev/shm
-chmod 777 -R root
+chmod 777 -R root tmp
xhost +
# 挂载 Wine 运行器目录
mount -o bind `dirname $0` ./opt/apps/deepin-wine-runner/
@@ -31,7 +33,7 @@ mount -o bind /usr/share/fonts ./usr/share/fonts
# 配置用户
if [ ! -d "home/$2" ]; then
# 新建用户,且密码为 123456,以便读写
- chroot . bash /opt/apps/deepin-wine-runner/ChangePassword.sh "$2"
+ "$programPath/pardus-chroot" . bash /opt/apps/deepin-wine-runner/ChangePassword.sh "$2"
fi
# 挂载用户目录到 /root(默认 $HOME 路径)
if [[ $2 == "root" ]]; then
@@ -41,4 +43,4 @@ else
fi
# 如果参数 3 存在
-chroot "--userspec=$2:$2" . env "HOME=/home/$2" ${@:3}
+"$programPath/pardus-chroot" "--userspec=$2:$2" . env "HOME=/home/$2" ${@:3}
diff --git a/deb/opt/apps/deepin-wine-runner/MountWithoutHome.sh b/deb/opt/apps/deepin-wine-runner/MountWithoutHome.sh
index 724f16e..af91d24 100755
--- a/deb/opt/apps/deepin-wine-runner/MountWithoutHome.sh
+++ b/deb/opt/apps/deepin-wine-runner/MountWithoutHome.sh
@@ -7,6 +7,7 @@ if [ ! -d "$1" ]; then
echo "路径不存在!"
exit 1
fi
+programPath=`dirname $0`
echo $0
echo $1
echo $2
@@ -16,14 +17,15 @@ cd "$1"
# 拷贝 Qemu Static
cp -r /usr/bin/qemu-*-static ./usr/bin
# 挂载目录
-mount --bind /dev ./dev
+# 这里将由 pardus-chroot 处理
+#mount --bind /dev ./dev
#mount --bind /dev/pts ./dev/pts
-mount -t proc /proc ./proc
-mount --bind /etc/resolv.conf ./etc/resolv.conf
-mount -t sysfs /sys ./sys
+#mount -t proc /proc ./proc
+#mount --bind /etc/resolv.conf ./etc/resolv.conf
+#mount -t sysfs /sys ./sys
#mount --bind /dev/shm ./dev/shm
-chmod 777 -R root
+chmod 777 -R root tmp
xhost +
# 如果参数 3 存在
-chroot . ${@:3}
+"$programPath/pardus-chroot" . ${@:3}
diff --git a/deb/opt/apps/deepin-wine-runner/ProgramFen.py b/deb/opt/apps/deepin-wine-runner/ProgramFen.py
index 7e6f4a2..0c432c9 100644
--- a/deb/opt/apps/deepin-wine-runner/ProgramFen.py
+++ b/deb/opt/apps/deepin-wine-runner/ProgramFen.py
@@ -12,10 +12,9 @@ class ProgramRunStatusShow():
msgWindow = None
def ShowWindow():
try:
- #fenlists = requests.get(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9iYXNoYXBwLw==").decode("utf-8") + fileName + base64.b64decode("L2FsbC5qc29u").decode("utf-8")).json()
fenlists = []
for i in range(6):
- fenlists.append(int(requests.get(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9GZW4=").decode("utf-8") + f"{i}/data.txt").text))
+ fenlists.append(int(requests.get(base64.b64decode("aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy93aW5lLXJ1bm5lci1kb3dubG9hZHMtb2YtcnVubmVyL3Jhdy9icmFuY2gvbWFzdGVyL0Zlbi9GZW4=").decode("utf-8") + f"{i}.txt").text))
tipsInfo = ""
except:
traceback.print_exc()
diff --git a/deb/opt/apps/deepin-wine-runner/VM/VirtualMachine b/deb/opt/apps/deepin-wine-runner/VM/VirtualMachine
index bae4484..ed25358 100755
Binary files a/deb/opt/apps/deepin-wine-runner/VM/VirtualMachine and b/deb/opt/apps/deepin-wine-runner/VM/VirtualMachine differ
diff --git a/deb/opt/apps/deepin-wine-runner/VM/Windows7X64Auto.iso b/deb/opt/apps/deepin-wine-runner/VM/Windows7X64Auto.iso
index 680068f..ea63347 100755
Binary files a/deb/opt/apps/deepin-wine-runner/VM/Windows7X64Auto.iso and b/deb/opt/apps/deepin-wine-runner/VM/Windows7X64Auto.iso differ
diff --git a/deb/opt/apps/deepin-wine-runner/VM/Windows7X86Auto.iso b/deb/opt/apps/deepin-wine-runner/VM/Windows7X86Auto.iso
index 34ff06a..79108c9 100755
Binary files a/deb/opt/apps/deepin-wine-runner/VM/Windows7X86Auto.iso and b/deb/opt/apps/deepin-wine-runner/VM/Windows7X86Auto.iso differ
diff --git a/deb/opt/apps/deepin-wine-runner/deepin-wine-easy-packager.py b/deb/opt/apps/deepin-wine-runner/deepin-wine-easy-packager.py
index b9cfd20..342691d 100755
--- a/deb/opt/apps/deepin-wine-runner/deepin-wine-easy-packager.py
+++ b/deb/opt/apps/deepin-wine-runner/deepin-wine-easy-packager.py
@@ -433,6 +433,8 @@ class RunThread(QtCore.QThread):
self.RunCommand(f"chmod 777 -Rv '{bottlePath}'")
# 禁止生成 .desktop 文件
self.RunCommand(f"WINEPREFIX='{bottlePath}' deepin-wine6-stable 'reg' 'add' 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v winemenubuilder.exe '/f'")
+ # 写入字体
+ self.RunCommand(f"WINEPREFIX='{bottlePath}' '{programPath}/AutoShell/command/installfont' 1")
# 安装包
self.info.emit("请在运行完安装程序后按下打包器主界面的“安装程序执行完成按钮”以进行下一步操作")
global pressCompleteDownload
diff --git a/deb/opt/apps/deepin-wine-runner/deepin-wine-packager.py b/deb/opt/apps/deepin-wine-runner/deepin-wine-packager.py
index 03e62b1..4596cc4 100755
--- a/deb/opt/apps/deepin-wine-runner/deepin-wine-packager.py
+++ b/deb/opt/apps/deepin-wine-runner/deepin-wine-packager.py
@@ -526,12 +526,17 @@ fi
##############<<<<<<<<<屏蔽mono和gecko安装器开始
##默认屏蔽mono和gecko安装器
-#if [ "$APPRUN_CMD" = "spark-wine7-devel" ];then
+{['''#if [ "$APPRUN_CMD" = "spark-wine7-devel" ];then
#export WINEDLLOVERRIDES="mscoree,mshtml="
#echo "为了降低打包体积,默认关闭gecko和momo,如有需要,注释此行(仅对spark-wine7-devel有效)"
-#fi
+#fi''', '''if [ "$APPRUN_CMD" = "spark-wine7-devel" ];then
+
+export WINEDLLOVERRIDES="mscoree,mshtml="
+echo "为了降低打包体积,默认关闭gecko和momo,如有需要,注释此行(仅对spark-wine7-devel有效)"
+
+fi'''][int(disabledMono.isChecked())]}
##############>>>>>>>>>屏蔽mono和gecko安装器结束
#########################执行段
@@ -1888,6 +1893,7 @@ debControlFrame.addWidget(button5)
debControlFrame.addWidget(installDeb)
rmBash = QtWidgets.QCheckBox(transla.transe("U", "设置卸载该 deb 后自动删除该容器"))
cleanBottonByUOS = QtWidgets.QCheckBox(transla.transe("U", "使用统信 Wine 生态适配活动容器清理脚本"))
+disabledMono = QtWidgets.QCheckBox(transla.transe("U", "禁用 Mono 和 Gecko 安装器"))
debArch = QtWidgets.QComboBox()
debArch.addItems(["i386", "arm64(box86+exagear)"])
textbox1 = QtWidgets.QTextBrowser()
@@ -1935,7 +1941,7 @@ desktopIconTabLayout.addWidget(QtWidgets.QLabel(transla.transe("U", "要显示
desktopIconTabLayout.addWidget(QtWidgets.QLabel(transla.transe("U", "要显示的 .desktop 文件的图标:")), 10, 0, 1, 1)
iconTab1.setLayout(desktopIconTabLayout)
#desktopIconTab.setTabPosition(QtWidgets.QTabWidget.East)
-desktopIconTab.addTab(iconTab1, "Defult")
+desktopIconTab.addTab(iconTab1, "默认图标")
desktopIconTab.setCornerWidget(controlWidget)
widgetLayout.addWidget(desktopIconTab, 8, 0, 6, 3)
widgetLayout.addWidget(QtWidgets.QLabel(transla.transe("U", "选择打包的 wine 版本(※必选):")), 6, 0, 1, 1)
@@ -1979,6 +1985,7 @@ moreSettingLayout.addWidget(QtWidgets.QLabel(transla.transe("U", "deb 包选项
moreSettingLayout.addWidget(rmBash)
moreSettingLayout.addWidget(cleanBottonByUOS)
moreSettingLayout.addWidget(chooseWineHelperValue)
+moreSettingLayout.addWidget(disabledMono)
moreSettingLayout.addWidget(QtWidgets.QLabel(transla.transe("U", "deb 的依赖(强制,如无特殊需求默认即可):")))
moreSettingLayout.addWidget(debDepends)
moreSettingLayout.addWidget(QtWidgets.QLabel(transla.transe("U", "deb 的推荐依赖(非强制,一般默认即可):")))
@@ -2042,6 +2049,7 @@ try:
except:
pass
rmBash.setChecked(True)
+disabledMono.setChecked(True)
cleanBottonByUOS.setChecked(True)
chooseWineHelperValue.setChecked(True)
e12_text.setText(f"{get_desktop_path()}/demo_1.0.0_i386.deb")
diff --git a/deb/opt/apps/deepin-wine-runner/deepin-wine-runner b/deb/opt/apps/deepin-wine-runner/deepin-wine-runner
index 5237485..563ecf7 100755
--- a/deb/opt/apps/deepin-wine-runner/deepin-wine-runner
+++ b/deb/opt/apps/deepin-wine-runner/deepin-wine-runner
@@ -1104,11 +1104,11 @@ class UpdateWindow():
url = "aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci91cGRhdGVuZXcuanNvbg=="
else:
if "deepin/UOS 应用商店版本<带签名>" == programVersionType:
- url = "aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci91cGRhdGUtdW9zLmpzb24="
+ url = "aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy93aW5lLXJ1bm5lci11cGRhdGUtaW5mb3JtYXRpb24vcmF3L2JyYW5jaC9tYXN0ZXIvdXBkYXRlLXVvcy5qc29u"
elif "星火应用商店版本" == programVersionType:
- url = "aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci91cGRhdGUtc3BhcmsuanNvbg=="
+ url = "aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy93aW5lLXJ1bm5lci11cGRhdGUtaW5mb3JtYXRpb24vcmF3L2JyYW5jaC9tYXN0ZXIvdXBkYXRlLXNwYXJrLmpzb24="
else:
- url = "aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci91cGRhdGUuanNvbg=="
+ url = "aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy93aW5lLXJ1bm5lci11cGRhdGUtaW5mb3JtYXRpb24vcmF3L2JyYW5jaC9tYXN0ZXIvdXBkYXRlLmpzb24="
try:
UpdateWindow.data = json.loads(requests.get(base64.b64decode(url).decode("utf-8")).text)
@@ -2340,29 +2340,14 @@ exe路径\' 参数 \'
千万不要中断后不删除源的情况下 apt upgrade !!!中断后只需重新打开脚本输入 repair 或者随意安装一个 Wine(会自动执行恢复操作)即可
以及此脚本安装的 Wine 无法保证 100% 能使用,以及副作用是会提示;
N: 鉴于仓库 'https://community-packages.deepin.com/beige beige InRelease' 不支持 'i386' 体系结构,跳过配置文件 'main/binary-i386/Packages' 的获取。
''')
-updateThingsString = transla.transe("U", '''※1、支持使用 Qemu + Chroot 跨运行 Wine 以及指定程序的功能;
-※2、提供了简易打包器以用于打包简易 deb;
-※3、支持下载配置过的 Qemu + Chroot 容器;
-※4、支持在隔离的 Chroot 容器内运行 Wine;
-※5、支持解压指定 deb 的内打包好的容器;
-※6、优化 Wine 列表显示;
-※7、新增程序论坛和教程入口;
-※8、程序公告功能;
-※9、新增程序评分功能;
-※10、新增解包 deb 内 Wine 容器功能;
-※11、新增 Vkd3d Proton 安装功能,更新 dxvk 版本至 2.0.0;
-※12、新增程序菜单栏部分栏目图标;
-※13、打包器支持按下 Shift + F1 查看指定选项提示;
-14、优化非基于生态适配脚本的打包器内容自动填充功能;
-15、优化程序文案;
-16、新增日志翻译功能;
-17、程序进一步完善英语翻译(机翻);
-18、优化程序更新策略;
-19、优化日志分析功能;
-20、优化程序 UI。''')
+updateThingsString = transla.transe("U", '''※1、不基于生态适配脚本打包器支持禁用 Mono/Gecko 打包器;
+※2、自动容器配置脚本新增命令 decompressionbottle、programforum,新增评论功能;
+※3、安装 Windows 虚拟机功能更换应答镜像图标并添加常用 Windows 组件安装功能;
+※4、安装 Windows 虚拟机功能提供镜像下载的网盘链接。
+''')
for i in information["Thank"]:
thankText += f"{i}\n"
-updateTime = "2022年12月10日"
+updateTime = "2023年01月03日"
aboutProgram = transla.transe("U", """Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序,内置了对Wine图形化的支持、各种Wine工具、自制的Wine程序打包器和运行库安装工具等。
它同时还内置了基于VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作。
@@ -2396,15 +2381,18 @@ Qt 版本:{QtCore.qVersion()}
{tips}
+关于 RacoonGX 项目组
+是由 @gfdgd xi 带头的团队,gfdgd xi开发了UEngine运行器等好用的开源软件。
+
友谊链接
星火应用商店:https://spark-app.store/
Deepin 官网:https://www.deepin.org
Deepin 论坛:https://bbs.deepin.org
论坛:https://gfdgdxi.flarum.cloud/
-©2020~{time.strftime("%Y")} gfdgd xi、为什么您不喜欢熊出没和阿布呢
'''
+©2020~{time.strftime("%Y")} RacoonGX 团队,By gfdgd xi、为什么您不喜欢熊出没和阿布呢
'''
title = "Wine 运行器 {}".format(version)
-#'''
+#'''
updateThings = "{} 更新内容:\n{}\n更新时间:{}".format(version, updateThingsString, updateTime, time.strftime("%Y"))
try:
threading.Thread(target=requests.get, args=[parse.unquote(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9vcGVuL0luc3RhbGwucGhw").decode("utf-8")) + "?Version=" + version]).start()
@@ -2568,7 +2556,7 @@ mainLayout.addWidget(returnText, 0, 1, 2, 1)
# 版权
copy = QtWidgets.QLabel(f"""\n程序版本:{version},提示:Wine 无法运行所有的 Windows 程序,如果想要运行更多可执行程序,可以考虑虚拟机和双系统
-©2020~{time.strftime("%Y")} gfdgd xi、为什么您不喜欢熊出没和阿布呢""")
+©2020~{time.strftime("%Y")} RacoonGX 团队,By gfdgd xi、为什么您不喜欢熊出没和阿布呢""")
mainLayout.addWidget(copy, 2, 0, 1, 1)
# 程序运行
@@ -2629,8 +2617,8 @@ p4.triggered.connect(window.close)
wineOption = menu.addMenu(transla.transe("U", "Wine(&W)"))
w1 = QtWidgets.QAction(transla.transe("U", "打开 Wine 容器目录"))
-w2 = QtWidgets.QAction(transla.transe("U", "安装常见字体"))
-w3 = QtWidgets.QAction(transla.transe("U", "安装自定义字体"))
+w2 = QtWidgets.QAction(QtGui.QIcon.fromTheme("font"), transla.transe("U", "安装常见字体"))
+w3 = QtWidgets.QAction(QtGui.QIcon.fromTheme("font"), transla.transe("U", "安装自定义字体"))
w4 = QtWidgets.QAction(transla.transe("U", "删除选择的 Wine 容器"))
cleanBottonUOS = QtWidgets.QAction(transla.transe("U", "清理 Wine 容器(基于 Wine 适配活动脚本)"))
wineKeyboardLnk = QtWidgets.QAction(transla.transe("U", "Wine 快捷键映射"))
@@ -2665,7 +2653,7 @@ wm1_1 = QtWidgets.QAction(transla.transe("U", "在指定wine、指定容器安
wm1_2 = QtWidgets.QAction(transla.transe("U", "在指定wine、指定容器安装 Visual Studio C++"))
wm1_3 = QtWidgets.QAction(transla.transe("U", "在指定wine、指定容器安装 MSXML"))
wm1_4 = QtWidgets.QAction(transla.transe("U", "在指定wine、指定容器安装 gecko"))
-wm1_5 = QtWidgets.QAction(transla.transe("U", "在指定wine、指定容器安装 mono"))
+wm1_5 = QtWidgets.QAction(QtGui.QIcon.fromTheme("mono"), transla.transe("U", "在指定wine、指定容器安装 mono"))
wm1_7 = QtWidgets.QAction(transla.transe("U", "在指定wine、指定容器安装 Visual Basic Runtime"))
wm1_6 = QtWidgets.QAction(transla.transe("U", "在指定wine、指定容器安装其它运行库"))
wm1.addAction(wm1_1)
@@ -2676,9 +2664,9 @@ wm1.addAction(wm1_5)
wm1.addAction(wm1_7)
wm1.addAction(wm1_6)
wm2 = wineOption.addMenu(transla.transe("U", "在指定 Wine、容器运行基础应用"))
-wm2_1 = QtWidgets.QAction(transla.transe("U", "打开指定wine、指定容器的控制面板"))
-wm2_2 = QtWidgets.QAction(transla.transe("U", "打开指定wine、指定容器的浏览器"))
-wm2_3 = QtWidgets.QAction(transla.transe("U", "打开指定wine、指定容器的注册表"))
+wm2_1 = QtWidgets.QAction(QtGui.QIcon.fromTheme("control-center2"), transla.transe("U", "打开指定wine、指定容器的控制面板"))
+wm2_2 = QtWidgets.QAction(QtGui.QIcon.fromTheme("web-browser"), transla.transe("U", "打开指定wine、指定容器的浏览器"))
+wm2_3 = QtWidgets.QAction(QtGui.QIcon.fromTheme("regedit"), transla.transe("U", "打开指定wine、指定容器的注册表"))
wm2_4 = QtWidgets.QAction(transla.transe("U", "打开指定wine、指定容器的任务管理器"))
wm2_5 = QtWidgets.QAction(transla.transe("U", "打开指定wine、指定容器的资源管理器"))
wm2_6 = QtWidgets.QAction(transla.transe("U", "打开指定wine、指定容器的关于 wine"))
diff --git a/deb/opt/apps/deepin-wine-runner/information.json b/deb/opt/apps/deepin-wine-runner/information.json
index 5b9dcd3..1b4b497 100755
--- a/deb/opt/apps/deepin-wine-runner/information.json
+++ b/deb/opt/apps/deepin-wine-runner/information.json
@@ -1,5 +1,5 @@
{
- "Version": "3.0.0",
+ "Version": "3.0.1",
"Thank": [
"感谢 @豪 提供程序图标",
"感谢 @鹤舞白沙 对程序文案进行优化以及编写《Wine运行器和Wine打包器傻瓜式使用教程(小白专用) 》",
diff --git a/deb/opt/apps/deepin-wine-runner/package-script.zip b/deb/opt/apps/deepin-wine-runner/package-script.zip
index af614f6..289971c 100755
Binary files a/deb/opt/apps/deepin-wine-runner/package-script.zip and b/deb/opt/apps/deepin-wine-runner/package-script.zip differ
diff --git a/information.json b/information.json
index 5b9dcd3..1b4b497 100644
--- a/information.json
+++ b/information.json
@@ -1,5 +1,5 @@
{
- "Version": "3.0.0",
+ "Version": "3.0.1",
"Thank": [
"感谢 @豪 提供程序图标",
"感谢 @鹤舞白沙 对程序文案进行优化以及编写《Wine运行器和Wine打包器傻瓜式使用教程(小白专用) 》",
diff --git a/mainwindow.py b/mainwindow.py
index 576fd9f..563ecf7 100755
--- a/mainwindow.py
+++ b/mainwindow.py
@@ -2340,10 +2340,14 @@ exe路径\' 参数 \'
千万不要中断后不删除源的情况下 apt upgrade !!!中断后只需重新打开脚本输入 repair 或者随意安装一个 Wine(会自动执行恢复操作)即可
以及此脚本安装的 Wine 无法保证 100% 能使用,以及副作用是会提示;
N: 鉴于仓库 'https://community-packages.deepin.com/beige beige InRelease' 不支持 'i386' 体系结构,跳过配置文件 'main/binary-i386/Packages' 的获取。
''')
-updateThingsString = transla.transe("U", '''※1、不基于生态适配脚本打包器支持禁用 Mono/Gecko 打包器''')
+updateThingsString = transla.transe("U", '''※1、不基于生态适配脚本打包器支持禁用 Mono/Gecko 打包器;
+※2、自动容器配置脚本新增命令 decompressionbottle、programforum,新增评论功能;
+※3、安装 Windows 虚拟机功能更换应答镜像图标并添加常用 Windows 组件安装功能;
+※4、安装 Windows 虚拟机功能提供镜像下载的网盘链接。
+''')
for i in information["Thank"]:
thankText += f"{i}\n"
-updateTime = "2022年12月26日"
+updateTime = "2023年01月03日"
aboutProgram = transla.transe("U", """Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序,内置了对Wine图形化的支持、各种Wine工具、自制的Wine程序打包器和运行库安装工具等。
它同时还内置了基于VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作。
diff --git a/package-script.zip b/package-script.zip
index af614f6..289971c 100755
Binary files a/package-script.zip and b/package-script.zip differ