diff --git a/Makefile b/Makefile
index 3bda443..50c601b 100755
--- a/Makefile
+++ b/Makefile
@@ -35,6 +35,7 @@ build:
cp -rv updatekiller.py new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
cp -rv pkexec/* new-deb-build/usr/share/polkit-1/actions
cp -rv AutoShell new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
+ cp -rv AutoConfig.py new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
cp -rv UI new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
cp -rv ConfigLanguareRunner-help.json new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
cp -rv ConfigLanguareRunner.py new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
diff --git a/information.json b/information.json
index 52f0cd7..b6ce66f 100755
--- a/information.json
+++ b/information.json
@@ -36,12 +36,12 @@
"※10、修复 UEngine 打包器在部分系统无法打开的问题",
"※11、新增程序公告功能",
"※12、修复了程序更新功能从高版本降级到低版本的问题",
- "13、更改程序论坛网址;",
- "14、新增程序评分功能;",
- "15、修复 UEngine 打包器在打包时无法正确禁用所有选项",
- "16、UEngine 打包器打包的 deb 不再指定 deepin-elf-verify 依赖版本",
- "17、“更多帮助”功能支持访问云端的帮助内容",
- "18、……",
+ "※13、不强制依赖 Deepin 终端",
+ "14、更改程序论坛网址;",
+ "15、新增程序评分功能;",
+ "16、修复 UEngine 打包器在打包时无法正确禁用所有选项",
+ "17、UEngine 打包器打包的 deb 不再指定 deepin-elf-verify 依赖版本",
+ "18、“更多帮助”功能支持访问云端的帮助内容",
"",
"V1.8.3:",
"※1、修复安装/打包程序时出现找不到图标的问题;",
diff --git a/new-deb-build/DEBIAN/postinst b/new-deb-build/DEBIAN/postinst
index 9650244..0e988d2 100755
--- a/new-deb-build/DEBIAN/postinst
+++ b/new-deb-build/DEBIAN/postinst
@@ -24,4 +24,4 @@ ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-applist-laun
# 因为 Ubuntu 的问题,省略
gtk-update-icon-cache /usr/share/icons/bloom > /dev/null | true
# 向服务器返回安装数加1(不显示内容且忽略错误)
-python3 /opt/apps/com.gitee.uengine.runner.spark/files/Download.py 1.8.3 > /dev/null | true
+python3 /opt/apps/com.gitee.uengine.runner.spark/files/Download.py 2.0.0 > /dev/null | true
diff --git a/new-deb-build/DEBIAN/postrm b/new-deb-build/DEBIAN/postrm
index 3738e06..00679ce 100755
--- a/new-deb-build/DEBIAN/postrm
+++ b/new-deb-build/DEBIAN/postrm
@@ -37,6 +37,7 @@ if [ "$1" = "purge" ]; then
echo /home/$username
if [ -d "/home/$username/.config/uengine-runner/" ]; then
rm -rf "/home/$username/.config/uengine-runner/"
+ rm -rf "/home/$username/.local/share/uengine-runner"
fi
done
# 清理 root 用户的配置文件
diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/AutoConfig.py b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/AutoConfig.py
new file mode 100755
index 0000000..406ceb8
--- /dev/null
+++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/AutoConfig.py
@@ -0,0 +1,599 @@
+#!/usr/bin/env python3
+# 使用系统默认的 python3 运行
+###########################################################################################
+# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
+# 版本:2.4.0
+# 更新时间:2022年10月25日
+# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
+# 基于 Python3 构建
+###########################################################################################
+#################
+# 引入所需的库
+#################
+import os
+import sys
+import base64
+import json
+import traceback
+import urllib.request
+import requests
+import PyQt5.QtWidgets as QtWidgets
+from UI.AutoConfig import *
+from Model import *
+try:
+ import PyQt5.QtWebEngineWidgets as QtWebEngineWidgets
+ webeng = True
+except:
+ print("未安装此依赖库")
+ webeng = False
+print("""太常引·建康中秋夜为吕叔潜赋
+一轮秋影转金波,飞镜又重磨。把酒问姮娥:被白发、欺人奈何?
+乘风好去,长空万里,直下看山河。斫去桂婆娑,人道是、清光更多。""")
+print("")
+print("""译文:一轮缓缓移动的秋月洒下万里金波,就像那刚磨亮的铜镜又飞上了天廓。我举起酒杯问那月中的嫦娥:怎么办呢?白发日增,好像故意欺负我。
+我要乘风飞上万里长空,俯视祖国的大好山河。还要砍去月中摇曳的桂树枝柯,人们说,这将使月亮洒下人间的光辉更多。""")
+print("================================")
+urlSourcesList = [
+ "https://code.gitlink.org.cn/gfdgd_xi/uengine-runner-list/raw/branch/master/auto", # Gitlink 源
+ "https://gitee.com/gfdgd-xi/uengine-wine-runner-auto-configuration-script/raw/master/", # Gitee 源
+ "https://gfdgd-xi.github.io/uengine-wine-runner-auto-configuration-script/", # Github 源
+ "http://gfdgdxi.msns.cn/uengine-runner-list/auto/", # 备用源1,纯 IPv6 源
+ "http://gfdgdxi.free.idcfengye.com/uengine-runner-auto-configuration-script/", # 备用源2
+ "http://gfdgdxi.free.idcfengye.com/uengine-runner-list/auto/", # 备用源 3
+ "http://127.0.0.1/uengine-runner-list/auto/" # 本地测试源
+]
+urlSources = urlSourcesList[0]
+lists = []
+
+class ProgramRunStatusUpload():
+ msgWindow = None
+ starLayout = None
+ fen = None
+ starList = []
+ sha1Value = ""
+ programName = None
+ def ChangeStar():
+ if ProgramRunStatusUpload.fen.currentIndex() > 5:
+ for i in ProgramRunStatusUpload.starList:
+ i.setText(f"")
+ return
+ for i in range(ProgramRunStatusUpload.fen.currentIndex()):
+ ProgramRunStatusUpload.starList[i].setText(f"
")
+ head = ProgramRunStatusUpload.fen.currentIndex()
+ end = len(ProgramRunStatusUpload.starList)
+ for i in range(head, end):
+ ProgramRunStatusUpload.starList[i].setText(f"
")
+
+ def ShowWindow(sha="", title=""):
+ ProgramRunStatusUpload.starList = []
+ ProgramRunStatusUpload.sha1Value = sha
+ ProgramRunStatusUpload.msgWindow = QtWidgets.QMainWindow()
+ msgWidget = QtWidgets.QWidget()
+ msgWidgetLayout = QtWidgets.QGridLayout()
+ ProgramRunStatusUpload.programName = QtWidgets.QLineEdit()
+ ProgramRunStatusUpload.fen = QtWidgets.QComboBox()
+ ProgramRunStatusUpload.starLayout = QtWidgets.QHBoxLayout()
+ upload = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "上传"))
+ upload.clicked.connect(ProgramRunStatusUpload.Upload)
+ if title != "":
+ ProgramRunStatusUpload.programName.setText(title)
+ ProgramRunStatusUpload.programName.setDisabled(True)
+ # 生成星星列表
+ for i in [1, 1, 1, 1, 0]:
+ ProgramRunStatusUpload.starList.append(QtWidgets.QLabel(f"
"))
+ ProgramRunStatusUpload.starLayout.addWidget(ProgramRunStatusUpload.starList[-1])
+ ProgramRunStatusUpload.starLayout.addItem(QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum))
+ ProgramRunStatusUpload.programName.setPlaceholderText(QtCore.QCoreApplication.translate("U", "如果这个程序和程序名确实是合法还是检测到敏感词,改为“NULL”即可"))
+ ProgramRunStatusUpload.fen.addItems(["0分", "1分", "2分", "3分", "4分", "5分"])
+ ProgramRunStatusUpload.fen.setCurrentIndex(4)
+ ProgramRunStatusUpload.fen.currentIndexChanged.connect(ProgramRunStatusUpload.ChangeStar)
+ msgWidgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "程序名:")), 0, 0)
+ msgWidgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "评分:")), 1, 0)
+ msgWidgetLayout.addWidget(ProgramRunStatusUpload.programName, 0, 1)
+ msgWidgetLayout.addWidget(ProgramRunStatusUpload.fen, 1, 1)
+ msgWidgetLayout.addLayout(ProgramRunStatusUpload.starLayout, 2, 1)
+ msgWidgetLayout.addWidget(upload, 3, 1)
+ msgWidget.setLayout(msgWidgetLayout)
+ ProgramRunStatusUpload.msgWindow.setCentralWidget(msgWidget)
+ ProgramRunStatusUpload.msgWindow.setWindowTitle(QtCore.QCoreApplication.translate("U", "上传程序运行情况"))
+ ProgramRunStatusUpload.msgWindow.setWindowIcon(QtGui.QIcon(iconPath))
+ ProgramRunStatusUpload.msgWindow.show()
+
+ def Upload():
+ try:
+ #if ProgramRunStatusUpload.sha1Value == "":
+ #ProgramRunStatusUpload.sha1Value = ProgramRunStatusUpload.GetSHA1(e2.currentText())
+ QtWidgets.QMessageBox.information(None, QtCore.QCoreApplication.translate("U", "提示"), requests.post(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0OjMwMjUwL2Jhc2g=").decode("utf-8"), {
+ "BashName": ProgramRunStatusUpload.sha1Value,
+ "Fen": ProgramRunStatusUpload.fen.currentIndex()
+ }).json()["Error"])
+ except:
+ traceback.print_exc()
+ QtWidgets.QMessageBox.critical(None, QtCore.QCoreApplication.translate("U", "错误"), QtCore.QCoreApplication.translate("U", "数据上传失败!"))
+
+class InformationWindow():
+ def ShowWindow():
+ #webeng = False
+ # 获取选中项
+ try:
+ choose = ui.searchList.selectionModel().selectedIndexes()[0].data()
+ except:
+ QtWidgets.QMessageBox.critical(window, "错误", "您未选择任何配置文件")
+ return
+ fileName = ""
+ for i in lists:
+ print(i)
+ if i[0] == choose:
+ fileName = i[1]
+ break
+ aboutHtml = ""
+ try:
+ get = requests.get(f"{urlSources}/information/{fileName}.txt")
+ if get.status_code / 100 != 2 and get.status_code / 100 != 3:
+ int("Bad")
+ about = get.text
+ aboutHtml = str(about)
+ if not "<" in about:
+ # 非 Html 标签
+ for i in about.splitlines():
+ about += f"
{i}
\n" + #about = f"{about}"
+ about = f"暂无此程序的介绍
" + try: + import requests as r + 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] + tipsInfo = "暂时无人提交此脚本运行情况,是否立即提交?" + maxHead = fenlists.index(max(fenlists)) + allNumber = 0 + for i in fenlists: + allNumber += i + try: + maxNumber = max(fenlists) / allNumber * 100 + if tipsInfo == "": + tipsInfo = f"有{maxNumber}%的用户选择了这个评分" + except: + pass + end = 5 + starHtml = "" + if maxHead > 5: + for i in range(end): + if webeng: + starHtml += f"{starHtml}
\n{tipsInfo}
" + message = QtWidgets.QDialog() + messageLayout = QtWidgets.QVBoxLayout() + if webeng: + informationText = QtWebEngineWidgets.QWebEngineView() + print(aboutHtml) + if aboutHtml[:7] == "Visit: ": + url = aboutHtml[7:].splitlines()[0] + print(url) + informationText.setUrl(QtCore.QUrl(url.strip())) + else: + #informationText.linkClicked.connect(lambda: print("a")) + try: + with open("/tmp/deepin-wine-runner-information.html", "w") as file: + file.write(about) + informationText.setUrl(QtCore.QUrl("file:///tmp/deepin-wine-runner-information.html")) + except: + traceback.print_exc() + informationText.setHtml(about) + #informationText.urlChanged.connect(lambda: informationText.setUrl(QtCore.QUrl("https://gfdgd-xi.github.io"))) + else: + informationText = QtWidgets.QTextBrowser() + informationText.setHtml(about) + uploadFen = QtWidgets.QPushButton("提交评分") + uploadFen.clicked.connect(lambda: ProgramRunStatusUpload.ShowWindow(fileName, choose)) + + #informationText.setUrl(QtCore.QUrl("https://gfdgd-xi.github.io")) + messageLayout.addWidget(informationText) + messageLayout.addWidget(uploadFen) + message.setWindowTitle(f"关于“{choose}”的介绍") + message.resize(int(message.frameSize().width() * 1.5), int(message.frameSize().height())) + message.setLayout(messageLayout) + #message.setWindowModality(ApplicationModal); + 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("第{i[1]}层
"), 1, 2) + inLayout.addWidget(QtWidgets.QLabel(i[2]), 2, 0, 1, 3) + widget.setLayout(inLayout) + pinLunLayout1.addWidget(widget) + #pinLunLayout.addWidget(QtWidgets.QLabel("此为最新版本,无需更新,但似乎您当前使用的程序版本比云端版本还要高。
+出现这个问题可能会有如下几种情况:
+1、使用编译或者内测版本
+2、自己修改了程序版本
+3、作者忘记更新云端上的更新信息了
+如果是第三种情况,请反馈到此:https://gitee.com/gfdgd-xi-org/uengine-runner/issues/I6B091
+或者是这里:https://bbs.racoongx.cn/t/bugs
+![]()
无法连接到服务器
+你可以尝试:
+1. 判断是否能正常连接网络
+2. 网络配置是否有误
""" + global webInformation + if bad: + webInformation = QtWidgets.QTextBrowser() + else: + webInformation = QtWebEngineWidgets.QWebEngineView() + webInformation.setHtml(text) + webInformation.setWindowTitle("获取程序公告") + webInformation.setWindowIcon(QtGui.QIcon(iconPath)) + webInformation.resize(int(webInformation.frameGeometry().width() * 1.3), int(webInformation.frameGeometry().height() * 1.1)) + webInformation.show() + + def UseProgram(): global useProgram useProgram = '''1、UEngine:{}
@@ -1496,6 +1586,7 @@ SystemVersion = GetSystemVersion() iconPath = "{}/runner.svg".format(os.path.split(os.path.realpath(__file__))[0]) about = f'''介绍:一个基于 Python3 的 PyQt5 制作的 UEngine 运行器,在新版本Deepin/UOS发布后,可以在应用商店安装部分官方已适配的安卓应用,对爱好者来说,不能自己安装APK软件包始终差点意思,本程序可以为Deepin/UOS上的UEngine安卓运行环境安装自定义APK软件包,并能发送安装的APK包启动菜单到桌面或系统菜单。
+程序开源许可证:GPLV3
版本:{version}
适用平台:{goodRunSystem}
Qt 版本:{QtCore.qVersion()}
@@ -1603,12 +1694,32 @@ except: # add sub window #添加窗口开启关闭开关,防止重复开启 windowflag = "close" -def Egg(): +def Open(): try: - lists = json.loads(requests.get("https://304626p927.goho.co/uengine-runner/VersionList.json").text) + lists = json.loads(requests.get("https://code.gitlink.org.cn/gfdgd-xi-org/wine-runner-downloads-of-runner/raw/branch/master/Open-UEngine/lists.json").text) data = [] for i in lists: - data.append(int(requests.get("https://304626p927.goho.co/uengine-runner/{}/data.txt".format(i)).text)) + data.append(int(requests.get("https://code.gitlink.org.cn/gfdgd-xi-org/wine-runner-downloads-of-runner/raw/branch/master/Open-UEngine/{}.txt".format(i)).text)) + except: + QtWidgets.QMessageBox.critical(widget, "错误", "服务器出错!数据获取失败!") + return + fig = matplotlib.pylab.figure() + fig.canvas.set_window_title("“UEngine 运行器”打开数(数据只供参考)") + matplotlib.pylab.plot(lists, data) + index = numpy.arange(len(lists)) + fonts = matplotlib.font_manager.FontProperties(fname='/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc') # 用于支持中文显示,需要依赖fonts-noto-cjk + matplotlib.pylab.xlabel("版本号", fontproperties=fonts) + matplotlib.pylab.ylabel("打开数", fontproperties=fonts) + + matplotlib.pylab.title("“UEngine 运行器”打开数(数据只供参考)", fontproperties=fonts) + matplotlib.pylab.show() + +def Download(): + try: + lists = json.loads(requests.get("https://code.gitlink.org.cn/gfdgd-xi-org/wine-runner-downloads-of-runner/raw/branch/master/Install-UEngine/lists.json").text) + data = [] + for i in lists: + data.append(int(requests.get("https://code.gitlink.org.cn/gfdgd-xi-org/wine-runner-downloads-of-runner/raw/branch/master/Install-UEngine/{}.txt".format(i)).text)) except: QtWidgets.QMessageBox.critical(widget, "错误", "服务器出错!数据获取失败!") return @@ -1650,14 +1761,17 @@ def showhelp(): BtnGongxian = QtWidgets.QPushButton("谢明列表") BtnAbout = QtWidgets.QPushButton("关于") BtnDownN = QtWidgets.QPushButton("程序下载量") + BtnOpenN = QtWidgets.QPushButton("程序打开量") HelpStr = QtWidgets.QTextBrowser() - BtnDownN.setEnabled("--彩蛋" in sys.argv) + # 此功能从 2.0.0 后不再隐藏 + #BtnDownN.setEnabled("--彩蛋" in sys.argv) BtnReadme.clicked.connect(ChgTips) BtnLog.clicked.connect(ChgLog) BtnZujian.clicked.connect(ChgDep) BtnGongxian.clicked.connect(ChgCon) BtnAbout.clicked.connect(ChgAbout) - BtnDownN.clicked.connect(Egg) + BtnDownN.clicked.connect(Download) + BtnOpenN.clicked.connect(Open) ChgTips() @@ -1665,9 +1779,10 @@ def showhelp(): helpLayout.addWidget(BtnLog, 1, 0, 1, 1) helpLayout.addWidget(BtnZujian, 2, 0, 1, 1) helpLayout.addWidget(BtnGongxian, 3, 0, 1, 1) - helpLayout.addWidget(BtnAbout, 5, 0, 1, 1) helpLayout.addWidget(BtnDownN, 4, 0, 1, 1) - helpLayout.addWidget(HelpStr, 0, 1, 7, 1) + helpLayout.addWidget(BtnOpenN, 5, 0, 1, 1) + helpLayout.addWidget(BtnAbout, 6, 0, 1, 1) + helpLayout.addWidget(HelpStr, 0, 1, 8, 1) helpWidget.setLayout(helpLayout) helpWindow.setCentralWidget(helpWidget) @@ -1684,7 +1799,7 @@ if not os.path.exists("/usr/bin/uengine"): # Deepin/UOS 用户 if "deepin" in SystemVersion.lower() or "uos" in SystemVersion.lower(): if QtWidgets.QMessageBox.question(None, "提示", "您的电脑没有安装 UEngine,是否安装 UEngine 以便更好的使用\n安装完后重新启动该程序即可") == QtWidgets.QMessageBox.Yes: - os.system(f"'{programPath}/launch.sh' deepin-terminal -C \"pkexec apt install uengine -y\"") + OpenTerminal(f"'pkexec apt install uengine -y") sys.exit(0) # 非 Deepin/UOS 用户 # 因为安装器出现问题,所以废弃 @@ -1693,7 +1808,8 @@ if not os.path.exists("/usr/bin/uengine"): #sys.exit(0) #if QtWidgets.QMessageBox.question(None, "提示", "您的电脑没有安装 UEngine,是否安装 UEngine 以便更好的使用\n这里将会使用 shenmo 提供的脚本进行安装\n安装完后重新启动该程序即可\n提示:无法保证此安装脚本安装的 UEngine 可以使用") == QtWidgets.QMessageBox.Yes: if QtWidgets.QMessageBox.question(None, "提示", "您的电脑没有安装 UEngine,是否安装 UEngine 以便更好的使用\n这里将会安装移植版本(之前由 Shenmo 编写)\n安装完后重新启动该程序即可\n提示:需要在 Ubuntu 22.04 及以上版本才能正常安装") == QtWidgets.QMessageBox.Yes: - os.system(f"'{programPath}/launch.sh' deepin-terminal -C \"bash '{programPath}/uengine-installer'\"") + #os.system(f"'{programPath}/launch.sh' deepin-terminal -C \"bash '{programPath}/uengine-installer'\"") + OpenTerminal(f"bash '{programPath}/uengine-installer'") sys.exit(0) ########################### @@ -1833,26 +1949,35 @@ uengineDoNotUseAdb.triggered.connect(UengineDoNotUseAdb) uengineAllowOrDisallowUpdateAndroidApp = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][13]) uengineSetHttpProxy = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][15]) -uengineOpenDebBuilder = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][1]) -uengineKeyboardToMouse = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][7]) -uengineCheckCpu = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][8]) -uengineUbuntuInstall = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][12]) +uengineOpenDebBuilder = QtWidgets.QAction(QtGui.QIcon.fromTheme("deb"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][1]) +uengineKeyboardToMouse = QtWidgets.QAction(QtGui.QIcon.fromTheme("keyboard"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][7]) +uengineCheckCpu = QtWidgets.QAction(QtGui.QIcon.fromTheme("cpu"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][8]) +#uengineUbuntuInstall = QtWidgets.QAction(QtGui.QIcon.fromTheme("ubuntu-logo-icon"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][12]) uengineDeleteUengineCheck = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][9]) uengineReinstall = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][10]) -uengineUbuntuInstall = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][14]) +uengineUbuntuInstall = QtWidgets.QAction(QtGui.QIcon.fromTheme("ubuntu-logo-icon"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][14]) +uengineUbuntuInstallRoot = QtWidgets.QAction(QtGui.QIcon.fromTheme("ubuntu-logo-icon"), "在 Ubuntu 上安装 UEngine(SuperSU 镜像)") uengineWindowSizeSetting = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][16]) -uengine.addAction(uengineAllowOrDisallowUpdateAndroidApp) -uengine.addAction(uengineSetHttpProxy) uengine.addAction(uengineOpenDebBuilder) uengine.addAction(uengineKeyboardToMouse) uengine.addAction(uengineCheckCpu) +uengine.addSeparator() uengine.addAction(uengineUbuntuInstall) +uengine.addAction(uengineUbuntuInstallRoot) +uengine.addSeparator() uengine.addAction(uengineWindowSizeSetting) -uengineService = uengine.addMenu(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Name"]) -uengineInternet = uengine.addMenu(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Name"]) +uengine.addSeparator() +uengine.addAction(uengineAllowOrDisallowUpdateAndroidApp) +uengine.addAction(uengineSetHttpProxy) +uengine.addSeparator() +uengineService = uengine.addMenu(QtGui.QIcon.fromTheme("services"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Name"]) +uengineInternet = uengine.addMenu(QtGui.QIcon.fromTheme("internet"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Name"]) +uengine.addSeparator() uengineIcon = uengine.addMenu(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Name"]) +uengine.addSeparator() uengine.addMenu(uengineUseAdbm) -uengineData = uengine.addMenu(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Name"]) +uengineData = uengine.addMenu(QtGui.QIcon.fromTheme("fileopen"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Name"]) +uengine.addSeparator() uengine.addAction(uengineDeleteUengineCheck) uengine.addAction(uengineReinstall) uengineRoot = uengine.addMenu(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][11]["Name"]) @@ -1864,13 +1989,14 @@ uengineOpenDebBuilder.triggered.connect(OpenUengineDebBuilder) uengineKeyboardToMouse.triggered.connect(KeyboardToMouse) uengineCheckCpu.triggered.connect(UengineCheckCpu) uengineUbuntuInstall.triggered.connect(UengineUbuntuInstall) +uengineUbuntuInstallRoot.triggered.connect(UengineUbuntuInstallRoot) uengineDeleteUengineCheck.triggered.connect(DelUengineCheck) uengineReinstall.triggered.connect(ReinstallUengine) uengineWindowSizeSetting.triggered.connect(UengineWindowSizeSetting.ShowWindow) -uengineStart = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0]) -uengineStop = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][1]) -uengineRestart = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][2]) +uengineStart = QtWidgets.QAction(QtGui.QIcon.fromTheme("services"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0]) +uengineStop = QtWidgets.QAction(QtGui.QIcon.fromTheme("services"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][1]) +uengineRestart = QtWidgets.QAction(QtGui.QIcon.fromTheme("services"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][2]) uengineService.addAction(uengineStart) uengineService.addAction(uengineStop) uengineService.addAction(uengineRestart) @@ -1879,14 +2005,14 @@ uengineStart.triggered.connect(StartUengine) uengineStop.triggered.connect(StopUengine) uengineRestart.triggered.connect(UengineRestart) -uengineBridgeStart = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][0]) -uengineBridgeStop = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][1]) -uengineBridgeRestart = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][2]) -uengineBridgeReload = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][3]) -uengineBridgeForceReload = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][4]) +uengineBridgeStart = QtWidgets.QAction(QtGui.QIcon.fromTheme("internet"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][0]) +uengineBridgeStop = QtWidgets.QAction(QtGui.QIcon.fromTheme("internet"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][1]) +uengineBridgeRestart = QtWidgets.QAction(QtGui.QIcon.fromTheme("internet"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][2]) +uengineBridgeReload = QtWidgets.QAction(QtGui.QIcon.fromTheme("internet"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][3]) +uengineBridgeForceReload = QtWidgets.QAction(QtGui.QIcon.fromTheme("internet"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][4]) uengineInternet.addAction(uengineBridgeStart) uengineInternet.addAction(uengineBridgeStop) -uengineInternet.addAction(uengineReinstall) +#uengineInternet.addAction(uengineReinstall) uengineInternet.addAction(uengineBridgeReload) uengineInternet.addAction(uengineBridgeForceReload) # 绑定信号 @@ -1913,9 +2039,9 @@ uengineAddNewUengineDesktopLink.triggered.connect(AddNewUengineDesktopLink.ShowW uengineCleanAllUengineDesktopLink.triggered.connect(CleanAllUengineDesktopLink) #uengineData -uengineOpenRootData = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Menu"][0]) -uengineOpenUserData = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Menu"][1]) -uengineBackClean = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Menu"][2]) +uengineOpenRootData = QtWidgets.QAction(QtGui.QIcon.fromTheme("fileopen"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Menu"][0]) +uengineOpenUserData = QtWidgets.QAction(QtGui.QIcon.fromTheme("fileopen"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Menu"][1]) +uengineBackClean = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(40), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Menu"][2]) uengineData.addAction(uengineOpenRootData) uengineData.addAction(uengineOpenUserData) uengineData.addSeparator() @@ -1946,8 +2072,9 @@ helpUengineRunnerBugUpload = QtWidgets.QAction(langFile[lang]["Main"]["MainWindo helpShowHelp = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][4]) helpRunnerUpdate = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][3]) helpFen = QtWidgets.QAction("程序评分") -helpAbout = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][1]) -helpAboutQt = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][5]) +helpWebInformation = QtWidgets.QAction("程序公告") +helpAbout = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(9), langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][1]) +helpAboutQt = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(9), langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][5]) help.addAction(helpOpenProgramUrl) help.addAction(uengineRunnerSearch) help.addAction(makerWebsize) @@ -1958,6 +2085,7 @@ help.addSeparator() help.addAction(helpShowHelp) help.addAction(helpRunnerUpdate) help.addAction(helpFen) +help.addAction(helpWebInformation) help.addSeparator() help.addAction(helpAbout) help.addAction(helpAboutQt) @@ -1975,6 +2103,7 @@ helpUengineRunnerBugUpload.triggered.connect(UengineRunnerBugUpload) helpShowHelp.triggered.connect(ShowHelp) helpRunnerUpdate.triggered.connect(UpdateWindow.ShowWindow) helpFen.triggered.connect(lambda: threading.Thread(target=os.system, args=[f"'{programPath}/ProgramFen.py'"]).start()) +helpWebInformation.triggered.connect(GetNewInformation) helpAbout.triggered.connect(showhelp) helpAboutQt.triggered.connect(lambda: QtWidgets.QMessageBox.aboutQt(widget)) # 设置窗口 @@ -1985,4 +2114,12 @@ window.setWindowTitle(title) window.show() window.setWindowIcon(QtGui.QIcon(iconPath)) window.setFixedSize(window.frameSize().width(), window.frameSize().height()) +# 癸卯年正月初一彩蛋(只显示一次,错过就没了) +# (2023年1月22日) +if datetime.datetime.now().year == 2023 and datetime.datetime.now().month == 1 and datetime.datetime.now().day == 22 and not os.path.exists(f"{get_home()}/.config/uengine-runner/2023-sf.lock"): + os.system(f"touch '{get_home()}/.config/uengine-runner/2023-sf.lock'") + QtWidgets.QMessageBox.information(window, "新年祝福", "今天是癸卯年正月初一,这里代表 RacoonGX 团队祝您在新的一年里万事顺意、幸福美满、官运亨通、美梦连连、吉祥如意、万事顺利、荣华富贵、一帆风顺、金玉满堂、五福临门、龙凤呈祥、龙门精神、百业兴旺、六畜兴旺、五谷丰登、喜上眉梢!") +if version == "2.0.0": + title += " 新春版" + window.setWindowTitle(title) sys.exit(app.exec_()) diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-applist-launch.sh b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-applist-launch.sh index 20255aa..18a10f8 100755 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-applist-launch.sh +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-applist-launch.sh @@ -20,10 +20,10 @@ else else # 因为安装器出现问题,所以废弃 zenity --error --text="请安装 UEngine 后继续" --no-wrap - #echo "非 Deepin/UOS 系统,使用 shenmo 提供的脚本安装\n暂未保证此安装脚本一定安装成功" - #zenity --question --text="您还未安装 UEngine,是否现在安装?\n将会使用 shenmo 提供的脚本进行安装\n暂未保证此安装脚本一定安装成功" --no-wrap - #if [[ $? = 0 ]]; then - # deepin-terminal -C "bash /opt/apps/com.gitee.uengine.runner.spark/files/uengine-installer" - #fi + echo "非 Deepin/UOS 系统,使用 shenmo 提供的脚本安装\n暂未保证此安装脚本一定安装成功" + zenity --question --text="您还未安装 UEngine,是否现在安装?" --no-wrap + if [[ $? = 0 ]]; then + deepin-terminal -C "bash /opt/apps/com.gitee.uengine.runner.spark/files/uengine-installer" + fi fi fi diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-update-bug b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-update-bug index a975ab9..a6bec0e 100755 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-update-bug +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-update-bug @@ -10,7 +10,12 @@ import updatekiller import urllib.parse as parse import PyQt5.QtGui as QtGui import PyQt5.QtWidgets as QtWidgets - +print("""过零丁洋 +辛苦遭逢起一经,干戈寥落四周星。山河破碎风飘絮,身世浮沉雨打萍。 +惶恐滩头说惶恐,零丁洋里叹零丁。人生自古谁无死?留取丹心照汗青。""") +print("") +print("译文:回想我早年由科举入仕历尽辛苦,如今战火消歇已熬过了四个年头。国家危在旦夕恰如狂风中的柳絮,个人又哪堪言说似骤雨里的浮萍。惶恐滩的惨败让我至今依然惶恐,零丁洋身陷元虏可叹我孤苦零丁。人生自古以来有谁能够长生不死?我要留一片爱国的丹心映照史册。") +print("================================") # 读取文本文档 def readtxt(path: "路径")->"读取文本文档": f = open(path, "r") # 设置文件对象 diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-useadb b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-useadb index e0eaf6b..e407923 100755 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-useadb +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-useadb @@ -8,6 +8,16 @@ import sys import traceback import updatekiller import PyQt5.QtWidgets as QtWidgets +print("""白雪歌送武判官归京 +北风卷地白草折,胡天八月即飞雪。忽如一夜春风来,千树万树梨花开。 +散入珠帘湿罗幕,狐裘不暖锦衾薄。将军角弓不得控,都护铁衣冷难着。 +瀚海阑干百丈冰,愁云惨淡万里凝。中军置酒饮归客,胡琴琵琶与羌笛。 +纷纷暮雪下辕门,风掣红旗冻不翻。轮台东门送君去,去时雪满天山路。 +山回路转不见君,雪上空留马行处。""") +print("") +print("北风席卷大地把白草吹折,胡地天气八月就纷扬落雪。忽然间宛如一夜春风吹来,好像是千树万树梨花盛开。雪花散入珠帘打湿了罗幕,狐裘穿不暖锦被也嫌单薄。将军都护手冻得拉不开弓,铁甲冰冷得让人难以穿着。沙漠结冰百丈纵横有裂纹,万里长空凝聚着惨淡愁云。主帅帐中摆酒为归客饯行,胡琴琵琶羌笛合奏来助兴。傍晚辕门前大雪落个不停,红旗冻僵了风也无法牵引。轮台东门外欢送你回京去,你去时大雪盖满了天山路。山路迂回曲折已看不见你,雪上只留下一行马蹄印迹。") +print("================================") + ######################## # ######################## diff --git a/uengine-apk-builder b/uengine-apk-builder index 342ca2b..a543fca 100755 --- a/uengine-apk-builder +++ b/uengine-apk-builder @@ -28,7 +28,7 @@ print("""渔家傲·秋思 塞下秋来风景异,衡阳雁去无留意。四面边声连角起。千嶂里,长烟落日孤城闭。 浊酒一杯家万里,燕然未勒归无计。羌管悠悠霜满地。人不寐,将军白发征夫泪。""") print("") -print("""眼看秋天到了,西北边塞的风光和江南风光自然大不相同。头顶的大雁又飞回南方衡阳去了,一点也没有停留意思。此情此景,不禁又勾起戍边人思乡的情绪。黄昏时分,军中号角催吹,周围的边声也随之而起。层峦叠嶂里,暮霭沉沉,山衔落日,孤零零的城门紧闭。 +print("""译文:眼看秋天到了,西北边塞的风光和江南风光自然大不相同。头顶的大雁又飞回南方衡阳去了,一点也没有停留意思。此情此景,不禁又勾起戍边人思乡的情绪。黄昏时分,军中号角催吹,周围的边声也随之而起。层峦叠嶂里,暮霭沉沉,山衔落日,孤零零的城门紧闭。 饮一杯浊酒,我不由得想起万里之外的亲人。可是,眼下外患未平,功不成名不就,又怎能半途而废。远方传来羌笛的悠悠之声,天气寒冷,军营里早已结满寒霜。夜深了,我还不能安睡,为操持军计,我的须发都变白了。戍边人思念亲人,也久久难以成眠,多少次梦里流下眼泪。""") print("================================")