Compare commits

...

4 Commits

Author SHA1 Message Date
KeksNino f30cc5da5e fix typo 2025-11-15 00:20:41 +01:00
KeksNino 004c7ad416 add build_info.json
to fix updater when running from source
2025-11-15 00:19:50 +01:00
Vxrtrauter 65f7c04936 refactor: clean up unused imports and improve code organization 2025-11-15 00:16:47 +01:00
KeksNino 9d0d5332bf fixed updater 2025-10-31 13:45:30 +01:00
4 changed files with 26 additions and 15 deletions
+3
View File
@@ -0,0 +1,3 @@
{
"Version": "dev"
}
+10 -4
View File
@@ -40,13 +40,10 @@ from core.network.aria2_integration import dlprogress
def download_update(latest_version): def download_update(latest_version):
old_filename = f"SoftwareManager-dev-{state.version.replace('-dev', '')}-windows.exe"
new_filename = f"SoftwareManager-dev-{latest_version.replace('-dev', '')}-windows.exe" new_filename = f"SoftwareManager-dev-{latest_version.replace('-dev', '')}-windows.exe"
url = f"https://github.com/KeksPirates/SoftwareManager/releases/latest/download/SoftwareManager-dev-{latest_version.replace('-dev', '')}-windows.exe" url = f"https://github.com/KeksPirates/SoftwareManager/releases/latest/download/SoftwareManager-dev-{latest_version.replace('-dev', '')}-windows.exe"
print("Downloading update...") print("Downloading update...")
if os.path.exists(old_filename):
os.remove(old_filename)
response = r.get(url, allow_redirects=True) response = r.get(url, allow_redirects=True)
with open(new_filename, "wb") as f: with open(new_filename, "wb") as f:
f.write(response.content) f.write(response.content)
@@ -54,6 +51,14 @@ def download_update(latest_version):
raise FileNotFoundError("Executable not found") raise FileNotFoundError("Executable not found")
subprocess.Popen([new_filename], shell=True) subprocess.Popen([new_filename], shell=True)
time.sleep(0.5) time.sleep(0.5)
msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setWindowTitle("New Version")
msg.setText("New version installed.")
msg.setInformativeText("Please remove the old exe.")
msg.setStandardButtons(QMessageBox.Ok)
sys.exit(0) sys.exit(0)
@@ -71,6 +76,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
if state.ignore_updates is False: if state.ignore_updates is False:
if platform.system() == "Windows": if platform.system() == "Windows":
result = check_for_updates() result = check_for_updates()
if result != (None, None):
assets, latest_version = result assets, latest_version = result
if assets: if assets:
@@ -78,7 +84,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
msg.setIcon(QMessageBox.Information) msg.setIcon(QMessageBox.Information)
msg.setWindowTitle("Update Available") msg.setWindowTitle("Update Available")
msg.setText("A new version is available.") msg.setText("A new version is available.")
msg.setInformativeText("Please visit the GitHub releases page to download the latest version.") msg.setInformativeText("Press Ok to download the update.")
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Ignore) msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Ignore)
response = msg.exec_() response = msg.exec_()
+1 -1
View File
@@ -12,7 +12,7 @@ class AppState(QObject):
self.post_urls: List[str] = [] self.post_urls: List[str] = []
self.post_author: List[str] = [] self.post_author: List[str] = []
self.downloads: List[str] = [] self.downloads: List[str] = []
self.version: str self.version: str = "dev"
self._image_path: str = "" self._image_path: str = ""
self.ignore_updates: bool = False self.ignore_updates: bool = False
self.debug: bool = False self.debug: bool = False
+2
View File
@@ -30,6 +30,8 @@ def check_for_updates():
for asset in assets: for asset in assets:
print(f" - {asset['name']}: {asset['browser_download_url']}") print(f" - {asset['name']}: {asset['browser_download_url']}")
return assets, latest_version return assets, latest_version
else:
return None, None
else: else:
if state.debug: if state.debug:
print("Already up-to-date.") print("Already up-to-date.")