159 lines
5.1 KiB
Python
159 lines
5.1 KiB
Python
import Backend
|
|
from getpass import getpass
|
|
from customtkinter import *
|
|
from tkinter import filedialog, simpledialog, messagebox
|
|
|
|
global version
|
|
global modpack
|
|
global modpack_name
|
|
global modpack_id
|
|
global modpacks
|
|
|
|
def get_credentials():
|
|
username = simpledialog.askstring("username", "Username: ")
|
|
password = simpledialog.askstring("password", "Password: ", show="*")
|
|
return username, password
|
|
|
|
def select_file():
|
|
global fileName
|
|
global file_path_entry
|
|
file = filedialog.askopenfilename()
|
|
if file:
|
|
fileName = file
|
|
file_path_entry.insert(0, fileName)
|
|
|
|
def update_pack():
|
|
global modpacks
|
|
global fileName
|
|
global modpack
|
|
global version
|
|
username, password = get_credentials()
|
|
pack_id = None
|
|
for pack in modpacks:
|
|
if pack["name"] == modpack.get():
|
|
pack_id = pack["id"]
|
|
Backend.upload_pack(username, password, version.get(), fileName, pack_id)
|
|
messagebox.Message(title="complete", message="Modpack updated successfuly").show()
|
|
|
|
def create_pack():
|
|
global modpacks
|
|
global modpack_id
|
|
global modpack_name
|
|
global version
|
|
global fileName
|
|
for pack in modpacks:
|
|
if pack["id"] == modpack_id.get():
|
|
messagebox.Message(title="Error", message="Pack ID already exists").show()
|
|
return
|
|
if pack["name"] == modpack_name.get():
|
|
messagebox.Message(title="Error", message="Pack name already exists").show()
|
|
return
|
|
username, password = get_credentials()
|
|
Backend.createModpack(modpack_id.get(), modpack_name.get(), username, password)
|
|
Backend.upload_pack(username, password, version.get(), fileName, modpack_id.get())
|
|
messagebox.Message(title="complete", message="Modpack created successfully").show()
|
|
|
|
def delete_pack():
|
|
global modpacks
|
|
global modpack_delete
|
|
username, password = get_credentials()
|
|
pack_id = None
|
|
for pack in modpacks:
|
|
if pack["name"] == modpack_delete.get():
|
|
pack_id = pack["id"]
|
|
|
|
Backend.deleteModpack(username, password, pack_id)
|
|
|
|
def main():
|
|
global fileName
|
|
global modpacks
|
|
global modpack_id
|
|
global version
|
|
global modpack
|
|
global modpack_name
|
|
global modpack_delete
|
|
fileName = "modpack.mrpack"
|
|
app = CTk()
|
|
if os.name == 'posix':
|
|
app.attributes('-type', 'dialog')
|
|
app.geometry('500x400')
|
|
app.title("FamilyCraft Launcher Upload Utility")
|
|
set_appearance_mode("dark")
|
|
set_default_color_theme("blue")
|
|
|
|
version = StringVar()
|
|
modpack = StringVar()
|
|
modpack_name = StringVar()
|
|
modpack_id = StringVar()
|
|
modpack_delete = StringVar()
|
|
|
|
|
|
|
|
|
|
file_label = CTkLabel(master=app, text="Select mrpack file:", font=("Impact", 15))
|
|
file_label.pack()
|
|
global file_path_entry
|
|
file_path_entry = CTkEntry(master=app, width=350, font=("Arial", 14))
|
|
file_path_entry.pack(pady=5)
|
|
file_path_entry.insert(0, fileName)
|
|
browse_button = CTkButton(master=app, text="Browse...", command=select_file)
|
|
browse_button.pack(pady=5)
|
|
|
|
version_label = CTkLabel(master=app, text="Version Number:", font=("Impact", 15))
|
|
version_label.pack()
|
|
version_entry = CTkEntry(master=app, width=350, font=("Arial", 14), placeholder_text="0.0.0", textvariable=version)
|
|
version_entry.pack(pady=5)
|
|
|
|
guitabs = CTkTabview(master=app, bg_color="transparent")
|
|
guitabs.pack(expand=True, fill='x', side="bottom", padx=0, pady=(10,0))
|
|
guitabs.add("Update Pack")
|
|
guitabs.add("Create Pack")
|
|
guitabs.add("Delete Pack")
|
|
|
|
modpacks = Backend.getModpacks()
|
|
options = []
|
|
for pack in modpacks:
|
|
options.append(pack["name"])
|
|
modpack_selector = CTkOptionMenu(master=guitabs.tab("Update Pack"), values=options, variable=modpack)
|
|
modpack_selector.set(options[0])
|
|
modpack_selector.pack()
|
|
|
|
update_button = CTkButton(master=guitabs.tab("Update Pack"), text="Update", command=update_pack)
|
|
update_button.pack(pady=5)
|
|
|
|
modpack_id_label = CTkLabel(master=guitabs.tab("Create Pack"), text="ID:", font=("Impact", 15))
|
|
modpack_id_label.pack()
|
|
modpack_id_entry = CTkEntry(master=guitabs.tab("Create Pack"), width=350, font=("Arial", 14), textvariable=modpack_id)
|
|
modpack_id_entry.pack(pady=5)
|
|
|
|
modpack_name_label = CTkLabel(master=guitabs.tab("Create Pack"), text="Name: ", font=("Impact", 15))
|
|
modpack_name_label.pack()
|
|
modpack_name_entry = CTkEntry(master=guitabs.tab("Create Pack"), width=350, font=("Arial", 14), textvariable=modpack_name)
|
|
modpack_name_entry.pack(pady=5)
|
|
|
|
create_button = CTkButton(master=guitabs.tab("Create Pack"), text="Create", command=create_pack)
|
|
create_button.pack(pady=5)
|
|
|
|
modpack_selector_delete = CTkOptionMenu(master=guitabs.tab("Delete Pack"), values=options, variable=modpack_delete)
|
|
modpack_selector_delete.set(options[0])
|
|
modpack_selector_delete.pack()
|
|
|
|
delete_button = CTkButton(master=guitabs.tab("Delete Pack"), text="Delete", command=delete_pack)
|
|
delete_button.pack(pady=5)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#username = input("Username: ")
|
|
#password = getpass()
|
|
#version_tag = input("Version Number: ")
|
|
#Backend.upload_pack(username, password, version_tag, fileName, "test")
|
|
app.mainloop()
|
|
|
|
|
|
if __name__=="__main__":
|
|
main()
|