spaceningui/subfiles/helpers.py

161 lines
4.3 KiB
Python

from CTkMessagebox import CTkMessagebox
import threading
from .savetools import loadFile
from pathlib import Path
from .comunic import getIconDownload
import os
import signal
import json
from PIL import Image
try:
from os import startfile
except:
from os import system
from sys import platform
def killPopen(popen): #jesus
os.kill(os.getpgid(popen.pid), signal.SIGTERM)
def folderExist(path):
Path(path).mkdir(parents=True, exist_ok=True)
def check():
print("Save Good")
def removeChildren(frame):
for element in frame.winfo_children():
element.destroy()
def bgThread(func, args):
th = threading.Thread(target=func, args=args)
th.start()
def openLocation(self, location):
if platform == "linux":
system('xdg-open "%s"' % location)
elif platform == "windows":
startfile(foldername)
def messageBox(self, title, message, type): #type will be implemented at a later point when required. for now, just fill it in irregardless.
CTkMessagebox(title=title, message=message)
def getLogMax(self, save):
return loadFile(self, save)['maxlogsize'] #not entirely sure why I made this a seperate function but eh
def isNumber(data):
if data == '':
return True
try:
rv = int(data)
except ValueError:
return False
return True
def formatExportWeapons(self, file1):
log = open("log.txt", "a")
testfile = open("test1.json", 'w')
if open(file1):
print("opened")
with open(file1, 'r') as file:
data=json.load(file)["ExportWeapons"]
redund = []
for diction in range(len(data)):
for key in list(data[diction].keys()):
if key not in ["name", "slot", "uniqueName"]:
del data[diction][key]
print("deleted " + str(data[diction]["name"] + ' ' + key))
if 'slot' not in data[diction].keys():
redund.append(diction)
i=0
for diction in redund:
i+=1
print("Removed Unneeded Modular " + str(data[diction-i]["name"]), file=log)
del data[diction-i]
def sortFunc(e):
return e["name"]
data.sort(key=sortFunc)
json.dump(data, testfile, indent=2)
return data
def formatExportPowersuits(self, file1):
log = open("log.txt", "a")
testfile = open("test2.json", 'w')
if open(file1):
print("opened")
with open(file1, 'r') as file:
data=json.load(file)["ExportWarframes"]
redund = []
for diction in range(len(data)):
for key in list(data[diction].keys()):
if key not in ["name", "productCategory", "uniqueName"]:
del data[diction][key]
print("deleted " + str(data[diction]["name"] + ' ' + key))
def sortFunc(e):
return e["name"]
data.sort(key=sortFunc)
json.dump(data, testfile, indent=2)
return data
def formatExportPlus(self, file1):
with open(file1, 'r') as file:
data=json.load(file)
write = False
for item in data.keys():
print(data[item])
if type(data[item]) is dict:
icon = data[item]["icon"]
print(data[item])
data[item] = icon
write=True
if write == True:
with open(file1, 'w') as file:
json.dump(data, file, indent=2)
return data
def getIcon(self, path, savePath):
try:
image = Image.open("./cache/items/icons" + savePath)
return image
except:
getIconDownload(self, path, savePath)
return Image.open("./cache/items/icons" + savePath)
#Old Helper options, left here for future reference. Shitty code, but it works, and it may be useful in the future
# def getlogmax():
# file = 'sngconfig.json'
# if Path(file).is_file():
# with open(file) as f:
# d = json.load(f)
#
# else:
# return False
# def check4sn(configfile):
# file = helpers.getsnpath(configfile) + "package.json"
# if Path(file).is_file():
# with open(file) as f:
# d = json.load(f)
# if (d["name"] == "wf-emulator"):
# return True
# else:
# return False#