Mabasej_Team/server/system.py

84 lines
2.6 KiB
Python
Raw Normal View History

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:
version_download = 0
try:
with open("version.json", "r") as f: # loading settings
version = json.load(f)
except:
version = {"id": 0}
for ver, data in enumerate(server_version.values()):
if data["id"] > version["id"] and ver > version_download:
version_download = list(server_version.keys())[ver]
try:
with open("update.zip", "wb") 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()
if not os.path.isdir("update"):
os.mkdir("update")
with zipfile.ZipFile("update.zip", "r") as zip_ref:
zip_ref.extractall("update")
os.rmdir("update")
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") as file:
settings = json.load(file)
for line in settings["heartbeat_table"]:
settings["heartbeat_table"][line] = []
with open("settings.json", "w") 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") as file:
settings = json.load(file)
for line in settings["heartbeat_table"]:
settings["heartbeat_table"][line] = []
with open("settings.json", "w") as file:
json.dump(settings, file, indent=2)