mirror of
https://github.com/FAUSheppy/homelab_gamevault
synced 2025-12-06 15:01:36 +01:00
feat: links & steam links
This commit is contained in:
@@ -109,23 +109,46 @@ def create_details_page(app, software, backswitch_function):
|
|||||||
button_frame = customtkinter.CTkFrame(info_frame, fg_color="transparent")
|
button_frame = customtkinter.CTkFrame(info_frame, fg_color="transparent")
|
||||||
button_frame.grid(column=0, row=6, sticky="w")
|
button_frame.grid(column=0, row=6, sticky="w")
|
||||||
elements.append(button_frame)
|
elements.append(button_frame)
|
||||||
install_button = customtkinter.CTkButton(button_frame, text="Install",
|
|
||||||
|
if software.link_only and "steam" in software.link_only:
|
||||||
|
install_text = "Open Steam"
|
||||||
|
remove_text = "Remove from Steam"
|
||||||
|
elif software.link_only:
|
||||||
|
install_text = "Open in Browser"
|
||||||
|
remove_text = "Remove Manually"
|
||||||
|
else:
|
||||||
|
install_text = "Install"
|
||||||
|
remove_text = "Remove"
|
||||||
|
|
||||||
|
install_button = customtkinter.CTkButton(button_frame, text=install_text,
|
||||||
command=lambda: software.install())
|
command=lambda: software.install())
|
||||||
remove_button = customtkinter.CTkButton(button_frame, text="Remove",
|
|
||||||
|
# add remove button #
|
||||||
|
remove_button = customtkinter.CTkButton(button_frame, text=remove_text,
|
||||||
command=lambda: software.remove())
|
command=lambda: software.remove())
|
||||||
|
|
||||||
|
if remove_text != "Remove":
|
||||||
|
remove_button.configure(state=tkinter.DISABLED)
|
||||||
|
remove_button.configure(fg_color="gray")
|
||||||
|
|
||||||
|
remove_button.pack(padx=10, pady=15, anchor="sw", side="left")
|
||||||
|
|
||||||
|
|
||||||
# run button #
|
# run button #
|
||||||
run_button = customtkinter.CTkButton(button_frame, text="Run",
|
run_button = customtkinter.CTkButton(button_frame, text="Run",
|
||||||
command=lambda: software.run())
|
command=lambda: software.run())
|
||||||
run_button.pack(padx=10, pady=15, anchor="sw", side="left")
|
run_button.pack(padx=10, pady=15, anchor="sw", side="left")
|
||||||
elements.append(run_button)
|
|
||||||
|
# install button #
|
||||||
if not software.run_exe:
|
if not software.run_exe:
|
||||||
run_button.configure(state=tkinter.DISABLED)
|
run_button.configure(state=tkinter.DISABLED)
|
||||||
run_button.configure(fg_color="gray")
|
run_button.configure(fg_color="gray")
|
||||||
|
|
||||||
install_button.pack(padx=10, pady=15, anchor="sw", side="left")
|
install_button.pack(padx=10, pady=15, anchor="sw", side="left")
|
||||||
remove_button.pack(padx=10, pady=15, anchor="sw", side="left")
|
|
||||||
|
# add buttons #
|
||||||
elements.append(install_button)
|
elements.append(install_button)
|
||||||
|
elements.append(run_button)
|
||||||
elements.append(remove_button)
|
elements.append(remove_button)
|
||||||
|
|
||||||
# add other pictures #
|
# add other pictures #
|
||||||
|
|||||||
13
software.py
13
software.py
@@ -5,6 +5,7 @@ import zipfile
|
|||||||
import shutil
|
import shutil
|
||||||
import pathlib
|
import pathlib
|
||||||
import tqdm
|
import tqdm
|
||||||
|
import webbrowser
|
||||||
|
|
||||||
class Software:
|
class Software:
|
||||||
|
|
||||||
@@ -72,6 +73,11 @@ class Software:
|
|||||||
|
|
||||||
print("Installing:", self.title, self.directory)
|
print("Installing:", self.title, self.directory)
|
||||||
|
|
||||||
|
# handle link-only software #
|
||||||
|
if self.link_only:
|
||||||
|
webbrowser.open(self.link_only)
|
||||||
|
return
|
||||||
|
|
||||||
path = os.path.join(self.directory, "main_dir")
|
path = os.path.join(self.directory, "main_dir")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -115,5 +121,12 @@ class Software:
|
|||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
'''Run the configured exe for this software'''
|
'''Run the configured exe for this software'''
|
||||||
|
|
||||||
|
print(self.run_exe, self.link_only)
|
||||||
|
if self.run_exe == "steam" and "steam://" in self.link_only:
|
||||||
|
print("steam://runid/{}".format(self.link_only.split("/")[-1]))
|
||||||
|
webbrowser.open("steam://rungameid/{}".format(self.link_only.split("/")[-1]))
|
||||||
|
return
|
||||||
|
|
||||||
if self.run_exe:
|
if self.run_exe:
|
||||||
localaction.run_exe(os.path.join(self.backend.install_dir, self.title, self.run_exe))
|
localaction.run_exe(os.path.join(self.backend.install_dir, self.title, self.run_exe))
|
||||||
Reference in New Issue
Block a user