From 66963e6f26fbc46d9054aabb407026c526645200 Mon Sep 17 00:00:00 2001
From: gfdgd_xi <3025613752@qq.com>
Date: Sun, 4 Dec 2022 22:28:56 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A7=BB=E9=99=A4=E5=AE=B9?=
 =?UTF-8?q?=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 QemuDownload.py                               |   3 +
 QemuRun.py                                    |   2 +-
 .../apps/deepin-wine-runner/ChangePassword.sh |   3 +
 .../__pycache__/__init__.cpython-310.pyc      | Bin 1180 -> 1122 bytes
 deb/opt/apps/deepin-wine-runner/ProgramFen.py | 122 ++++++++++++++++++
 .../deepin-wine-runner/package-script.zip     | Bin 301376 -> 301376 bytes
 .../apps/deepin-wine-runner/req/__init__.py   |  19 +--
 .../req/__pycache__/__init__.cpython-310.pyc  | Bin 0 -> 1163 bytes
 .../req/__pycache__/__init__.cpython-37.pyc   | Bin 1195 -> 980 bytes
 mainwindow.py                                 |  40 +++++-
 package-script.zip                            | Bin 301376 -> 301376 bytes
 11 files changed, 172 insertions(+), 17 deletions(-)
 create mode 100644 deb/opt/apps/deepin-wine-runner/ChangePassword.sh
 create mode 100644 deb/opt/apps/deepin-wine-runner/ProgramFen.py
 create mode 100644 deb/opt/apps/deepin-wine-runner/req/__pycache__/__init__.cpython-310.pyc

diff --git a/QemuDownload.py b/QemuDownload.py
index 7dede56..c081e03 100755
--- a/QemuDownload.py
+++ b/QemuDownload.py
@@ -334,6 +334,9 @@ def on_addButton_clicked():
     QT.thread.start()
 
 def on_delButton_clicked():
+    if os.path.exists("/tmp/deepin-wine-runner-qemu-lock"):
+        if QtWidgets.QMessageBox.question(window, "提示", "检测到您的电脑已经运行了 Qemu/Chroot 容器,建议您重启电脑后再删除该容器,否则容易造成数据损失!\n是否取消操作?") == QtWidgets.QMessageBox.Yes:
+            return
     if QtWidgets.QMessageBox.question(window, "提示", "你确定要删除吗?") == QtWidgets.QMessageBox.No:
         return
     if ui.localWineList.currentIndex().row() < 0:
diff --git a/QemuRun.py b/QemuRun.py
index 77bcd5f..1f0541c 100755
--- a/QemuRun.py
+++ b/QemuRun.py
@@ -33,7 +33,7 @@ if __name__ == "__main__":
                         continue
                     if os.path.ismount(f"{bottlePath}/dev"):
                         os.system(f"pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY bash '{programPath}/UnMount.sh' '{bottlePath}' ")
-                
+    os.system("touch /tmp/deepin-wine-runner-qemu-lock")
     # 判断是否挂载
     if not os.path.ismount(f"{homePath}/.deepin-wine-runner-ubuntu-images/{sys.argv[1]}/dev"):
         print("文件暂未挂载,开始挂载")
diff --git a/deb/opt/apps/deepin-wine-runner/ChangePassword.sh b/deb/opt/apps/deepin-wine-runner/ChangePassword.sh
new file mode 100644
index 0000000..f9ab33c
--- /dev/null
+++ b/deb/opt/apps/deepin-wine-runner/ChangePassword.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+echo -e "123456\n123456\n\n\n\n\n\n\n\n\n" | adduser "$1"
+echo -e "123456\n123456\n" | passwd root
\ No newline at end of file
diff --git a/deb/opt/apps/deepin-wine-runner/Model/__pycache__/__init__.cpython-310.pyc b/deb/opt/apps/deepin-wine-runner/Model/__pycache__/__init__.cpython-310.pyc
index e66ac70ec52f49dac0960237dd9b294de12fe9fc..0738c427d64c81cce6c00b0273f1a9a09eda4f91 100755
GIT binary patch
delta 49
zcmbQk`G|u%pO=@50SGpK&e_QQfl*LTKfj<vKe3>oSU)8-wIDNZvm4V~M#fu{pD^zL
E0C)lr+W-In

delta 107
zcmaFFF^7{opO=@50SLA)klD!nfzdldKQ}ccGf_W1EhRlAz9LiKAlcMB$vibl*T~2+
zQP;%OAW7H4G{s!kAT`k}(KyLG$=E0fq1q+2IJ+djKtCllwO}(3(_BWzsL89CcK`sj
CaUoLx

diff --git a/deb/opt/apps/deepin-wine-runner/ProgramFen.py b/deb/opt/apps/deepin-wine-runner/ProgramFen.py
new file mode 100644
index 0000000..c2b48fa
--- /dev/null
+++ b/deb/opt/apps/deepin-wine-runner/ProgramFen.py
@@ -0,0 +1,122 @@
+#!/usr/bin/env python3
+import os
+import sys
+import base64
+import traceback
+import req as requests
+import PyQt5.QtGui as QtGui
+import PyQt5.QtCore as QtCore
+import PyQt5.QtWidgets as QtWidgets
+
+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))
+            tipsInfo = ""
+        except:
+            traceback.print_exc()
+            fenlists = [0, 0, 0, 0, 0]
+            tipsInfo = "暂时无人提交此脚本运行情况,是否立即提交?"
+            
+        maxHead = fenlists.index(max(fenlists))
+        allNumber = 0
+        for i in fenlists:
+            allNumber += i
+        try:
+            tipsInfo = ""
+            for i in range(len(fenlists)):
+                tipsInfo += f"有 {fenlists[i] / allNumber * 100}% 的用户选择了 {i} 分({fenlists[i]}/{allNumber})\n"
+            maxNumber = max(fenlists) / allNumber * 100
+            #if tipsInfo == "":
+            #    tipsInfo = f"有{maxNumber}%的用户选择了这个评分"
+        except:
+            pass
+        ProgramRunStatusShow.msgWindow = QtWidgets.QMainWindow()
+        msgWidget = QtWidgets.QWidget()
+        msgWidgetLayout = QtWidgets.QGridLayout()
+        starLayout = QtWidgets.QHBoxLayout()
+        uploadButton = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "点此上传运行情况"))
+        uploadButton.clicked.connect(ProgramRunStatusUpload.ShowWindow)
+        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(uploadButton, 3, 0, 1, 2)
+        end = 5
+        if maxHead > 5:
+            for i in range(end):
+                starLayout.addWidget(QtWidgets.QLabel(f"<img src='{programPath}/Icon/BadStar.svg' width=50>"))
+        else:
+            for i in range(maxHead):
+                starLayout.addWidget(QtWidgets.QLabel(f"<img src='{programPath}/Icon/Star.svg' width=50>"))
+            head = maxHead
+            for i in range(head, end):
+                starLayout.addWidget(QtWidgets.QLabel(f"<img src='{programPath}/Icon/UnStar.svg' width=50>"))
+        msgWidget.setLayout(msgWidgetLayout)
+        ProgramRunStatusShow.msgWindow.setCentralWidget(msgWidget)
+        ProgramRunStatusShow.msgWindow.setWindowIcon(QtGui.QIcon(iconPath))
+        ProgramRunStatusShow.msgWindow.setWindowTitle(f"程序运行情况")
+        ProgramRunStatusShow.msgWindow.show()
+
+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"<img src='{programPath}/Icon/BadStar.svg' width=25>")
+            return
+        for i in range(ProgramRunStatusUpload.fen.currentIndex()):
+            ProgramRunStatusUpload.starList[i].setText(f"<img src='{programPath}/Icon/Star.svg' width=25>")
+        head = ProgramRunStatusUpload.fen.currentIndex() 
+        end = len(ProgramRunStatusUpload.starList)
+        for i in range(head, end):
+            ProgramRunStatusUpload.starList[i].setText(f"<img src='{programPath}/Icon/UnStar.svg' width=25>")
+        
+    def ShowWindow():
+        ProgramRunStatusUpload.starList = []
+        ProgramRunStatusUpload.msgWindow = QtWidgets.QMainWindow()
+        msgWidget = QtWidgets.QWidget()
+        msgWidgetLayout = QtWidgets.QGridLayout()
+        ProgramRunStatusUpload.fen = QtWidgets.QComboBox()
+        ProgramRunStatusUpload.starLayout = QtWidgets.QHBoxLayout()
+        upload = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "上传"))
+        upload.clicked.connect(ProgramRunStatusUpload.Upload)
+        # 生成星星列表
+        for i in [1, 1, 1, 1, 0]:
+            ProgramRunStatusUpload.starList.append(QtWidgets.QLabel(f"<img src='{programPath}/Icon/{['Un', ''][i]}Star.svg' width=25>"))
+            ProgramRunStatusUpload.starLayout.addWidget(ProgramRunStatusUpload.starList[-1])
+        ProgramRunStatusUpload.starLayout.addItem(QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum))
+        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", "评分:")), 1, 0)
+        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:
+            QtWidgets.QMessageBox.information(None, QtCore.QCoreApplication.translate("U", "提示"), requests.get(f"http://120.25.153.144/spark-deepin-wine-runner/Install.php?Version=Fen{ProgramRunStatusUpload.fen.currentIndex()}").json()["Error"])
+        except:
+            traceback.print_exc()
+            QtWidgets.QMessageBox.critical(None, QtCore.QCoreApplication.translate("U", "错误"), QtCore.QCoreApplication.translate("U", "数据上传失败!"))
+
+if __name__ == "__main__":
+    programPath = os.path.split(os.path.realpath(__file__))[0]  # 返回 string
+    iconPath = "{}/deepin-wine-runner.svg".format(programPath)
+    app = QtWidgets.QApplication(sys.argv)
+    ProgramRunStatusShow.ShowWindow()
+    app.exec_()
diff --git a/deb/opt/apps/deepin-wine-runner/package-script.zip b/deb/opt/apps/deepin-wine-runner/package-script.zip
index 304c44b3975a28833e1a03b86cb2ed695caf138f..0c892f249960408eaf492ce849a8e311192cc9c4 100755
GIT binary patch
delta 316
zcmX@GN$9{Pp$War#VI`-Copp{@0#B;{a`7x$V6YR=~<mDe3K7xsevRXzvlV|rk`*h
z2Ggr}!a($9W?mj9uz(Q%ez3q5{#OzpM)N_9?FTg&AMZjj^XOwnbLNtip6&l1Gk)Yn
zkrMpG=nR$$|HK%@1ZHjd!YBY{O+WsPaW+^e^*f_E3y9S||2O0I`M;Uo27-9g`+b?S
z!3zHRGRH83Suugkst{I72=i@zuvk(G^EyEkYYoeoO~F!`Wy}JMU{*~z^F9d6wvyQ%
X%$i<b#rz5+*`8C)ygjFy<%%o-G01%8

delta 316
zcmX@GN$9{Pp$WarqVL)^PGII@zF^!v{a`7x$V6YR=~<mDe3K7xsevRXzvlV|rk`*h
z2Ggr}!a($9W?mj9uz(Q%ez3q5{#OzpM)N_9?FTg&AMZjj^XOwnbCB%z|Bo3z@}fuy
zeqwY6OND=8i~^gveaja{0WfR&@o$W?!IG)p8O>QhtoHf88Mn{>&Ga@9#GBsl%bX2X
z@Yk0)h8fI?31n7<uv$WxZ}Wr2l2Vx038GkQSjKD$mdY$+7GMOkYRZ}SL0Gnx%=Tc`
V^!h61S0KsuoNDInIn^vzWC1@?e+mEq

diff --git a/deb/opt/apps/deepin-wine-runner/req/__init__.py b/deb/opt/apps/deepin-wine-runner/req/__init__.py
index 44344d8..f52e5c6 100755
--- a/deb/opt/apps/deepin-wine-runner/req/__init__.py
+++ b/deb/opt/apps/deepin-wine-runner/req/__init__.py
@@ -7,32 +7,21 @@ with open("/var/lib/dpkg/status", "r") as i:
 if unConnect:
     print("52专版,将会无法连接服务器")
 
-badUrl = [
-    "http://120.25.153.144",
-    "https://304626p927.goho.co",
-    "https://30x46269h2.goho.co",
-    "http://gfdgdxi.msns.cn"
-]
-
 class Respon:
     text = ""
 
 def get(url, timeout=None): # -> requests.Response:
     if unConnect:
-        # 筛选 Url,只有特定的 url 才会被拦截
-        for i in badUrl:
-            if i in url:
-                raise Exception("52专版不支持连接作者服务器")
+        # 全部 Url 都拦截
+        raise Exception("52专版不支持连接服务器")
     if timeout == None:
         return requests.get(url)
     return requests.get(url, timeout=timeout)
 
 def post(url, data, timeout=None):
     if unConnect:
-        # 筛选 Url,只有特定的 url 才会被拦截
-        for i in badUrl:
-            if i in url:
-                raise Exception("52专版不支持连接作者服务器")
+        # 全部 Url 都拦截
+        raise Exception("52专版不支持连接服务器")
     if timeout == None:
         return requests.post(url, data)
     return requests.post(url, data, timeout=timeout)
\ No newline at end of file
diff --git a/deb/opt/apps/deepin-wine-runner/req/__pycache__/__init__.cpython-310.pyc b/deb/opt/apps/deepin-wine-runner/req/__pycache__/__init__.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..ae95dabd4c4cc1ea9aac70ef0a43ec4d39141465
GIT binary patch
literal 1163
zcmZWo&1(}u6rY)$w40cwtyWPH^&mpTWZT$Q6cMq0+=3_~24q=x#&m7EyPci2F+@<K
zqGI)+;s-@qLC}+emmVtqAA2>8dh+1Si@w?PBht6LxAWeceKWt`d+YV|q!7sG-xd2M
zMd+JyIz<QP7-(=C3_}c8Pzf<o!kjRT(FS?aU(#4&#hat^=o%{F3$T+SiW(Y5u0Di<
zUDFsN^;`tySnT5o*42Pm8L{rSxYTtTF`XsvAeL;9Qa8)66x(nImvmUASr4p|44*^U
z-k)#}R6JE1Fs@m`s5qAm=1-K3Kw2^kA}nfq&RF(@Rpy6x2figHa*T7|adXp-%X1=h
zT`qDXg>Wxa87VXuo_>FD|JUN9rBC;oi?3TR=31Yh|M>c*_4r+Dc4q0}{L-uUSz6mX
zE~S6iFop_)`NBwkXyibCXn44`U4;XP9~c}SEsXky3J3FLZ`{k<UT3bVl843%tGO-9
z<;quBnN^+qWZ(vQ+qD(4PQl<D0}cAXaA1|85@8tlCcuOib)Dsb@3|2wW@)6GrfW@d
z(~MH4Iq9*mqSk5CoC>YVa)wG?l^>8uLcQ4h*>8BhG%Vi_jP*Pjf=?Ny>9~$G&AfkI
zXz*RXx)4kX(vgnih)uv-5w%5S$3TOlU?dW~5}!bqQa4DQ)L}YAMgockzKy479WYH0
zu~lkww2tPX!&18nD~OXBK>0x{{@1GJ!c6Pg$JV1;?Itz9%>KA}cdb=8>XyzV_d=OX
zM9I({^Pu0hjJhsc?7XN%$&*!^`_ci@bO0CfKn9Uk<`US{LQxTExN(G?HHL)xJ%j>1
z02+6KVx8z%$K<b0QaFR-tgV2rh$0{X8k2Aw79AvLb!{C9Bqm{7n}j-^2jD9-)Cmxw
zokL;+l*uMU54=Q1nO<eoWJJ{W0-2>^W9%?XS}_i>N$ptebsLF7u@iJ1k~HqaLS?hK
zm`%ln<HI8A`P_|bMO1K$MG0Rxu54dIp^ov#pLQG;AFH^F^ds$QJgUYy*aAk!l%(+h
Q-tm_zB1xt@rDan80QC|cV*mgE

literal 0
HcmV?d00001

diff --git a/deb/opt/apps/deepin-wine-runner/req/__pycache__/__init__.cpython-37.pyc b/deb/opt/apps/deepin-wine-runner/req/__pycache__/__init__.cpython-37.pyc
index ab16091916d4833f521e3ec829decd1d021450b3..d1051f7a43a4cb97cee64e1165f9ee71ec234c41 100755
GIT binary patch
delta 529
zcmZvZ&q~8U5XLjRTeC@%)PjOkk$O=B9()FS@Yai->ZxQS)IUkxZaf7FwkNTN(vv7+
zZ-V$T;wj*<K8Ld_N(&D8zL`wm+uxE`=fe&TeBZUO-m|;tn2v)rI34dab`LFK3qG_2
zACT6P@P#AXA+&4}h_di-;sTDWurhwSnq0%%iO%Q|G!Bwti}b8ZcZO=9dV6TflAZzq
z1Gs@4gmq5jrXtTYx2Bk=$Qe$!CnJLSw3*c>545)R^*EZ{PG|QoAr!XiT*hgpLRL6g
z(nymej@0CntoKPlGkGD)c#L%ZOtZ-fnvd$4+X5pTIJjW;ktWuqdkJM=_i<Q&B?h+s
z1DnGX0e^9Gg22?CBks=;8=#O$4-=(^kO5l3x@k{^R4$tr(N^t$$*cHz6}3R_fz<mD
yn)-1}pvf;-+KrO}YMp|~xGjoOS9TI*eu}xQtWG*?dqp402?Gx{fB`1~b@?~sXK6?P

delta 789
zcmZvZy>HV{5Ws!!If?CjG-(TpO2oiW<i%~$B&bZN;bZH95GWEu@H0thYA4SxQdAig
z(INp-h7gbdbs!rO141la_%E0|w}qX5fO}4hXyNQT-@7}V?|1Ke;**|POQ#J5<?FAG
z{Z<`i^1w%zYh{*T8q=B4RO|6u3QMxouEJ6~q@G|omS&k<sB3JN&9E$bI)mGaIX8OM
z+ul0Y5~6!`X{lIRwn`PNSXr@(<?_~o4Eq>gSuR&g)$VHPiq-U5o@IM~=LRyl+A96Y
zoj-2Ze8`$?(6%;x*SBofmLs1CpmPn?&nn{!@CI_@FOa`SF`}Z@WM&PGQ23=mLBMt8
z{`_MSkU-gpb3+gYJMa{G#$6=<rfd*i7W9J}C=-Md^bvX(CqsgWbiKbgPLhS~gKv93
zpFBI-8y>!#9KQQ#LYNTkO~>mCGZyN7x8}L7V~a5Upuz6&PN?4)*iKipJvY?2)9X9F
z@I%^kgh@l%=N+EJ0YhkW9lui}Z-r;k%%l1lGzzH101Z;Gt$_hi(w3M~Bx(#b!o7*k
zDO?)R|KO4cw>rfQV1kGzzyU#IdW?+SDy4({@sAhJ5B7&guRo6qME`dO5ri4zDXiyd
zY2?&=22H4TJztnA&qW8;5RIss&&rB3&~q5Oh<XNEf^(TOVIAL!X+*7~--W8zb=;_1
rsB)*l!dRELT`?U)?kL(8pBulYi-kO%HKJm_0;r%-0`iH|3^k139fP;-

diff --git a/mainwindow.py b/mainwindow.py
index f5c6a6f..0113ba1 100755
--- a/mainwindow.py
+++ b/mainwindow.py
@@ -14,6 +14,7 @@ import os
 import sys
 import time
 import json
+import random
 import base64
 import shutil
 import hashlib
@@ -2160,6 +2161,39 @@ def GetVersion():
     runVersion.signal.connect(AddDockerMenu)
     runVersion.start()
 
+def UnPackage():
+    debPath = QtWidgets.QFileDialog.getOpenFileName(window)
+    if not debPath[1]:
+        return
+    path = QtWidgets.QFileDialog.getExistingDirectory(window)
+    print(path)
+    if not path[1]:
+        return
+    tempDebDir = f"/tmp/wine-runner-unpack-deb-{random.randint(0, 1000)}"
+    if os.system(f"dpkg -b '{debPath}' '{tempDebDir}'"):
+        QtWidgets.QMessageBox.critical(window, "错误", "解压失败!")
+        return
+    zippath = FindFile(tempDebDir, "files.7z")
+    if zippath == None:
+        QtWidgets.QMessageBox.critical(window, "错误", "解压失败!")
+        return
+    print(path)
+    # 解压文件
+    os.system(f"mkdir -p '{path[0]}'")
+    os.system(f"7z x '{zippath}' -o'{path[0]}'")
+
+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
+
 programVersionType = ""
 print(wine)
 ###########################
@@ -2193,10 +2227,14 @@ exe路径\' 参数 \'
 updateThingsString = '''※1、支持使用 Qemu + Chroot 跨运行 Wine 以及指定程序的功能;
 ※2、提供了简易打包器以用于打包简易 deb;
 ※3、支持下载配置过的 Qemu + Chroot 容器;
+※4、支持解压指定 deb 的内打包好的容器;
+5、优化 Wine 列表显示;
+6、优化非基于生态适配脚本的打包器内容自动填充功能;
+7、新增程序论坛和教程入口
 '''
 for i in information["Thank"]:
     thankText += f"{i}\n"
-updateTime = "2022年12月03日"
+updateTime = "2022年12月04日"
 about = f'''<style>
 a:link, a:active {{
     text-decoration: none;
diff --git a/package-script.zip b/package-script.zip
index 304c44b3975a28833e1a03b86cb2ed695caf138f..0c892f249960408eaf492ce849a8e311192cc9c4 100755
GIT binary patch
delta 316
zcmX@GN$9{Pp$War#VI`-Copp{@0#B;{a`7x$V6YR=~<mDe3K7xsevRXzvlV|rk`*h
z2Ggr}!a($9W?mj9uz(Q%ez3q5{#OzpM)N_9?FTg&AMZjj^XOwnbLNtip6&l1Gk)Yn
zkrMpG=nR$$|HK%@1ZHjd!YBY{O+WsPaW+^e^*f_E3y9S||2O0I`M;Uo27-9g`+b?S
z!3zHRGRH83Suugkst{I72=i@zuvk(G^EyEkYYoeoO~F!`Wy}JMU{*~z^F9d6wvyQ%
X%$i<b#rz5+*`8C)ygjFy<%%o-G01%8

delta 316
zcmX@GN$9{Pp$WarqVL)^PGII@zF^!v{a`7x$V6YR=~<mDe3K7xsevRXzvlV|rk`*h
z2Ggr}!a($9W?mj9uz(Q%ez3q5{#OzpM)N_9?FTg&AMZjj^XOwnbCB%z|Bo3z@}fuy
zeqwY6OND=8i~^gveaja{0WfR&@o$W?!IG)p8O>QhtoHf88Mn{>&Ga@9#GBsl%bX2X
z@Yk0)h8fI?31n7<uv$WxZ}Wr2l2Vx038GkQSjKD$mdY$+7GMOkYRZ}SL0Gnx%=Tc`
V^!h61S0KsuoNDInIn^vzWC1@?e+mEq