添加一键安装脚本
This commit is contained in:
parent
a870dee77d
commit
df9cc2a69c
|
@ -7,6 +7,10 @@
|
|||
+ 使用vim修改对应配置文件,linux建议使用tg模式运行,详情配置参考[配置](../config.md),推送方式查看[push](../push.md)
|
||||
+ 再次运行即可
|
||||
|
||||
### 一键安装脚本
|
||||
```shell
|
||||
wget -o tdlib_install.py https://raw.githubusercontent.com/johlanse/study_xxqg/main/docs/study_xxqg_install.py && python3 study_xxqg_install.py
|
||||
```
|
||||
|
||||
## docker运行
|
||||
|
||||
|
|
|
@ -0,0 +1,153 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Author: johlanse
|
||||
Date: 2022/10/3 15:30
|
||||
Description:: 用于一键安装study_xxqg️
|
||||
"""
|
||||
import io
|
||||
import os
|
||||
import platform
|
||||
from functools import partial
|
||||
|
||||
try:
|
||||
import requests
|
||||
except ImportError as e:
|
||||
print("requests依赖不存在,尝试安装依赖")
|
||||
os.system("pip3 install requests")
|
||||
import requests
|
||||
|
||||
if platform.system().lower() == "windows":
|
||||
import zipfile
|
||||
|
||||
print = partial(print, flush=True)
|
||||
|
||||
|
||||
def updateDependent() -> str:
|
||||
"""
|
||||
更新依赖的主函数
|
||||
"""
|
||||
system = platform.system().lower()
|
||||
PyVersion_ = platform.python_version()
|
||||
if system == "windows":
|
||||
if platform.architecture()[0] == "64bit":
|
||||
fileName = f"study_xxqg_windows_amd64.zip"
|
||||
print(f"✅识别本机设备为Windows amd64,Py版本为{PyVersion_}\n")
|
||||
else:
|
||||
fileName = f"study_xxqg_windows_386.zip"
|
||||
elif system == "darwin":
|
||||
fileName = f"tlib_darwin_amd64.tar.gz"
|
||||
print(f"✅识别本机设备为MacOS x86_64,Py版本为{PyVersion_}\n")
|
||||
|
||||
else:
|
||||
|
||||
framework = os.uname().machine
|
||||
if framework == "x86_64":
|
||||
fileName = f"study_xxqg_linux_amd64.tar.gz"
|
||||
print(f"✅识别本机设备为Linux {framework},Py版本为{PyVersion_}\n")
|
||||
elif framework == "aarch64" or framework == "arm64":
|
||||
fileName = f"study_xxqg_linux_arm64.tar.gz"
|
||||
print(f"✅识别本机设备为Linux {framework},Py版本为{PyVersion_}\n")
|
||||
elif framework == "armv7l":
|
||||
fileName = f"study_xxqg_linux_386.tar.gz"
|
||||
print(f"✅识别本机设备为Linux {framework},Py版本为{PyVersion_}\n")
|
||||
else:
|
||||
fileName = f"study_xxqg_linux_amd64.tar.gz"
|
||||
print(f"⚠️无法识别本机设备操作系统,默认本机设备为Linux x86_64,Py版本为{PyVersion_}\n")
|
||||
return fileName
|
||||
|
||||
|
||||
def last_version() -> str:
|
||||
return requests.get("https://api.github.com/repos/johlanse/study_xxqg/releases/latest").json().get("tag_name")
|
||||
|
||||
|
||||
def download(github: str, version: str, binaryName: str):
|
||||
print("正在下载文件中,请耐心等待!!!")
|
||||
content = requests.get(f"{github}/johlanse/study_xxqg/releases/download/{version}/{binaryName}").content
|
||||
if platform.system().lower() == "windows":
|
||||
with zipfile.ZipFile(io.BytesIO(content)) as zf:
|
||||
data = zf.open("study_xxqg.exe")
|
||||
with open("study_xxqg.exe", "wb") as f:
|
||||
f.write(data.read())
|
||||
else:
|
||||
with open(binaryName, "wb") as f:
|
||||
f.write(content)
|
||||
os.system(f"tar xvf {binaryName}")
|
||||
os.remove(binaryName)
|
||||
|
||||
|
||||
def checkYesOrNo() -> bool:
|
||||
data = input("请输入:").lower()
|
||||
if data == "y" or data == "yes":
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
def addSystemctl():
|
||||
with open("/etc/systemd/system/study_xxqg.service", "w", encoding="utf-8") as f:
|
||||
f.write(f'''[Unit]
|
||||
Description=study_xxqg
|
||||
Documentation=study_xxqg
|
||||
After=network-online.target
|
||||
Wants=network-online.target systemd-networkd-wait-online.service
|
||||
|
||||
[Service]
|
||||
Restart=always
|
||||
|
||||
; User and group the process will run as.
|
||||
User=root
|
||||
Group=root
|
||||
|
||||
WorkingDirectory={os.getcwd()}
|
||||
ExecStart={os.getcwd()}/study_xxqg
|
||||
|
||||
; Limit the number of file descriptors; see `man systemd.exec` for more limit settings.
|
||||
LimitNOFILE=1048576
|
||||
; Unmodified caddy is not expected to use more than that.
|
||||
LimitNPROC=512
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target''')
|
||||
|
||||
|
||||
def main():
|
||||
github = "https://github.com"
|
||||
version = last_version()
|
||||
binaryName = updateDependent()
|
||||
if os.path.exists("study_xxqg.exe") or os.path.exists("study_xxqg"):
|
||||
print("检测到study_xxqg文件已经存在,是否跳过下载(y/n)")
|
||||
if not checkYesOrNo():
|
||||
download(github, version, binaryName)
|
||||
print("已跳过下载")
|
||||
else:
|
||||
download(github, version, binaryName)
|
||||
|
||||
if not platform.system().lower() == "windows":
|
||||
print("是否将study_xxqg加入系统启动system命令(y/n)")
|
||||
if checkYesOrNo():
|
||||
addSystemctl()
|
||||
os.system("systemctl enable study_xxqg")
|
||||
print("已加入开机自启动,输入 systemctl start study_xxqg即可后台启动")
|
||||
print("开始安装浏览器依赖")
|
||||
try:
|
||||
os.mkdir("config")
|
||||
except FileExistsError as e:
|
||||
pass
|
||||
if platform.system().lower() == "windows":
|
||||
os.system("study_xxqg --init")
|
||||
else:
|
||||
os.system("./study_xxqg --init")
|
||||
os.system("./tools/driver/ms-playwright-go/1.20.0-beta-1647057403000/playwright install-deps")
|
||||
print("是否启动study_xxqg? (y/n)")
|
||||
if checkYesOrNo():
|
||||
if platform.system().lower() == "windows":
|
||||
os.system("study_xxqg.exe")
|
||||
else:
|
||||
os.system("chmod -R 777 ./study_xxqg")
|
||||
os.system("./study_xxqg")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Reference in New Issue