mirror of
				https://github.com/KoboldAI/KoboldAI-Client.git
				synced 2025-06-05 21:59:24 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			86 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import tkinter as tk
 | |
| from tkinter import filedialog
 | |
| from os import getcwd, listdir, path
 | |
| import json
 | |
| 
 | |
| #==================================================================#
 | |
| #  Generic Method for prompting for file path
 | |
| #==================================================================#
 | |
| def getsavepath(dir, title, types):
 | |
|     root = tk.Tk()
 | |
|     root.attributes("-topmost", True)
 | |
|     path = tk.filedialog.asksaveasfile(
 | |
|         initialdir=dir, 
 | |
|         title=title, 
 | |
|         filetypes = types,
 | |
|         defaultextension="*.*"
 | |
|         )
 | |
|     root.destroy()
 | |
|     if(path != "" and path != None):
 | |
|         return path.name
 | |
|     else:
 | |
|         return None
 | |
| 
 | |
| #==================================================================#
 | |
| #  Generic Method for prompting for file path
 | |
| #==================================================================#
 | |
| def getloadpath(dir, title, types):
 | |
|     root = tk.Tk()
 | |
|     root.attributes("-topmost", True)
 | |
|     path = tk.filedialog.askopenfilename(
 | |
|         initialdir=dir, 
 | |
|         title=title, 
 | |
|         filetypes = types
 | |
|         )
 | |
|     root.destroy()
 | |
|     if(path != "" and path != None):
 | |
|         return path
 | |
|     else:
 | |
|         return None
 | |
| 
 | |
| #==================================================================#
 | |
| #  Generic Method for prompting for directory path
 | |
| #==================================================================#
 | |
| def getdirpath(dir, title):
 | |
|     root = tk.Tk()
 | |
|     root.attributes("-topmost", True)
 | |
|     path = filedialog.askdirectory(
 | |
|         initialdir=dir, 
 | |
|         title=title
 | |
|         )
 | |
|     root.destroy()
 | |
|     if(path != "" and path != None):
 | |
|         return path
 | |
|     else:
 | |
|         return None
 | |
| 
 | |
| #==================================================================#
 | |
| #  Returns an array of dicts containing story files in /stories
 | |
| #==================================================================#
 | |
| def getstoryfiles():
 | |
|     list = []
 | |
|     for file in listdir(path.dirname(path.realpath(__file__))+"/stories"):
 | |
|         if file.endswith(".json"):
 | |
|             ob = {}
 | |
|             ob["name"] = file.replace(".json", "")
 | |
|             f = open(path.dirname(path.realpath(__file__))+"/stories/"+file, "r")
 | |
|             try:
 | |
|                 js = json.load(f)
 | |
|             except:
 | |
|                 print("Browser loading error: Story file is malformed or not a JSON file.")
 | |
|                 f.close()
 | |
|                 continue
 | |
|             f.close()
 | |
|             try:
 | |
|                 ob["actions"] = len(js["actions"])
 | |
|             except TypeError:
 | |
|                 print("Browser loading error: Story file has incorrect format.")
 | |
|                 continue
 | |
|             list.append(ob)
 | |
|     return list
 | |
| 
 | |
| #==================================================================#
 | |
| #  Returns True if json file exists with requested save name
 | |
| #==================================================================#
 | |
| def saveexists(name):
 | |
|     return path.exists(path.dirname(os.path.realpath(__file__))+"/stories/"+name+".json") |