Human error prevention, sensor updates, etc.

This commit is contained in:
Untriex Programming
2021-04-09 15:03:59 +02:00
parent 03246b5f43
commit 154a52e30d
5 changed files with 198 additions and 49 deletions

View File

@@ -1,6 +1,8 @@
from datetime import datetime
import json
import requests
import os
import subprocess
class Log:
@@ -46,7 +48,7 @@ class Update:
def __init__(self):
with open("version.json", "r") as f: # loading settings
version = json.load(f)
self.url = version["url"]
self.url = "https://raw.githubusercontent.com/UntriexTv/test_directory/main/ver.json"
self.version = version["version"]
self.id = version["id"]
@@ -54,4 +56,69 @@ class Update:
return json.loads(requests.get(self.url).text)
def get_version(self):
return {"version": self.version, "id": self.id}
return {"version": self.version, "id": self.id}
class Scan:
def __init__(self):
self.cache_exist = os.path.isdir("cache")
self.files_exist = os.path.isdir("files")
if os.path.isfile("update.zip"):
os.remove("update.zip")
self.filesystem_exist = os.path.isfile("filesystem.json")
self.settings_exist = os.path.isfile("settings.json")
self.version_exist = os.path.isfile("version.json")
self.errors = []
self.state_list = {
"error": [],
"files": [], # 0 = does not exist, 1 = cant read, 2 = some values missing
"filesystem": [],
"settings": [],
"version": [],
"system": []
}
def check_to_go(self):
filesystem = ""
if self.cache_exist is False:
os.mkdir("cache")
if self.filesystem_exist is False:
self.state_list["error"].append("filesystem")
self.state_list["filesystem"].append(0)
self.errors.append("Filesystem is missing")
else:
try:
with open("filesystem.json", "r") as f:
filesystem = json.load(f)
except:
self.state_list["error"].append("filesystem")
self.state_list["filesystem"].append(1)
self.errors.append("Filesystem is corrupted")
else:
filesystem_keys = filesystem.keys()
for check in ["ID", "location", "description", "files"]:
if check not in filesystem_keys:
self.state_list["error"].append("filesystem")
self.state_list["filesystem"].append(2)
if self.files_exist is False:
self.state_list["error"].append("files")
self.state_list["files"].append(0)
self.errors.append("Files folder does not exists")
elif filesystem:
for file in dict(filesystem)["files"]:
if not os.path.isfile(f"""files/{dict(file)["name"]}{dict(file)["format"]}"""):
self.errors.append(f"""{dict(file)["name"]}{dict(file)["format"]} does not exists in file folder.""")
if "files" not in self.state_list["error"]:
self.state_list["error"].append("files")
self.state_list["files"].append(2)
if self.settings_exist is False:
self.state_list["error"].append("settings")
self.state_list["settings"].append(0)
if self.version_exist is False:
self.state_list["error"].append("version")
self.state_list["version"].append(0)
def fix_version(self):
subprocess.check_output(["python3", "system.py", "update"])