Skip to content

Commit 3808562

Browse files
committed
added a messagebox that informs the user when a new update is out
1 parent f3d8b0a commit 3808562

2 files changed

Lines changed: 33 additions & 3 deletions

File tree

helper/updater.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import json
2+
import urllib.request
3+
import webbrowser
4+
5+
from packaging.version import Version
6+
7+
api_url = "https://api.github.com/repos/Ati1707/DazContentInstaller/releases/latest"
8+
9+
def is_new_update_available(local_version):
10+
response = urllib.request.urlopen(api_url).read()
11+
data = json.loads(response)
12+
13+
latest_version = data["tag_name"].strip("v")
14+
15+
if Version(latest_version) > Version(local_version):
16+
return True
17+
return False
18+
19+
def open_release_page():
20+
webbrowser.open("https://github.com/Ati1707/DazContentInstaller/releases", new=0, autoraise=True)

main.pyw

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ from CTkMessagebox import CTkMessagebox
66
from CTkToolTip import CTkToolTip
77
from content_database import get_archives, delete_archive
88
from customtkinter import CTk, filedialog, CTkLabel
9-
from helper import file_operations
9+
from helper import file_operations, updater
1010
from installer import start_installer_gui
1111
from tkinter import BooleanVar
1212
from tkinter.constants import DISABLED, NORMAL
@@ -285,9 +285,11 @@ class MyTabView(ctk.CTkTabview):
285285

286286

287287
class App(CTk):
288-
def __init__(self):
288+
local_version = "v0.8.2"
289+
290+
def __init__(self, local_version=local_version):
289291
super().__init__()
290-
self.title("Daz Content Installer")
292+
self.title(f"Daz Content Installer {local_version}")
291293
self.geometry(center_window_to_display(self, 1100, 650, self._get_window_scaling()))
292294

293295
# Initialize and place MyTabView
@@ -311,6 +313,14 @@ class App(CTk):
311313
if msg.get() == "Open configuration file":
312314
open("config.ini")
313315

316+
if updater.is_new_update_available(local_version):
317+
msg = CTkMessagebox(title="Info",
318+
message="A new update is available! Do you want to open the GitHub repository?",
319+
option_1="Cancel",
320+
option_2="Open",
321+
width=500, height=250)
322+
if msg.get() == "Open":
323+
updater.open_release_page()
314324

315325
# Run the application
316326
app = App()

0 commit comments

Comments
 (0)