04-06-2025_large_update #35
										
											Binary file not shown.
										
									
								
							@@ -170,8 +170,8 @@ class LxTools(tk.Tk):
 | 
			
		||||
        """
 | 
			
		||||
        Creates message windows
 | 
			
		||||
 | 
			
		||||
        :argument img_w = Image for Tk Window
 | 
			
		||||
        :argument img_i = Image for Icon
 | 
			
		||||
        :argument img_w = Image for TK window which is displayed to the left of the text
 | 
			
		||||
        :argument img_i = Image for Task Icon
 | 
			
		||||
        :argument w_title = Windows Title
 | 
			
		||||
        :argument w_txt = Text for Tk Window
 | 
			
		||||
        :argument txt2 = Text for Button two
 | 
			
		||||
@@ -291,15 +291,17 @@ class GiteaUpdate:
 | 
			
		||||
            return req
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    def download(urld: str, down_ok_image: str, down_not_ok_image: str, res: str) -> None:
 | 
			
		||||
    def download(urld: str, res: str, img_w: str = None, img_i: str = None, img_w2: str = None, img_i2: str = None) -> None:
 | 
			
		||||
        """
 | 
			
		||||
        Downloads new version of wirepy
 | 
			
		||||
 | 
			
		||||
        Args:
 | 
			
		||||
            urld: Download URL
 | 
			
		||||
            down_ok_image: Path to success image
 | 
			
		||||
            down_not_ok_image: Path to error image
 | 
			
		||||
            res: Result filename
 | 
			
		||||
            img_w: Image for TK window which is displayed to the left of the text
 | 
			
		||||
            img_i: Image for Task Icon
 | 
			
		||||
            img_w2: Image for TK window which is displayed to the left of the text
 | 
			
		||||
            img_i2: Image for Task Icon
 | 
			
		||||
        """
 | 
			
		||||
        try:
 | 
			
		||||
            to_down: str = f"wget -qP {Path.home()} {" "} {urld}"
 | 
			
		||||
@@ -307,30 +309,21 @@ class GiteaUpdate:
 | 
			
		||||
            if result == 0:
 | 
			
		||||
                shutil.chown(f"{Path.home()}/{res}.zip", 1000, 1000)
 | 
			
		||||
 | 
			
		||||
                # Message window variables
 | 
			
		||||
                iw: str = r"/usr/share/icons/lx-icons/64/info.png"
 | 
			
		||||
                ii: str = down_ok_image
 | 
			
		||||
                wt: str = _("Download Successful")
 | 
			
		||||
                msg_t: str = _("Your zip file is in home directory")
 | 
			
		||||
                LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                LxTools.msg_window(img_w, img_i, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
            else:
 | 
			
		||||
 | 
			
		||||
                # Error message window variables
 | 
			
		||||
                iw: str = r"/usr/share/icons/lx-icons/64/error.png"
 | 
			
		||||
                ii: str = down_not_ok_image
 | 
			
		||||
                wt: str = _("Download error")
 | 
			
		||||
                msg_t: str = _("Download failed! Please try again")
 | 
			
		||||
                LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                LxTools.msg_window(img_w2, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
        except subprocess.CalledProcessError:
 | 
			
		||||
 | 
			
		||||
            # Exception message window variables
 | 
			
		||||
            iw: str = r"/usr/share/icons/lx-icons/64/error.png"
 | 
			
		||||
            ii: str = down_not_ok_image
 | 
			
		||||
            wt: str = _("Download error")
 | 
			
		||||
            msg_t: str = _("Download failed! No internet connection!")
 | 
			
		||||
            LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
            LxTools.msg_window(img_w2, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Tunnel:
 | 
			
		||||
@@ -407,11 +400,16 @@ class Tunnel:
 | 
			
		||||
        return wg_s
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    def export() -> None:
 | 
			
		||||
    def export(img_w: str = None, img_i: str = None, img_w2: str = None, img_i2: str = None) -> None:
 | 
			
		||||
        """
 | 
			
		||||
        This will export the tunnels.
 | 
			
		||||
        A zipfile with the current date and time is created
 | 
			
		||||
        in the user's home directory with the correct right
 | 
			
		||||
        Args:
 | 
			
		||||
            img_w: Image for TK window which is displayed to the left of the text
 | 
			
		||||
            img_i: Image for Task Icon
 | 
			
		||||
            img_w2: Image for TK window which is displayed to the left of the text
 | 
			
		||||
            img_i2: Image for Task Icon
 | 
			
		||||
        """
 | 
			
		||||
        now_time: datetime = datetime.now()
 | 
			
		||||
        now_datetime: str = now_time.strftime("wg-exp-%m-%d-%Y-%H:%M")
 | 
			
		||||
@@ -427,30 +425,21 @@ class Tunnel:
 | 
			
		||||
                with zipfile.ZipFile(f"{wg_tar}.zip", "r") as zf:
 | 
			
		||||
                    if len(zf.namelist()) != 0:
 | 
			
		||||
 | 
			
		||||
                        # Message window variables
 | 
			
		||||
                        iw: str = r"/usr/share/icons/lx-icons/64/info.png"
 | 
			
		||||
                        ii: str = r"/usr/share/icons/lx-icons/48/wg_vpn.png"
 | 
			
		||||
                        wt: str = _("Export Successful")
 | 
			
		||||
                        msg_t: str = _("Your zip file is in home directory")
 | 
			
		||||
                        LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                        LxTools.msg_window(img_w, img_i, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
                    else:
 | 
			
		||||
 | 
			
		||||
                        # Error message window variables
 | 
			
		||||
                        iw: str = r"/usr/share/icons/lx-icons/64/error.png"
 | 
			
		||||
                        ii: str = r"/usr/share/icons/lx-icons/48/wg_msg.png"
 | 
			
		||||
                        wt: str = _("Export error")
 | 
			
		||||
                        msg_t: str = _("Export failed! Please try again")
 | 
			
		||||
                        LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                        LxTools.msg_window(img_w2, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
            else:
 | 
			
		||||
 | 
			
		||||
                # Message window variables
 | 
			
		||||
                iw: str = r"/usr/share/icons/lx-icons/64/info.png"
 | 
			
		||||
                ii: str = r"/usr/share/icons/lx-icons/48/wg_msg.png"
 | 
			
		||||
                wt: str = _("Select tunnel")
 | 
			
		||||
                msg_t: str = _("Please first import tunnel")
 | 
			
		||||
                LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                LxTools.msg_window(img_w, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
        except TypeError:
 | 
			
		||||
            pass
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										72
									
								
								wirepy.py
									
									
									
									
									
								
							
							
						
						
									
										72
									
								
								wirepy.py
									
									
									
									
									
								
							@@ -32,6 +32,11 @@ VERSION: str = "v. 2.04.1725"
 | 
			
		||||
 | 
			
		||||
res = GiteaUpdate.api_down("https://git.ilunix.de/api/v1/repos/punix/Wire-Py/releases", VERSION, set_file)
 | 
			
		||||
 | 
			
		||||
img_w: str = r"/usr/share/icons/lx-icons/64/info.png"
 | 
			
		||||
img_i: str = r"/usr/share/icons/lx-icons/48/wg_vpn.png"
 | 
			
		||||
img_w2: str = r"/usr/share/icons/lx-icons/64/error.png"
 | 
			
		||||
img_i2: str = r"/usr/share/icons/lx-icons/48/wg_msg.png"
 | 
			
		||||
 | 
			
		||||
# Translate
 | 
			
		||||
APP = "wirepy"
 | 
			
		||||
LOCALE_DIR = "/usr/share/locale/"
 | 
			
		||||
@@ -100,8 +105,6 @@ class FrameWidgets(ttk.Frame):
 | 
			
		||||
        self.tr_pic = tk.PhotoImage(file=r"/usr/share/icons/lx-icons/48/wg_trash.png")
 | 
			
		||||
        self.exp_pic = tk.PhotoImage(file=r"/usr/share/icons/lx-icons/48/wg_export.png")
 | 
			
		||||
        self.warning_pic = tk.PhotoImage(file=r"/usr/share/icons/lx-icons/64/error.png")
 | 
			
		||||
        self.wg_vpn_start = tk.PhotoImage(file=r"/usr/share/icons/lx-icons/48/wg_vpn-start.png")
 | 
			
		||||
        self.wg_vpn_stop = tk.PhotoImage(file=r"/usr/share/icons/lx-icons/48/wg_vpn-stop.png")
 | 
			
		||||
 | 
			
		||||
        def update():
 | 
			
		||||
            """
 | 
			
		||||
@@ -169,9 +172,6 @@ class FrameWidgets(ttk.Frame):
 | 
			
		||||
            def link_btn():
 | 
			
		||||
                webbrowser.open("https://git.ilunix.de/punix/Wire-Py")
 | 
			
		||||
 | 
			
		||||
            # img_w, img_i, w_title, w_txt , txt2, com hand over
 | 
			
		||||
            iw = r"/usr/share/icons/lx-icons/48/wg_vpn.png"
 | 
			
		||||
            ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
 | 
			
		||||
            wt = _("Info")
 | 
			
		||||
            msg_t = _("Wire-Py a simple Wireguard Gui for Linux systems.\n\n"
 | 
			
		||||
                    "Wire-Py is open source software written in Python.\n\n"
 | 
			
		||||
@@ -180,7 +180,7 @@ class FrameWidgets(ttk.Frame):
 | 
			
		||||
            txt2 = _("Go to Wire-Py git")
 | 
			
		||||
            com = link_btn
 | 
			
		||||
 | 
			
		||||
            LxTools.msg_window(iw, ii, wt, msg_t, txt2, com)
 | 
			
		||||
            LxTools.msg_window(img_i, img_i, wt, msg_t, txt2, com)
 | 
			
		||||
 | 
			
		||||
        # Frame for Menu
 | 
			
		||||
        self.menu_frame = ttk.Frame(self)
 | 
			
		||||
@@ -254,9 +254,7 @@ class FrameWidgets(ttk.Frame):
 | 
			
		||||
            self.update_btn.configure(menu=self.download, style="Toolbutton")
 | 
			
		||||
            self.download.add_command(
 | 
			
		||||
                label=_("Download"),
 | 
			
		||||
                command=lambda: GiteaUpdate.download(f"https://git.ilunix.de/punix/Wire-Py/archive/{res}.zip",
 | 
			
		||||
                                                     r"/usr/share/icons/lx-icons/48/wg_vpn.png",
 | 
			
		||||
                                                     r"/usr/share/icons/lx-icons/48/wg_msg.png", res))
 | 
			
		||||
                command=lambda: GiteaUpdate.download(f"https://git.ilunix.de/punix/Wire-Py/archive/{res}.zip", res, img_w, img_i, img_w2, img_i2))
 | 
			
		||||
 | 
			
		||||
        # Show active Tunnel
 | 
			
		||||
        self.a = Tunnel.active()
 | 
			
		||||
@@ -422,21 +420,15 @@ class FrameWidgets(ttk.Frame):
 | 
			
		||||
 | 
			
		||||
                if self.l_box.size() != 0:
 | 
			
		||||
 | 
			
		||||
                    # img_w, img_i, w_title, w_txt hand over
 | 
			
		||||
                    iw = r"/usr/share/icons/lx-icons/64/info.png"
 | 
			
		||||
                    ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
 | 
			
		||||
                    wt = _("Select tunnel")
 | 
			
		||||
                    msg_t = _("Please select a tunnel from the list")
 | 
			
		||||
                    LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                    LxTools.msg_window(img_w, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
                else:
 | 
			
		||||
 | 
			
		||||
                    # img_w, img_i, w_title, w_txt hand over
 | 
			
		||||
                    iw = r"/usr/share/icons/lx-icons/64/info.png"
 | 
			
		||||
                    ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
 | 
			
		||||
                    wt = _("Select tunnel")
 | 
			
		||||
                    msg_t = _("Please first import tunnel")
 | 
			
		||||
                    LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                    LxTools.msg_window(img_w, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
        # Button Trash
 | 
			
		||||
        self.btn_tr = ttk.Button(self.lb_frame_btn_lbox, image=self.tr_pic, command=delete, padding=0,
 | 
			
		||||
@@ -449,7 +441,7 @@ class FrameWidgets(ttk.Frame):
 | 
			
		||||
            Tooltip(self.btn_tr, _("Click to delete a Wireguard Tunnel\nSelect from the list!"), tips)
 | 
			
		||||
 | 
			
		||||
        # Button Export
 | 
			
		||||
        self.btn_exp = ttk.Button(self.lb_frame_btn_lbox, image=self.exp_pic, command=Tunnel.export, padding=0)
 | 
			
		||||
        self.btn_exp = ttk.Button(self.lb_frame_btn_lbox, image=self.exp_pic, command=lambda: Tunnel.export(img_w, img_i, img_w2, img_i2), padding=0)
 | 
			
		||||
        self.btn_exp.grid(column=0, row=3, padx=15, pady=8)
 | 
			
		||||
 | 
			
		||||
        if self.l_box.size() == 0:
 | 
			
		||||
@@ -474,30 +466,21 @@ class FrameWidgets(ttk.Frame):
 | 
			
		||||
 | 
			
		||||
            if len(self.lb_rename.get()) > 12:
 | 
			
		||||
 | 
			
		||||
                # img_w, img_i, w_title, w_txt hand over
 | 
			
		||||
                iw = r"/usr/share/icons/lx-icons/64/info.png"
 | 
			
		||||
                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")
 | 
			
		||||
                LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                LxTools.msg_window(img_w, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
            elif len(self.lb_rename.get()) == 0:
 | 
			
		||||
 | 
			
		||||
                # img_w, img_i, w_title, w_txt hand over
 | 
			
		||||
                iw = r"/usr/share/icons/lx-icons/64/info.png"
 | 
			
		||||
                ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
 | 
			
		||||
                wt = _("Renaming not possible")
 | 
			
		||||
                msg_t = _("At least one character must be entered")
 | 
			
		||||
                LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                LxTools.msg_window(img_w, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
            elif any(ch in special_characters for ch in self.lb_rename.get()):
 | 
			
		||||
 | 
			
		||||
                # img_w, img_i, w_title, w_txt hand over
 | 
			
		||||
                iw = r"/usr/share/icons/lx-icons/64/info.png"
 | 
			
		||||
                ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
 | 
			
		||||
                wt = _("Renaming not possible")
 | 
			
		||||
                msg_t = _("No valid sign. These must not be used.\nBlank, Slash, Backslash and { }\n")
 | 
			
		||||
                LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                LxTools.msg_window(img_w, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
            else:
 | 
			
		||||
 | 
			
		||||
@@ -532,12 +515,9 @@ class FrameWidgets(ttk.Frame):
 | 
			
		||||
 | 
			
		||||
                except IndexError:
 | 
			
		||||
 | 
			
		||||
                    # img_w, img_i, w_title, w_txt hand over
 | 
			
		||||
                    iw = r"/usr/share/icons/lx-icons/64/info.png"
 | 
			
		||||
                    ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
 | 
			
		||||
                    wt = _("Renaming not possible")
 | 
			
		||||
                    msg_t = _("Please select a tunnel from the list")
 | 
			
		||||
                    LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                    LxTools.msg_window(img_w, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
        # Button Rename
 | 
			
		||||
        self.btn_rename = ttk.Button(self.lb_frame4, text=_("Rename"), state="disable", command=tl_rename, padding=4,
 | 
			
		||||
@@ -605,12 +585,9 @@ class FrameWidgets(ttk.Frame):
 | 
			
		||||
                            p_key = readfile.readlines()
 | 
			
		||||
                            if pre_key in p_key or f"{pre_key}\n" in p_key:
 | 
			
		||||
 | 
			
		||||
                                # img_w, img_i, w_title, w_txt hand over
 | 
			
		||||
                                iw = r"/usr/share/icons/lx-icons/64/error.png"
 | 
			
		||||
                                ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
 | 
			
		||||
                                wt = _("Import Error")
 | 
			
		||||
                                msg_t = _("Tunnel already available!\nPlease use another file for import")
 | 
			
		||||
                                LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                                LxTools.msg_window(img_w2, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
                            else:
 | 
			
		||||
 | 
			
		||||
@@ -681,12 +658,9 @@ class FrameWidgets(ttk.Frame):
 | 
			
		||||
                pass
 | 
			
		||||
            else:
 | 
			
		||||
 | 
			
		||||
                # img_w, img_i, w_title, w_txt hand over
 | 
			
		||||
                iw = r"/usr/share/icons/lx-icons/64/error.png"
 | 
			
		||||
                ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
 | 
			
		||||
                wt = _("Import Error")
 | 
			
		||||
                msg_t = _("Oh... no valid Wireguard File!\nPlease select a valid Wireguard File")
 | 
			
		||||
                LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                LxTools.msg_window(img_w2, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
        except EOFError as e:
 | 
			
		||||
            print(e)
 | 
			
		||||
@@ -741,7 +715,7 @@ class FrameWidgets(ttk.Frame):
 | 
			
		||||
            lines4 = set_f4.readlines()
 | 
			
		||||
 | 
			
		||||
        if lines4[7] != "off\n":
 | 
			
		||||
            print(lines4[7])
 | 
			
		||||
            print(f"{lines4[7]} starts automatically when the system starts.")
 | 
			
		||||
            self.selected_option.set(1)
 | 
			
		||||
            self.autoconnect_var.set("")
 | 
			
		||||
            self.auto_con = lines4[7]
 | 
			
		||||
@@ -749,7 +723,7 @@ class FrameWidgets(ttk.Frame):
 | 
			
		||||
        else:
 | 
			
		||||
            self.selected_option.set(0)
 | 
			
		||||
            self.auto_con = _("no Autoconnect")
 | 
			
		||||
 | 
			
		||||
            print("Autostart disabled.")
 | 
			
		||||
        self.autoconnect_var.set("")
 | 
			
		||||
        self.autoconnect_var = tk.StringVar()
 | 
			
		||||
        self.autoconnect_var.set(self.auto_con)
 | 
			
		||||
@@ -887,21 +861,15 @@ class FrameWidgets(ttk.Frame):
 | 
			
		||||
 | 
			
		||||
            if self.l_box.size() != 0:
 | 
			
		||||
 | 
			
		||||
                # img_w, img_i, w_title, w_txt hand over
 | 
			
		||||
                iw = r"/usr/share/icons/lx-icons/64/info.png"
 | 
			
		||||
                ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
 | 
			
		||||
                wt = _("Select tunnel")
 | 
			
		||||
                msg_t = _("Please select a tunnel from the list")
 | 
			
		||||
                LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                LxTools.msg_window(img_w, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
            else:
 | 
			
		||||
 | 
			
		||||
                # img_w, img_i, w_title, w_txt hand over
 | 
			
		||||
                iw = r"/usr/share/icons/lx-icons/64/info.png"
 | 
			
		||||
                ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
 | 
			
		||||
                wt = _("Select tunnel")
 | 
			
		||||
                msg_t = _("Please first import tunnel")
 | 
			
		||||
                LxTools.msg_window(iw, ii, wt, msg_t)
 | 
			
		||||
                LxTools.msg_window(img_w, img_i2, wt, msg_t)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user