81 lines
2.6 KiB
Python
81 lines
2.6 KiB
Python
import sys
|
|
import os
|
|
import json
|
|
import zipfile
|
|
import requests
|
|
|
|
arguments = sys.argv
|
|
arguments.remove(sys.argv[0])
|
|
url = "https://raw.githubusercontent.com/UntriexTv/test_directory/main/ver.json"
|
|
|
|
if len(arguments) == 0:
|
|
sys.exit()
|
|
|
|
command = arguments[0]
|
|
if command in ["u", "update"]:
|
|
try:
|
|
server_version = json.loads(requests.get(url).text)
|
|
except Exception as error:
|
|
print(f"CAN'T DOWNLOAD VERSION LIST. ERROR: {error}")
|
|
sys.exit()
|
|
if "-version" in arguments:
|
|
try:
|
|
version_download = arguments[arguments.index("-version") + 1]
|
|
except IndexError:
|
|
print("Version argument is empty.")
|
|
sys.exit()
|
|
if version_download not in list(server_version.keys()):
|
|
print("Version not found.")
|
|
sys.exit()
|
|
|
|
else:
|
|
try:
|
|
with open("version.json", "r", encoding='utf-8') as f: # loading settings
|
|
version = json.load(f)
|
|
except:
|
|
version = {"id": 0, "version": "recovery"}
|
|
for ver, data in enumerate(server_version.values()):
|
|
if data["id"] > version["id"]:
|
|
version_download = list(server_version.keys())[ver]
|
|
try:
|
|
with open("update.zip", "wb", encoding='utf-8') as save:
|
|
save.write(
|
|
bytes(requests.get(
|
|
f"https://github.com/UntriexTv/test_directory/releases/download/{version_download}/update.zip").content))
|
|
except Exception as error:
|
|
print(f"FAILED TO DOWNLOAD UPDATE. ERROR: {error}")
|
|
sys.exit()
|
|
with zipfile.ZipFile("update.zip", "r") as zip_ref:
|
|
zip_ref.extractall("")
|
|
os.remove("update.zip")
|
|
print("SUCCESS")
|
|
print(f"""Update from version {version["version"]} to {version_download} was sucesfull""")
|
|
|
|
if command == "clean":
|
|
if arguments[1] == "all":
|
|
open("log.txt", "w").close()
|
|
|
|
with open("settings.json", "r", encoding='utf-8') as file:
|
|
settings = json.load(file)
|
|
|
|
for line in settings["heartbeat_table"]:
|
|
settings["heartbeat_table"][line] = []
|
|
|
|
with open("settings.json", "w", encoding='utf-8') as file:
|
|
json.dump(settings, file, indent=2)
|
|
|
|
if arguments[1] == "log":
|
|
open("log.txt", "w").close()
|
|
|
|
if arguments[1] == "heartbeat_table":
|
|
with open("settings.json", "r", encoding='utf-8') as file:
|
|
settings = json.load(file)
|
|
|
|
for line in settings["heartbeat_table"]:
|
|
settings["heartbeat_table"][line] = []
|
|
|
|
with open("settings.json", "w", encoding='utf-8') as file:
|
|
json.dump(settings, file, indent=2)
|
|
|
|
|