updater replace Downloadbutton with Lx Tools installer
This commit is contained in:
		
							
								
								
									
										14
									
								
								Changelog
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								Changelog
									
									
									
									
									
								
							@@ -9,7 +9,19 @@ My standard System: Linux Mint 22 Cinnamon
 | 
				
			|||||||
 - Replace Download Button with Lx Tools installer
 | 
					 - Replace Download Button with Lx Tools installer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   ### Added
 | 
					   ### Added
 | 
				
			||||||
23-06-2025
 | 
					02-07-2025
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Complete code for faulty f" string configuration dur addicted and fixed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- updater replace Downloadbutton with Lx Tools installer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- remove logviewer icon 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- add settings.png icon for update button
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   ### Added
 | 
				
			||||||
 | 
					27-06-2025
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 - Header added for more modern desing
 | 
					 - Header added for more modern desing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								lx-icons/16/settings.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lx-icons/16/settings.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 575 B  | 
							
								
								
									
										38
									
								
								wirepy.py
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								wirepy.py
									
									
									
									
									
								
							@@ -6,6 +6,8 @@ import logging
 | 
				
			|||||||
import getpass
 | 
					import getpass
 | 
				
			||||||
import shutil
 | 
					import shutil
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
 | 
					import os
 | 
				
			||||||
 | 
					import subprocess
 | 
				
			||||||
import tkinter as tk
 | 
					import tkinter as tk
 | 
				
			||||||
import webbrowser
 | 
					import webbrowser
 | 
				
			||||||
from functools import partial
 | 
					from functools import partial
 | 
				
			||||||
@@ -192,7 +194,7 @@ class FrameWidgets(ttk.Frame):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        self.version_label = tk.Label(
 | 
					        self.version_label = tk.Label(
 | 
				
			||||||
            self.header_frame,
 | 
					            self.header_frame,
 | 
				
			||||||
            text=f"{AppConfig.VERSION} • {Msg.STR["header_left_bottom"]}",
 | 
					            text=f"{AppConfig.VERSION} • {Msg.STR['header_left_bottom']}",
 | 
				
			||||||
            font=("Helvetica", 9),
 | 
					            font=("Helvetica", 9),
 | 
				
			||||||
            fg="#bdc3c7",
 | 
					            fg="#bdc3c7",
 | 
				
			||||||
            bg="#2c3e50",
 | 
					            bg="#2c3e50",
 | 
				
			||||||
@@ -481,6 +483,15 @@ class FrameWidgets(ttk.Frame):
 | 
				
			|||||||
        else:
 | 
					        else:
 | 
				
			||||||
            self.updates_lb.grid_remove()
 | 
					            self.updates_lb.grid_remove()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def updater(self):
 | 
				
			||||||
 | 
					        """Start the lxtools_installer"""
 | 
				
			||||||
 | 
					        tmp_dir = Path("/tmp/lxtools")
 | 
				
			||||||
 | 
					        Path.mkdir(tmp_dir, exist_ok=True)
 | 
				
			||||||
 | 
					        os.chdir(tmp_dir)
 | 
				
			||||||
 | 
					        result = subprocess.run(["/usr/local/bin/lxtools_installer"], check=False)
 | 
				
			||||||
 | 
					        if result.returncode != 0:
 | 
				
			||||||
 | 
					            MessageDialog("error", result.stderr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Update the labels based on the result
 | 
					    # Update the labels based on the result
 | 
				
			||||||
    def update_ui_for_update(self, res):
 | 
					    def update_ui_for_update(self, res):
 | 
				
			||||||
        """Update UI elements based on an update check result"""
 | 
					        """Update UI elements based on an update check result"""
 | 
				
			||||||
@@ -517,25 +528,20 @@ class FrameWidgets(ttk.Frame):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            self.set_update.set(value=0)
 | 
					            self.set_update.set(value=0)
 | 
				
			||||||
            update_text = f"Update {res} {_('available!')}"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # Clear the label text since we'll show the button instead
 | 
					            # Clear the label text since we'll show the button instead
 | 
				
			||||||
            self.update_label.set("")
 | 
					            self.update_label.set("")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # Create the update button
 | 
					            # Create the update button
 | 
				
			||||||
            self.update_btn = ttk.Menubutton(self.menu_frame, text=update_text)
 | 
					            self.update_btn = ttk.Button(
 | 
				
			||||||
            self.update_btn.grid(column=4, columnspan=3, row=0, padx=0)
 | 
					                self.menu_frame,
 | 
				
			||||||
            Tooltip(
 | 
					                image=self.image_manager.load_image("update"),
 | 
				
			||||||
                self.update_btn, _("Click to download new version"), self.tooltip_state
 | 
					                style="Toolbutton",
 | 
				
			||||||
 | 
					                command=self.updater,
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
 | 
					            self.update_btn.grid(column=5, row=0, padx=0)
 | 
				
			||||||
            self.download = tk.Menu(self, relief="flat")
 | 
					            Tooltip(
 | 
				
			||||||
            self.update_btn.configure(menu=self.download, style="Toolbutton")
 | 
					                self.update_btn, _("Click to install new version"), self.tooltip_state
 | 
				
			||||||
            self.download.add_command(
 | 
					 | 
				
			||||||
                label=_("Download"),
 | 
					 | 
				
			||||||
                command=lambda: GiteaUpdate.download(
 | 
					 | 
				
			||||||
                    f"{AppConfig.DOWNLOAD_URL}/{res}.zip", res
 | 
					 | 
				
			||||||
                ),
 | 
					 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @staticmethod
 | 
					    @staticmethod
 | 
				
			||||||
@@ -723,11 +729,11 @@ class FrameWidgets(ttk.Frame):
 | 
				
			|||||||
            )
 | 
					            )
 | 
				
			||||||
            data_import, key_name = Tunnel.parse_files_to_dictionary(filepath=filepath)
 | 
					            data_import, key_name = Tunnel.parse_files_to_dictionary(filepath=filepath)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if CryptoUtil.find_key(f"{data_import[key_name]["PrivateKey"]}="):
 | 
					            if CryptoUtil.find_key(f"{data_import[key_name]['PrivateKey']}="):
 | 
				
			||||||
                MessageDialog("error", Msg.STR["tl_exist"], title=Msg.STR["imp_err"])
 | 
					                MessageDialog("error", Msg.STR["tl_exist"], title=Msg.STR["imp_err"])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            elif not CryptoUtil.is_valid_base64(
 | 
					            elif not CryptoUtil.is_valid_base64(
 | 
				
			||||||
                f"{data_import[key_name]["PrivateKey"]}="
 | 
					                f"{data_import[key_name]['PrivateKey']}="
 | 
				
			||||||
            ):  # 2. Second check: Is it valid Base64?
 | 
					            ):  # 2. Second check: Is it valid Base64?
 | 
				
			||||||
                MessageDialog(
 | 
					                MessageDialog(
 | 
				
			||||||
                    "error",
 | 
					                    "error",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -59,7 +59,7 @@ class AppConfig:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    # Updates
 | 
					    # Updates
 | 
				
			||||||
    # 1 = 1. Year, 09 = Month of the Year, 2924 = Day and Year of the Year
 | 
					    # 1 = 1. Year, 09 = Month of the Year, 2924 = Day and Year of the Year
 | 
				
			||||||
    VERSION: str = "v. 2.06.2625"
 | 
					    VERSION: str = "v. 2.07.0225"
 | 
				
			||||||
    UPDATE_URL: str = "https://git.ilunix.de/api/v1/repos/punix/Wire-Py/releases"
 | 
					    UPDATE_URL: str = "https://git.ilunix.de/api/v1/repos/punix/Wire-Py/releases"
 | 
				
			||||||
    DOWNLOAD_URL: str = "https://git.ilunix.de/punix/Wire-Py/archive"
 | 
					    DOWNLOAD_URL: str = "https://git.ilunix.de/punix/Wire-Py/archive"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -187,12 +187,12 @@ class Image:
 | 
				
			|||||||
            "icon_export": [
 | 
					            "icon_export": [
 | 
				
			||||||
                "/usr/share/icons/lx-icons/48/wg_export.png",
 | 
					                "/usr/share/icons/lx-icons/48/wg_export.png",
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "icon_log": [
 | 
					 | 
				
			||||||
                "/usr/share/icons/lx-icons/48/log.png",
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            "icon_trash": [
 | 
					            "icon_trash": [
 | 
				
			||||||
                "/usr/share/icons/lx-icons/48/wg_trash.png",
 | 
					                "/usr/share/icons/lx-icons/48/wg_trash.png",
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
 | 
					            "update": [
 | 
				
			||||||
 | 
					                "/usr/share/icons/lx-icons/16/settings.png",
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Get paths to try
 | 
					        # Get paths to try
 | 
				
			||||||
@@ -210,7 +210,7 @@ class Image:
 | 
				
			|||||||
                    self.images[image_key] = photo
 | 
					                    self.images[image_key] = photo
 | 
				
			||||||
                    return photo
 | 
					                    return photo
 | 
				
			||||||
            except tk.TclError as e:
 | 
					            except tk.TclError as e:
 | 
				
			||||||
                # print(f"{LocaleStrings.MSGP["fail_load_image"]}{path}: {e}")
 | 
					                print(f"{LocaleStrings.MSGP['fail_load_image']}{path}: {e}")
 | 
				
			||||||
                continue
 | 
					                continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Return None if no image found
 | 
					        # Return None if no image found
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user