#!/usr/bin/env python3
# 使用系统默认的 python3 运行
###########################################################################################
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
# 版本:1.6.1
# 更新时间:2022年07月14日
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
# 基于 Python3 的 tkinter 构建
###########################################################################################
#################
# 引入所需的库
#################
import os
import sys
import json
import threading
import PyQt5.QtWidgets as QtWidgets

# 读取文本文档
def readtxt(path):
    f = open(path, "r") # 设置文件对象
    str = f.read()  # 获取内容
    f.close()  # 关闭文本对象
    return str  # 返回结果

def Unzip():
    os.system("mkdir -p ~")
    os.chdir(f"{homePath}")
    os.system(f"unzip -o \"{programPath}/package-script.zip\"")
    print("Unzip Done")
    ReStartProgram()

# 重启本应用程序
def ReStartProgram():
    python = sys.executable
    os.execl(python, python, * sys.argv)

programPath = os.path.split(os.path.realpath(__file__))[0]  # 返回 string
homePath = os.path.expanduser('~')
information = json.loads(readtxt(f"{programPath}/information.json"))
version = information["Version"]
if not os.path.exists(f"{homePath}/package-script") or not json.loads(readtxt(f"{homePath}/package-script/information.json"))["Version"] == version:
    app = QtWidgets.QApplication(sys.argv)
    widget = QtWidgets.QWidget()
    widgetLayout = QtWidgets.QVBoxLayout()
    widget.setWindowTitle("解压中")
    widgetLayout.addWidget(QtWidgets.QLabel("正在解压所需程序,请稍后……"))
    progress = QtWidgets.QProgressBar()
    progress.setMaximum(0)
    progress.setMinimum(0)
    progress.update()
    widgetLayout.addWidget(progress)
    widget.setLayout(widgetLayout)
    widget.show()
    # 解压流程
    QtWidgets.QProgressDialog(None)
    t = threading.Thread(target=Unzip)
    t.start()
    sys.exit(app.exec_())
os.chdir(f"{homePath}/package-script")
os.system("./package.py")
print("End")