deep-wine-runner/InstallFont.py

138 lines
5.0 KiB
Python
Raw Normal View History

2022-08-08 15:49:59 +08:00
#!/usr/bin/env python3
2022-08-25 21:47:42 +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日
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
# 基于 Python3 构建
###########################################################################################
#################
# 引入所需的库
#################
2022-08-08 15:49:59 +08:00
import os
import sys
2022-08-24 16:13:47 +08:00
import json
2022-08-08 15:49:59 +08:00
import shutil
2023-04-05 16:53:09 +08:00
import updatekiller
2022-09-24 19:54:08 +08:00
import req as requests
2022-08-25 21:47:42 +08:00
homePath = os.path.expanduser('~')
try:
2023-05-09 22:40:26 +08:00
sourcesList = [
2023-04-30 20:10:35 +08:00
"http://fonts.wine-runner.gfdgdxi.top/list.json",
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/fonts/list.json"
2022-11-06 17:35:41 +08:00
]
2023-05-09 22:40:26 +08:00
change = False
for i in sourcesList:
try:
fontList = json.loads(requests.get(i).text)
change = True
break
except:
pass
if not change:
fontList = json.loads(requests.get(sourcesList[0]).text)
2022-08-25 21:47:42 +08:00
except:
2023-05-09 22:40:26 +08:00
print("使用离线列表")
2022-08-25 21:47:42 +08:00
fontList = [
2023-04-30 20:10:35 +08:00
[
"fake_simsun.ttc",
"http://fonts.wine-runner.gfdgdxi.top/fake_simsun.ttc",
"simsun.ttc",
"fake_simsun.ttc会替换容器内的宋体"
],
[
"simsun.ttc",
"http://fonts.wine-runner.gfdgdxi.top/simsun.ttc",
"simsun.ttc",
"simsun.ttc"
],
[
"simsunb.ttf",
"http://fonts.wine-runner.gfdgdxi.top/simsunb.ttf",
"simsunb.ttf",
"simsunb.ttf"
],
[
"msyh.ttc",
"http://fonts.wine-runner.gfdgdxi.top/msyh.ttc",
"msyh.ttc",
"msyh.ttc"
],
[
"msyhl.ttc",
"http://fonts.wine-runner.gfdgdxi.top/msyhl.ttc",
"msyhl.ttc",
"msyhl.ttc"
],
[
"msyhbd.ttc",
"http://fonts.wine-runner.gfdgdxi.top/msyhbd.ttc",
"msyhbd.ttc",
"msyhbd.ttc"
]
2022-08-25 21:47:42 +08:00
]
def Download(wineBotton: str, id: int) -> int:
return os.system(f"aria2c -x 16 -s 16 -d '{wineBotton}/drive_c/windows/Fonts/' -o '{fontList[id][0]}' \"{fontList[id][1]}\"")
2022-08-08 15:49:59 +08:00
if __name__ == "__main__":
if "--help" in sys.argv:
2023-04-24 21:42:33 +08:00
print("作者gfdgd xi")
2022-08-08 15:49:59 +08:00
print("版本1.0.0")
print("本程序可以更方便的在 wine 容器中安装指定应用")
sys.exit()
if len(sys.argv) <= 1 or sys.argv[1] == "":
print("您未指定需要安装的容器,无法继续")
print("参数:")
print("XXX 参数一")
print("参数一为需要安装的容器")
sys.exit()
while True:
os.system("clear")
2022-08-20 13:35:31 +08:00
print('''
mmmmmm m
# mmm m mm mm#mm mmm
#mmmmm #" "# #" # # # "
# # # # # # """m
# "#m#" # # "mm "mmm"
''')
2022-08-08 15:49:59 +08:00
if not os.path.exists(f"{sys.argv[1]}/drive_c/windows/Fonts"):
input("您选择的不是 Wine 容器,无法继续,按回车键退出")
exit()
2022-08-25 21:47:42 +08:00
2022-08-08 15:49:59 +08:00
for i in range(0, len(fontList)):
print(f"{i} {fontList[i][3]}")
while True:
try:
choose = input("请输入要选择的 字体输入“exit”退出").lower()
if choose == "exit":
break
choose = int(choose)
except:
print("输入错误,请重新输入")
continue
if 0 <= choose and choose < len(fontList):
break
if choose == "exit":
exit()
print(f"您选择了字体 {fontList[choose][0]}")
if os.path.exists(f"{homePath}/.cache/deepin-wine-runner/font/{fontList[choose][0]}"):
print("已经缓存,使用本地版本")
if os.path.exists(f"{sys.argv[1]}/drive_c/windows/Fonts/{fontList[choose][2]}"):
print("字体已存在,覆盖")
shutil.copy(f"{homePath}/.cache/deepin-wine-runner/font/{fontList[choose][0]}", f"{sys.argv[1]}/drive_c/windows/Fonts/{fontList[choose][2]}")
input("安装结束,按回车键继续")
continue
print("开始下载")
os.system(f"rm -rf '{homePath}/.cache/deepin-wine-runner/font/{fontList[choose][0]}'")
os.system(f"mkdir -p '{homePath}/.cache/deepin-wine-runner/font'")
os.system(f"aria2c -x 16 -s 16 -d '{homePath}/.cache/deepin-wine-runner/font' -o '{fontList[choose][0]}' \"{fontList[choose][1]}\"")
if os.path.exists(f"{sys.argv[1]}/drive_c/windows/Fonts/{fontList[choose][2]}"):
print("字体已存在,覆盖")
2022-08-27 02:00:41 +08:00
try:
shutil.copy(f"{homePath}/.cache/deepin-wine-runner/font/{fontList[choose][0]}", f"{sys.argv[1]}/drive_c/windows/Fonts/{fontList[choose][2]}")
except:
print("拷贝失败!")
2022-08-08 15:49:59 +08:00
input("安装结束,按回车键继续")