|
|
|
@ -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
|