diff --git a/Gitea-Functions.ahk b/Gitea-Functions.ahk index c152827..d1eabd5 100644 --- a/Gitea-Functions.ahk +++ b/Gitea-Functions.ahk @@ -1,8 +1,7 @@ ; GITEA Functions ;------------------------------------------------ -CheckForUpdates(GitReleasesAPIURL){ - ; msgbox, checking for updates - Message = Checking For Updates +CheckForUpdates(GitReleasesAPIURL, CurrentVersionNumber := 0){ + Message = Checking For Updates at %GitReleasesAPIURL% SaveOrPostProgress(Message,PostType:="ErrorLoggingTextFile") data := URLDownloadToVar(GitReleasesAPIURL) @@ -15,25 +14,15 @@ CheckForUpdates(GitReleasesAPIURL){ Return } - UpdateVersionNumber := parsed.1.name - - ; Message = UpdateVersionNumber: %UpdateVersionNumber% - ; DevModeMsgBox(Message) + LatestReleaseVersionNumber := parsed.1.name - - if(ScriptVersion = UpdateVersionNumber OR ScriptVersion > UpdateVersionNumber){ - ToolTip - return 0 - } - else, { + if(CurrentVersionNumber >= LatestReleaseVersionNumber) + UpdateAvailable := 0 + else, UpdateAvailable := 1 - ; msgbox, update found! - Message = Program Update Found - SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile") - ; IniWrite, 1, %SettingsIniFilepath%, %ScriptSettingsSection%, UpdateAvailable - ; ToolTip - return 1 -} + + ToolTip + return UpdateAvailable } @@ -53,19 +42,13 @@ UpdateScript(){ exename := parsed.1.assets.1.name exeURL := parsed.1.assets.1.browser_download_url - ; Msgbox % "UpdateVersionNumber: " UpdateVersionNumber - ; msgbox, Version: %Version% - ; Msgbox % "ChangeLog: " ChangeLog - ; Msgbox % "exeURL: " exeURL - ; Msgbox % "exename: " exename - ExeName := StrReplace(exename, ".exe", "") UpdateExeName = %exename% %UpdateVersionNumber%.exe UpdateExeFilepath = %A_ScriptDir%\%UpdateExeName% - if(ScriptVersion = UpdateVersionNumber){ + if(ScriptVersion =< UpdateVersionNumber){ ; IniWrite, 0, %SettingsIniFilepath%, %ScriptSettingsSection%, UpdateAvailable - MsgBox, You are Up-To-Date + MsgBox, You are Up-To-Date, There are no new updates to download. ; IniRead, UpdateAvailable, %SettingsIniFilepath%, %ScriptSettingsSection%, UpdateAvailable, 0 return } @@ -81,10 +64,12 @@ UpdateScript(){ } Else IfMsgBox No, { SaveOrPostProgress(Message:="Downloading Update",PostType:="Tooltip,ErrorLoggingTextFile") - ; Msgbox, downloading to: %A_ScriptDir%\%UpdateExeName% + UrlDownloadToFile, %exeURL%, %UpdateExeFilepath% run, "%UpdateExeFilepath%" "%A_ScriptFullPath%" ExitApp } return } + + diff --git a/Shared-GoTos.ahk b/Shared-GoTos.ahk index c28a143..9ef055a 100644 --- a/Shared-GoTos.ahk +++ b/Shared-GoTos.ahk @@ -1,30 +1,52 @@ ; This #include needs to be at the bottom of the parent script + CheckForUpdates: +UpdateStartTime := A_TickCount ; start time + + ; The GUI buttons must have variable set to vUpdateAvailable and vChromeUpdateAvailable for button to get updated ; The following variables need to be set in the parent script ; GitReleasesAPIURL ; ChromeFilepath -; Message = Checking for Updates -; SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") +Message = Checking for Updates +SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") +if(CheckForUpdates(GitReleasesAPIURL, ScriptVersion)){ + GuiControl,,UpdateAvailable, Update Available! +} -if(CheckForUpdates(GitReleasesAPIURL)){ - GuiControl,,UpdateAvailable, %ScriptAbbreviatedName% Update Available! +; check for Post Scheduler Update +if(ScriptNameAcronym = "FVU"){ + if(CheckForUpdates(PostSchedulerGitReleasesAPIURL, PostSchedulerVersion)){ + GuiControl,,PostSchedulerUpdateAvailable, FPS Update Available! + } } if(CheckForChromeUpdates(ChromeFilepath)){ GuiControl,,ChromeUpdateAvailable, Chrome Update Available! - ; ChromeUpdateAvailable := 1 + ChromeUpdateAvailable := 1 } + +; calculate run time and convert to seconds +TimeToCheckforUpdates := round(((A_TickCount - UpdateStartTime) / 1000), 2) + +Message = Update Check took %TimeToCheckforUpdates% seconds to complete +SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") +; Msgbox % "TimeToCheckforUpdates: " TimeToCheckforUpdates +; Msgbox % "URunTime: " URunTime + ToolTip Return +; UpdatePostScheduler: + +Return UpdateChrome: @@ -92,14 +114,84 @@ Return OpenGiteaPage: if(ScriptAbbreviatedName = "FLS") - URL = https://freedomain.dev/yuriy/livestream-scheduler +URL = https://freedomain.dev/yuriy/livestream-scheduler if(ScriptAbbreviatedName = "FVU") - URL = https://freedomain.dev/yuriy/video-uploader +URL = https://freedomain.dev/yuriy/video-uploader if(ScriptAbbreviatedName = "FSMP") - URL = https://freedomain.dev/yuriy/social-media-poster +URL = https://freedomain.dev/yuriy/social-media-poster run, %URL% Return + + + + +UpdatePostScheduler: +; Close any existing instances of the Post Scheduler + +; Kill any active intances of the Post Scheduler so the .exe file can be overwriten +process, close, Freedomain Post Scheduler.exe + + +; Msgbox % "PostSchedulerGitReleasesAPIURL: " PostSchedulerGitReleasesAPIURL +data := URLDownloadToVar(PostSchedulerGitReleasesAPIURL) + +try parsed := JSON.Load(data) +catch e { + Message = Failed to check for updates. Gitea Releases API returned blank or malformed data. + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + Return +} + +UpdateVersionNumber := parsed.1.name +ChangeLog := parsed.1.body +exename := parsed.1.assets.1.name +exeURL := parsed.1.assets.1.browser_download_url + + + +; Msgbox % "exename: " exename + +; ExeName := StrReplace(exename, ".exe", "") +; UpdateExeName = %exename%.exe +UpdateExeFilepath = %A_ScriptDir%\%ExeName% + +if(PostSchedulerVersion =< UpdateVersionNumber){ + ; IniWrite, 0, %SettingsIniFilepath%, %ScriptSettingsSection%, UpdateAvailable + MsgBox, You are Up-To-Date, There are no new updates to download. + ; IniRead, UpdateAvailable, %SettingsIniFilepath%, %ScriptSettingsSection%, UpdateAvailable, 0 + return +} + +Changelog = %PostSchedulerVersion% --> %UpdateVersionNumber%`n`nChangelog:`n%Changelog% + +OnMessage(0x44, "OnMsgBoxUpdateAvailable") +MsgBox 0x44, Update Available For %exename%, %Changelog% +OnMessage(0x44, "") + +IfMsgBox Yes, { + Return +} +Else IfMsgBox No, { + SaveOrPostProgress(Message:="Downloading Update",PostType:="Tooltip,ErrorLoggingTextFile") + + if(FileExist(UpdateExeFilepath)){ + FileDelete, %UpdateExeFilepath% + if(ErrorLevel){ + Message = Failed to Delete %UpdateExeFilepath%. `nPlease Close the process manually and try the update again. + MsgBox 0x10,, %Message% + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return + } + } + + + UrlDownloadToFile, %exeURL%, %UpdateExeFilepath% + run, "%UpdateExeFilepath%" "%A_ScriptFullPath%" + ToolTip + ; ExitApp +} +return \ No newline at end of file