From d2a57b329b331b6864e7ae2ec3b2feb74ece9e78 Mon Sep 17 00:00:00 2001
From: punix <polunga40@unity-mail.de>
Date: Thu, 24 Apr 2025 23:04:34 +0200
Subject: [PATCH] Class LxTools expands wg_set to set_file renamed

---
 __pycache__/cls_mth_fc.cpython-312.pyc | Bin 22727 -> 23194 bytes
 cls_mth_fc.py                          | 224 +++++++++++++------------
 wirepy.py                              |  41 +++--
 3 files changed, 136 insertions(+), 129 deletions(-)

diff --git a/__pycache__/cls_mth_fc.cpython-312.pyc b/__pycache__/cls_mth_fc.cpython-312.pyc
index 604aa1f922a23fb84a7819951e01c6d85be5503f..f2b87c1cee3128a5553e7ec4b4586ef07ce98bcd 100644
GIT binary patch
delta 5775
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

delta 5317
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
L@*i^ms;T}Ls)JUo

diff --git a/cls_mth_fc.py b/cls_mth_fc.py
index 9179d64..ef09142 100755
--- a/cls_mth_fc.py
+++ b/cls_mth_fc.py
@@ -23,7 +23,7 @@ gettext.bindtextdomain(APP, LOCALE_DIR)
 gettext.textdomain(APP)
 _ = gettext.gettext
 
-wg_set = Path(Path.home() / ".config/wire_py/settings")
+#wg_set = Path(Path.home() / ".config/wire_py/settings")
 
 
 class Create:
@@ -135,30 +135,30 @@ class LxTools(tk.Tk):
         super().__init__(*args, **kwargs)
 
 
-    def theme_change_light(self):
+    def theme_change_light(self, file=None):
         """
         Set light theme
         """
         if self.tk.call("ttk::style", "theme", "use") == "water-dark":
             self.tk.call("set_theme", "light")
-            with open(wg_set, "r", encoding="utf-8") as theme_set2:
+            with open(file, "r", encoding="utf-8") as theme_set2:
                 lines3 = theme_set2.readlines()
                 lines3[3] = "light\n"
-            with open(wg_set, "w", encoding="utf-8") as theme_set2:
+            with open(file, "w", encoding="utf-8") as theme_set2:
                 theme_set2.writelines(lines3)
             self.color_label()
 
 
-    def theme_change_dark(self):
+    def theme_change_dark(self, file=None):
         """
         Set dark theme
         """
         if not self.tk.call("ttk::style", "theme", "use") == "water-dark":
             self.tk.call("set_theme", "dark")
-            with open(wg_set, "r", encoding="utf-8") as theme_set2:
+            with open(file, "r", encoding="utf-8") as theme_set2:
                 lines4 = theme_set2.readlines()
                 lines4[3] = "dark\n"
-            with open(wg_set, "w", encoding="utf-8") as theme_set2:
+            with open(file, "w", encoding="utf-8") as theme_set2:
                 theme_set2.writelines(lines4)
             self.color_label()
 
@@ -176,6 +176,106 @@ class LxTools(tk.Tk):
         with open(file, "w", encoding="utf-8") as f:
             f.write(logname)
 
+    @staticmethod
+    def clean_files(dirname=None, path=None):
+        if dirname != None:
+                shutil.rmtree(dirname)
+        if path != None:       
+            Path.unlink(f"{path}")
+
+    @staticmethod
+    def if_tip(path):
+        """
+        method that writes in file whether tooltip is displayed or not
+        """
+        with open(path, "r", encoding="utf-8") as set_f2:
+            lines2 = set_f2.readlines()
+            if "False\n" in lines2:
+                tip = False
+            else:
+                tip = True
+            return tip
+
+    @staticmethod
+    def msg_window(img_w, img_i, w_title, w_txt, txt2=None, com=None):
+        """
+        Method for different message windows for the user. with 4 arguments to be passed.
+        To create messages with your own images, icons, and titles.
+        As an alternative to Python Messagebox.
+        Paths to images must be specified: r'/usr/share/icons/lx-icons/64/info.png'
+        img_w = Image for Tk Window
+        img_i = Image for Icon
+        w_title = Windows Title
+        w_txt = Text for Tk Window
+        txt2 = Text for Button two
+        com = function for Button command
+        """
+        msg = tk.Toplevel()
+        msg.resizable(width=False, height=False)
+        msg.title(w_title)
+        msg.configure(pady=15, padx=15)
+        msg.img = tk.PhotoImage(file=img_w)
+        msg.i_window = tk.Label(msg, image=msg.img)
+
+        label = tk.Label(msg, text=w_txt)
+
+        label.grid(column=1, row=0)
+
+        if txt2 is not None and com is not None:
+            label.config(font=("Ubuntu", 11), padx=15, justify="left")
+            msg.i_window.grid(column=0, row=0, sticky="nw")
+            button2 = ttk.Button(msg, text=f"{txt2}", command=com, padding=4)
+            button2.grid(column=0, row=1, sticky="e", columnspan=2)
+            button = ttk.Button(msg, text="OK", command=msg.destroy, padding=4)
+            button.grid(column=0, row=1, sticky="w", columnspan=2)
+
+        else:
+            label.config(font=("Ubuntu", 11), padx=15)
+            msg.i_window.grid(column=0, row=0)
+            button = ttk.Button(msg, text="OK", command=msg.destroy, padding=4)
+            button.grid(column=0, columnspan=2, row=1)
+
+        img_i = tk.PhotoImage(file=img_i)
+        msg.iconphoto(True, img_i)
+        msg.columnconfigure(0, weight=1)
+        msg.rowconfigure(0, weight=1)
+        msg.winfo_toplevel()
+
+    @staticmethod
+    def sigi(dirname=None, path=None):
+        """
+        function for clean up after break
+        """
+
+        def signal_handler(signum, frame):
+            """
+            Determine clear text names for signal numbers
+            """
+            signals_to_names_dict = dict(
+                (getattr(signal, n), n)
+                for n in dir(signal)
+                if n.startswith("SIG") and "_" not in n
+            )
+            signame = signals_to_names_dict.get(signum, f"Unnamed signal: {signum}")
+
+            # End program for certain signals, report to others only reception
+            if signum in (signal.SIGINT, signal.SIGTERM):
+                exit_code = 1
+                print(
+                    f"\nSignal {signame} {(signum)} received. => Aborting with exit code {exit_code}."
+                )
+                LxTools.clean_files(dirname)
+                print("Breakdown by user...")
+                sys.exit(exit_code)
+            else:
+                print(f"Signal {signum} received and ignored.")
+                LxTools.clean_files(dirname)
+                print("Process unexpectedly ended...")
+
+        signal.signal(signal.SIGINT, signal_handler)
+        signal.signal(signal.SIGTERM, signal_handler)
+        signal.signal(signal.SIGHUP, signal_handler)
+
 
 class GiteaUpdate:
     """
@@ -185,7 +285,7 @@ class GiteaUpdate:
     """
 
     @staticmethod
-    def api_down(update_api_url, version):
+    def api_down(update_api_url, version, file=None):
         """
         Calling api_down requests the URL and the version of the running script.
         Example: version = 'v. 1.1.1.1' GiteaUpdate.api_down(http://example.de, version)
@@ -194,7 +294,7 @@ class GiteaUpdate:
             response = requests.get(update_api_url, timeout=10)
             response_dict = response.json()
             response_dict = response_dict[0]
-            with open(wg_set, "r", encoding="utf-8") as set_f:
+            with open(file, "r", encoding="utf-8") as set_f:
                 set_f = set_f.read()
                 if "on\n" in set_f:
                     if version[3:] != response_dict["tag_name"]:
@@ -224,7 +324,7 @@ class GiteaUpdate:
                 ii = down_ok_image
                 wt = _("Download Successful")
                 msg_t = _("Your zip file is in home directory")
-                msg_window(iw, ii, wt, msg_t)
+                LxTools.msg_window(iw, ii, wt, msg_t)
 
             else:
 
@@ -233,7 +333,8 @@ class GiteaUpdate:
                 ii = down_not_ok_image
                 wt = _("Download error")
                 msg_t = _("Download failed! Please try again")
-                msg_window(iw, ii, wt, msg_t)
+                LxTools.msg_window(iw, ii, wt, msg_t)
+
         except subprocess.CalledProcessError:
 
             # img_w, img_i, w_title, w_txt hand over
@@ -241,52 +342,7 @@ class GiteaUpdate:
             ii = down_not_ok_image
             wt = _("Download error")
             msg_t = _("Download failed! No internet connection!")
-            msg_window(iw, ii, wt, msg_t)
-
-
-def msg_window(img_w, img_i, w_title, w_txt, txt2=None, com=None):
-    """
-    Function for different message windows for the user. with 4 arguments to be passed.
-    To create messages with your own images, icons, and titles.
-    As an alternative to Python Messagebox.
-    Paths to images must be specified: r'/usr/share/icons/lx-icons/64/info.png'
-    img_w = Image for Tk Window
-    img_i = Image for Icon
-    w_title = Windows Title
-    w_txt = Text for Tk Window
-    txt2 = Text for Button two
-    com = function for Button command
-    """
-    msg = tk.Toplevel()
-    msg.resizable(width=False, height=False)
-    msg.title(w_title)
-    msg.configure(pady=15, padx=15)
-    msg.img = tk.PhotoImage(file=img_w)
-    msg.i_window = tk.Label(msg, image=msg.img)
-
-    label = tk.Label(msg, text=w_txt)
-
-    label.grid(column=1, row=0)
-
-    if txt2 is not None and com is not None:
-        label.config(font=("Ubuntu", 11), padx=15, justify="left")
-        msg.i_window.grid(column=0, row=0, sticky="nw")
-        button2 = ttk.Button(msg, text=f"{txt2}", command=com, padding=4)
-        button2.grid(column=0, row=1, sticky="e", columnspan=2)
-        button = ttk.Button(msg, text="OK", command=msg.destroy, padding=4)
-        button.grid(column=0, row=1, sticky="w", columnspan=2)
-
-    else:
-        label.config(font=("Ubuntu", 11), padx=15)
-        msg.i_window.grid(column=0, row=0)
-        button = ttk.Button(msg, text="OK", command=msg.destroy, padding=4)
-        button.grid(column=0, columnspan=2, row=1)
-
-    img_i = tk.PhotoImage(file=img_i)
-    msg.iconphoto(True, img_i)
-    msg.columnconfigure(0, weight=1)
-    msg.rowconfigure(0, weight=1)
-    msg.winfo_toplevel()
+            LxTools.msg_window(iw, ii, wt, msg_t)
 
 
 class Tunnel:
@@ -393,7 +449,7 @@ class Tunnel:
                         ii = r"/usr/share/icons/lx-icons/48/wg_vpn.png"
                         wt = _("Export Successful")
                         msg_t = _("Your zip file is in home directory")
-                        msg_window(iw, ii, wt, msg_t)
+                        LxTools.msg_window(iw, ii, wt, msg_t)
 
                     else:
 
@@ -402,7 +458,7 @@ class Tunnel:
                         ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
                         wt = _("Export error")
                         msg_t = _("Export failed! Please try again")
-                        msg_window(iw, ii, wt, msg_t)
+                        LxTools.msg_window(iw, ii, wt, msg_t)
 
             else:
 
@@ -411,60 +467,12 @@ class Tunnel:
                 ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
                 wt = _("Select tunnel")
                 msg_t = _("Please first import tunnel")
-                msg_window(iw, ii, wt, msg_t)
+                LxTools.msg_window(iw, ii, wt, msg_t)
 
         except TypeError:
             pass
 
 
-def sigi(dirname):
-    """
-    function for clean up after break
-    """
-
-    def signal_handler(signum, frame):
-        """
-        Determine clear text names for signal numbers
-        """
-        signals_to_names_dict = dict(
-            (getattr(signal, n), n)
-            for n in dir(signal)
-            if n.startswith("SIG") and "_" not in n
-        )
-        signame = signals_to_names_dict.get(signum, f"Unnamed signal: {signum}")
-
-        # End program for certain signals, report to others only reception
-        if signum in (signal.SIGINT, signal.SIGTERM):
-            exit_code = 1
-            print(
-                f"\nSignal {signame} {(signum)} received. => Aborting with exit code {exit_code}."
-            )
-            shutil.rmtree(dirname)
-            Path.unlink("/tmp/.loguser")
-            print("Breakdown by user...")
-            sys.exit(exit_code)
-        else:
-            print(f"Signal {signum} received and ignored.")
-            shutil.rmtree(dirname)
-            Path.unlink("/tmp/.loguser")
-            print("Process unexpectedly ended...")
-
-    signal.signal(signal.SIGINT, signal_handler)
-    signal.signal(signal.SIGTERM, signal_handler)
-    signal.signal(signal.SIGHUP, signal_handler)
-
-
-def if_tip(path):
-    """
-    method that writes in file whether tooltip is displayed or not
-    """
-    with open(path, "r", encoding="utf-8") as set_f2:
-        lines2 = set_f2.readlines()
-        if "False\n" in lines2:
-            tip = False
-        else:
-            tip = True
-        return tip
 
 
 class Tooltip:
diff --git a/wirepy.py b/wirepy.py
index 0560043..d3056c8 100755
--- a/wirepy.py
+++ b/wirepy.py
@@ -14,8 +14,7 @@ from pathlib import Path
 from subprocess import check_call
 from tkinter import TclError, filedialog, ttk
 
-from cls_mth_fc import (Create, GiteaUpdate, Tooltip, Tunnel, if_tip,
-                        LxTools, msg_window, sigi)
+from cls_mth_fc import (Create, GiteaUpdate, Tooltip, Tunnel, LxTools)
 
 LxTools.uos()
 Create.dir_and_files()
@@ -23,15 +22,16 @@ Create.make_dir()
 Create.decrypt()
 
 tcl_path = Path("/usr/share/TK-Themes")
-wg_set = Path(Path.home() / ".config/wire_py/settings")
-tips = if_tip(wg_set)
+set_file = Path(Path.home() / ".config/wire_py/settings")
+tips = LxTools.if_tip(set_file)
 dirname = Path("/tmp/tlecdcwg/")
+userfile = Path("/tmp/.loguser")
 
 # 1 = 1. Year, 09 = Month of the Year, 2924 = Day and Year of the Year
 VERSION = "v. 2.04.1725"
 
 res = GiteaUpdate.api_down(
-    "https://git.ilunix.de/api/v1/repos/punix/Wire-Py/releases", VERSION
+    "https://git.ilunix.de/api/v1/repos/punix/Wire-Py/releases", VERSION, set_file
 )
 
 # Translate
@@ -42,7 +42,7 @@ gettext.bindtextdomain(APP, LOCALE_DIR)
 gettext.textdomain(APP)
 _ = gettext.gettext
 
-sigi(dirname)
+LxTools.sigi(dirname, userfile)
 
 
 class Wirepy(tk.Tk):
@@ -168,7 +168,7 @@ class FrameWidgets(ttk.Frame):
             txt2 = _("Go to Wire-Py git")
             com = link_btn
 
-            msg_window(iw, ii, wt, msg_t, txt2, com)
+            LxTools.msg_window(iw, ii, wt, msg_t, txt2, com)
 
         # Frame for Menu
         self.menu_frame = ttk.Frame(self)
@@ -197,8 +197,8 @@ class FrameWidgets(ttk.Frame):
         self.settings.add_checkbutton(
             label=_("Disable Tooltips"), command=tooltip, variable=set_tip
         )
-        self.settings.add_command(label=_("Light"), command=lambda: LxTools.theme_change_light(self))
-        self.settings.add_command(label=_("Dark"), command=lambda: LxTools.theme_change_dark(self))
+        self.settings.add_command(label=_("Light"), command=lambda: LxTools.theme_change_light(self, set_file))
+        self.settings.add_command(label=_("Dark"), command=lambda: LxTools.theme_change_dark(self, set_file))
 
         # About BTN Menu / Label
         self.about_btn = ttk.Button(
@@ -427,7 +427,7 @@ class FrameWidgets(ttk.Frame):
                     ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
                     wt = _("Select tunnel")
                     msg_t = _("Please select a tunnel from the list")
-                    msg_window(iw, ii, wt, msg_t)
+                    LxTools.msg_window(iw, ii, wt, msg_t)
 
                 else:
 
@@ -436,7 +436,7 @@ class FrameWidgets(ttk.Frame):
                     ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
                     wt = _("Select tunnel")
                     msg_t = _("Please first import tunnel")
-                    msg_window(iw, ii, wt, msg_t)
+                    LxTools.msg_window(iw, ii, wt, msg_t)
 
         # Button Trash
         self.btn_tr = ttk.Button(
@@ -500,7 +500,7 @@ class FrameWidgets(ttk.Frame):
                 ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
                 wt = _("Renaming not possible")
                 msg_t = _("The new name may contain only 12 characters")
-                msg_window(iw, ii, wt, msg_t)
+                LxTools.msg_window(iw, ii, wt, msg_t)
 
             elif len(self.lb_rename.get()) == 0:
 
@@ -509,7 +509,7 @@ class FrameWidgets(ttk.Frame):
                 ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
                 wt = _("Renaming not possible")
                 msg_t = _("At least one character must be entered")
-                msg_window(iw, ii, wt, msg_t)
+                LxTools.msg_window(iw, ii, wt, msg_t)
 
             elif any(ch in special_characters for ch in self.lb_rename.get()):
 
@@ -520,7 +520,7 @@ class FrameWidgets(ttk.Frame):
                 msg_t = _(
                     "No valid sign. These must not be used.\nBlank, Slash, Backslash and { }\n"
                 )
-                msg_window(iw, ii, wt, msg_t)
+                LxTools.msg_window(iw, ii, wt, msg_t)
 
             else:
 
@@ -572,7 +572,7 @@ class FrameWidgets(ttk.Frame):
                     ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
                     wt = _("Renaming not possible")
                     msg_t = _("Please select a tunnel from the list")
-                    msg_window(iw, ii, wt, msg_t)
+                    LxTools.msg_window(iw, ii, wt, msg_t)
 
         # Button Rename
         self.btn_rename = ttk.Button(
@@ -678,7 +678,7 @@ class FrameWidgets(ttk.Frame):
                                 msg_t = _(
                                     "Tunnel already available!\nPlease use another file for import"
                                 )
-                                msg_window(iw, ii, wt, msg_t)
+                                LxTools.msg_window(iw, ii, wt, msg_t)
 
                             else:
 
@@ -827,7 +827,7 @@ class FrameWidgets(ttk.Frame):
                 msg_t = _(
                     "Oh... no valid Wireguard File!\nPlease select a valid Wireguard File"
                 )
-                msg_window(iw, ii, wt, msg_t)
+                LxTools.msg_window(iw, ii, wt, msg_t)
 
         except EOFError as e:
             print(e)
@@ -1056,7 +1056,7 @@ class FrameWidgets(ttk.Frame):
                 ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
                 wt = _("Select tunnel")
                 msg_t = _("Please select a tunnel from the list")
-                msg_window(iw, ii, wt, msg_t)
+                LxTools.msg_window(iw, ii, wt, msg_t)
 
             else:
 
@@ -1065,7 +1065,7 @@ class FrameWidgets(ttk.Frame):
                 ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
                 wt = _("Select tunnel")
                 msg_t = _("Please first import tunnel")
-                msg_window(iw, ii, wt, msg_t)
+                LxTools.msg_window(iw, ii, wt, msg_t)
 
 
 if __name__ == "__main__":
@@ -1081,6 +1081,5 @@ if __name__ == "__main__":
     window.tk.call("set", "::tk::dialog::file::showHiddenVar", "0")
     window.mainloop()
 
-shutil.rmtree(dirname)
-Path.unlink("/tmp/.loguser")
+LxTools.clean_files(dirname, userfile)
 sys.exit(0)