deep-wine-runner/InstallOther.py

106 lines
5.0 KiB
Python
Raw Normal View History

2022-07-10 07:50:49 +08:00
#!/usr/bin/env python3
2022-08-01 16:11:46 +08:00
# 使用系统默认的 python3 运行
###########################################################################################
2023-04-24 21:42:33 +08:00
# 作者gfdgd xi
2022-08-25 21:47:42 +08:00
# 版本2.1.0
# 更新时间2022年08月25日
2022-08-01 16:11:46 +08:00
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
# 基于 Python3 构建
###########################################################################################
#################
# 引入所需的库
#################
2022-07-10 07:50:49 +08:00
import os
import sys
2022-08-24 16:13:47 +08:00
import json
2023-04-05 16:53:09 +08:00
import updatekiller
2022-09-24 19:54:08 +08:00
import req as requests
2022-11-06 17:35:41 +08:00
try:
sourcesList = [
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/other/list.json",
"http://gfdgdxi.msns.cn/wine-runner-list/other/list.json"
]
msxmlList = json.loads(requests.get(sourcesList[0]).text)
except:
msxmlList = [
["Windows Script 5.7 for Windows XP", "https://download.microsoft.com/download/f/f/e/ffea3abf-b55f-4924-b5a5-bde0805ad67c/scripten.exe", "exe", "scripten.exe"],
["Windows Management Instrumentation 1.50.1131", "https://www.gitlink.org.cn/api/attachments/390680", "exe", "WMITools.exe"]
]
2022-07-10 07:50:49 +08:00
2022-11-06 17:35:41 +08:00
def Download(wineBotton: str, id: int, wine: str) -> int:
try:
os.remove(f"/tmp/deepin-wine-runner-other/{msxmlList[id][2]}")
except:
pass
os.system(f"aria2c -x 16 -s 16 -d '/tmp/deepin-wine-runner-other' -o '{msxmlList[id][3]}' \"{msxmlList[id][1]}\"")
if msxmlList[id][2] == "exe":
return os.system(f"WINEPREFIX='{wineBotton}' {wine} '/tmp/deepin-wine-runner-other/{msxmlList[id][3]}'")
if msxmlList[id][2] == "msi":
return os.system(f"WINEPREFIX='{wineBotton}' {wine} msiexec /i '/tmp/deepin-wine-runner-other/{msxmlList[id][3]}'")
if __name__ == "__main__":
if "--help" in sys.argv:
2023-04-24 21:42:33 +08:00
print("作者gfdgd xi")
2022-11-06 17:35:41 +08:00
print("版本1.0.0")
print("本程序可以更方便的在 wine 容器中安装运行库")
sys.exit()
if len(sys.argv) <= 2 or sys.argv[1] == "" or sys.argv[2] == "":
print("您未指定需要安装的容器和使用的 wine无法继续")
print("参数:")
print("XXX 参数一 参数二 参数三(可略)")
print("参数一为需要安装的容器参数二为需要使用的wine参数三为是否缓存可略三个参数位置不能颠倒")
sys.exit()
2022-07-10 07:50:49 +08:00
2022-11-06 17:35:41 +08:00
homePath = os.path.expanduser('~')
print('''
2022-08-20 13:35:31 +08:00
mmmm m #
m" "m mm#mm # mm mmm m mm
# # # #" # #" # #" "
# # # # # #"""" #
#mm# "mm # # "#mm" #
''')
2022-11-06 17:35:41 +08:00
print("请选择以下的应用进行安装(不保证能正常安装运行)")
for i in range(0, len(msxmlList)):
print(f"{i}{msxmlList[i][0]}")
while True:
try:
choose = input("请输入要选择要安装的应用输入“exit”退出").lower()
choose = int(choose)
except:
print("输入错误,请重新输入")
continue
if 0 <= choose and choose < len(msxmlList):
break
if choose == "exit":
exit()
if len(sys.argv) <= 3:
choice = True
else:
choice = (sys.argv[3] == "1")
print(f"您选择了{msxmlList[choose][0]}")
if os.path.exists(f"{homePath}/.cache/deepin-wine-runner/other/{msxmlList[choose][3]}") and choice:
print("已经缓存,使用本地版本")
if msxmlList[choose][2] == "msi":
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} msiexec /i '{homePath}/.cache/deepin-wine-runner/other/{msxmlList[choose][3]}'")
input("安装结束,按回车键退出")
sys.exit()
if msxmlList[choose][2] == "exe":
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} '{homePath}/.cache/deepin-wine-runner/other/{msxmlList[choose][3]}'")
input("安装结束,按回车键退出")
sys.exit()
print("开始下载")
os.system(f"rm -rf '{homePath}/.cache/deepin-wine-runner/other/{msxmlList[choose][3]}'")
os.system(f"mkdir -p '{homePath}/.cache/deepin-wine-runner/other'")
2022-08-08 15:49:59 +08:00
if msxmlList[choose][2] == "msi":
2022-11-06 17:35:41 +08:00
os.system(f"aria2c -x 16 -s 16 -d '{homePath}/.cache/deepin-wine-runner/other' -o '{msxmlList[choose][3]}' \"{msxmlList[choose][1]}\"")
print("开始安装")
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} msiexec /i '{homePath}/.cache/deepin-wine-runner/other/{msxmlList[choose][3]}'")
2022-11-06 17:35:41 +08:00
print("安装结束")
2022-08-08 15:49:59 +08:00
sys.exit()
if msxmlList[choose][2] == "exe":
2022-11-06 17:35:41 +08:00
os.system(f"aria2c -x 16 -s 16 -d '{homePath}/.cache/deepin-wine-runner/other' -o '{msxmlList[choose][3]}' \"{msxmlList[choose][1]}\"")
print("开始安装")
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} '{homePath}/.cache/deepin-wine-runner/other/{msxmlList[choose][3]}'")
2022-08-08 15:49:59 +08:00
input("安装结束,按回车键退出")
2022-11-06 17:35:41 +08:00
sys.exit()