Refactor to store Base64 data in a separate Python file

Moved Base64 strings for executable and icon into a dedicated Python module (base64_strings.py) instead of text files, enhancing code organization. Updated main.py to import Base64 strings from the new module. Also replaced placeholder program name 'DeinProgrammName' with 'Toolbox' throughout the installer scripts.
This commit is contained in:
2024-12-09 22:09:51 +01:00
parent cb6cbe4352
commit 5a2ddd031b
2 changed files with 18 additions and 16 deletions
+5 -7
View File
@@ -10,11 +10,9 @@ def encode_file_to_base64(file_path):
exe_base64 = encode_file_to_base64("D:/Repos/toolbox/cmake-build-release-visual-studio/Toolbox.exe") exe_base64 = encode_file_to_base64("D:/Repos/toolbox/cmake-build-release-visual-studio/Toolbox.exe")
icon_base64 = encode_file_to_base64("D:/Repos/toolbox/cmake-build-release-visual-studio/toolbox.ico") icon_base64 = encode_file_to_base64("D:/Repos/toolbox/cmake-build-release-visual-studio/toolbox.ico")
# Base64-Strings in Textdateien schreiben # Base64-Strings in eine Python-Datei schreiben
with open("Toolbox_exe_base64.txt", 'w') as exe_file: with open("base64_strings.py", 'w') as py_file:
exe_file.write(exe_base64) py_file.write(f'exe_base64 = """{exe_base64}"""\n\n')
py_file.write(f'icon_base64 = """{icon_base64}"""\n\n')
with open("Toolbox_icon_base64.txt", 'w') as icon_file: print("Base64-Daten erfolgreich in die Python-Datei gespeichert.")
icon_file.write(icon_base64)
print("Base64-Daten erfolgreich in Textdateien gespeichert.")
+12 -8
View File
@@ -2,10 +2,11 @@ import base64
import os import os
from tkinter import Tk, Button, Label, Entry, filedialog, messagebox, StringVar, DoubleVar, Frame, Text from tkinter import Tk, Button, Label, Entry, filedialog, messagebox, StringVar, DoubleVar, Frame, Text
from tkinter.ttk import Progressbar, Style from tkinter.ttk import Progressbar, Style
import base64_strings
# Base64-Strings für die Dateien (als Platzhalter) # Base64-Strings für die Dateien
exe_base64 = "..." # Base64-String der .exe exe_base64 = base64_strings.exe_base64
icon_base64 = "..." # Base64-String der .ico icon_base64 = base64_strings.icon_base64
def decode_base64_to_file(base64_str, output_path, progress_callback=None): def decode_base64_to_file(base64_str, output_path, progress_callback=None):
@@ -88,7 +89,7 @@ def extract_files():
decode_base64_to_file(icon_base64, icon_path, update_progress) decode_base64_to_file(icon_base64, icon_path, update_progress)
# Create shortcuts # Create shortcuts
create_shortcut(exe_path, "DeinProgrammName", icon_path) create_shortcut(exe_path, "Toolbox", icon_path)
messagebox.showinfo("Success", "Installation abgeschlossen!") messagebox.showinfo("Success", "Installation abgeschlossen!")
except Exception as e: except Exception as e:
@@ -99,9 +100,11 @@ def show_readme():
"""Displays the final README page.""" """Displays the final README page."""
readme_window = Frame(root, bg='#2e2e2e') readme_window = Frame(root, bg='#2e2e2e')
readme_window.pack(fill='both', expand=True) readme_window.pack(fill='both', expand=True)
Label(readme_window, text="Installation abgeschlossen!", bg="#2e2e2e", fg="white", font=("Helvetica", 16)).pack(pady=20) Label(readme_window, text="Installation abgeschlossen!", bg="#2e2e2e", fg="white", font=("Helvetica", 16)).pack(
pady=20)
readme_text = Text(readme_window, bg="#444", fg="white", wrap='word', height=10, width=50) readme_text = Text(readme_window, bg="#444", fg="white", wrap='word', height=10, width=50)
readme_text.insert('1.0', "Vielen Dank, dass Sie 'DeinProgrammName' installiert haben!\n\nWeitere Informationen finden Sie auf unserer Website.") readme_text.insert('1.0',
"Vielen Dank, dass Sie 'Toolbox' installiert haben!\n\nWeitere Informationen finden Sie auf unserer Website.")
readme_text.configure(state='disabled') readme_text.configure(state='disabled')
readme_text.pack(pady=10) readme_text.pack(pady=10)
Button(readme_window, text="Beenden", command=root.quit).pack(pady=10) Button(readme_window, text="Beenden", command=root.quit).pack(pady=10)
@@ -124,7 +127,8 @@ def setup_page_1():
welcome_page = Frame(root, bg='#2e2e2e') welcome_page = Frame(root, bg='#2e2e2e')
welcome_page.pack(fill='both', expand=True) welcome_page.pack(fill='both', expand=True)
Label(welcome_page, text="Willkommen beim Installer!", bg="#2e2e2e", fg="white", font=("Helvetica", 16)).pack(pady=20) Label(welcome_page, text="Willkommen beim Installer!", bg="#2e2e2e", fg="white", font=("Helvetica", 16)).pack(
pady=20)
Label(welcome_page, text="Klicken Sie auf 'Weiter', um fortzufahren.", bg="#2e2e2e", fg="white").pack(pady=10) Label(welcome_page, text="Klicken Sie auf 'Weiter', um fortzufahren.", bg="#2e2e2e", fg="white").pack(pady=10)
Button(welcome_page, text="Weiter", command=lambda: (welcome_page.pack_forget(), next_page())).pack() Button(welcome_page, text="Weiter", command=lambda: (welcome_page.pack_forget(), next_page())).pack()
@@ -169,7 +173,7 @@ style.configure('TButton', background='#444', foreground='white', font=('Helveti
style.configure('Horizontal.TProgressbar', troughcolor='#444', background='#5a9') style.configure('Horizontal.TProgressbar', troughcolor='#444', background='#5a9')
root.configure(background='#2e2e2e') root.configure(background='#2e2e2e')
output_dir_var = StringVar(value=os.path.join(os.environ['PROGRAMFILES(X86)'], "DeinProgrammName")) output_dir_var = StringVar(value=os.path.join(os.environ['PROGRAMFILES(X86)'], "Toolbox"))
progress_var = DoubleVar() progress_var = DoubleVar()
current_page = 0 current_page = 0