Compare commits

..

19 Commits

Author SHA1 Message Date
62e8afebb8 aspect ratio calc function 2024-06-24 22:34:51 -04:00
e654611bf3 added devmode status message 2024-06-21 22:53:08 -04:00
6bf72336d0 Telegram return API result always 2024-06-18 15:24:45 -04:00
fd6be690da modularization and added functionality to download/update post scheduler 2024-06-08 18:27:56 -04:00
a3d89a9892 icon 2024-05-24 01:22:20 -04:00
a5bc6225b6 added openerrorlog and giteapage as shared goto 2024-05-22 23:51:48 -04:00
4ac3c76641 fixed tooltips 2024-05-22 23:42:06 -04:00
96a8fb9566 error log message updates 2024-05-22 23:37:32 -04:00
cf56ae8136 formatting and cleanup 2024-05-18 00:44:13 -04:00
738e1af443 merged modules 2024-05-17 23:36:39 -04:00
f71def4542 added chrome goto 2024-05-17 23:32:09 -04:00
20c2f44b0c added sample function call 2024-05-17 22:31:35 -04:00
997ee862ed bug fix for msgbox confirm function 2024-05-17 20:25:45 -04:00
b378de8106 function add and expansion 2024-05-17 19:36:18 -04:00
ed307493b8 renamed lib 2024-05-17 18:40:09 -04:00
2860e4868f formatting and cleanup 2024-05-16 14:46:11 -04:00
0e02ae24bd small bug fixes and improvements 2024-05-09 21:48:29 -04:00
b19482e10d readme 2024-05-09 15:37:36 -04:00
d7d3ce039f formatting, added reusable lib for update checks 2024-05-09 15:36:35 -04:00
12 changed files with 416 additions and 168 deletions

View File

@@ -117,7 +117,7 @@ SendTelegramMessage(token, chatID, text := "", ParseMode := "MarkdownV2")
json_resp := whr.ResponseText json_resp := whr.ResponseText
whr := ; free COM object whr := ; free COM object
; Msgbox % "json_resp: " json_resp ; Msgbox % "json_resp: " json_resp
if(InStr(json_resp, "error_code")) ; if(InStr(json_resp, "error_code"))
Return json_resp Return json_resp
} }

BIN
Assets/Icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
Assets/Icon.xcf Normal file

Binary file not shown.

BIN
Assets/Share.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -128,6 +128,7 @@ DownloadLatestChromium(){
IfMsgBox OK, { IfMsgBox OK, {
} Else IfMsgBox Cancel, { } Else IfMsgBox Cancel, {
ToolTip
return return
} }
@@ -153,6 +154,7 @@ DownloadLatestChromium(){
Process, Close, chromedriver.exe Process, Close, chromedriver.exe
sleep, 5000 ; wait 5 seconds before checking again sleep, 5000 ; wait 5 seconds before checking again
continue
} }
else, else,
break break
@@ -309,13 +311,16 @@ DownloadLatestChromium(){
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
MsgBox 0x40,, %Message% MsgBox 0x40,, %Message%
ChromeFilepath := ; clear out chromefilepath variable in case the path changed
ToolTip ToolTip
return return
} }
/*
*/
CheckForChromeUpdates(ChromeFilepath := ""){
CheckForChromeUpdates(ChromeFilepath := ""){
if(ChromeFilepath = "") if(ChromeFilepath = "")
ChromeFilepath := GetInstalledChromeFilepath() ChromeFilepath := GetInstalledChromeFilepath()
@@ -329,12 +334,11 @@ DownloadLatestChromium(){
else, Return 0 else, Return 0
} }
GetInstalledChromeFilepath(){ GetInstalledChromeFilepath(){
; ChromeFilepath is global variable ; ChromeFilepath is global variable
if(ChromeFilepath = ""){ if(ChromeFilepath = ""){
ChromePortableFilepath = %A_ScriptDir%\Lib\chrome-win64\chrome.exe ChromePortableFilepath = %A_ScriptDir%\Lib\chrome-win64\chrome.exe
@@ -351,22 +355,14 @@ DownloadLatestChromium(){
SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,DiscordErrorLogging") SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,DiscordErrorLogging")
} }
else { else {
MsgBox 0x10, Chromium Portable not Found, Chromium Portable not found. `nPlease make sure it's located at one of the following paths and then try again.`n`n%ChromePortableFilepath% `nOR`n%ChromePortableFilepath2% MsgBox 0x10, Chrome Not Found, Chrome for Testing not found.`nIf this is your first time running on this computer, please click the "Chrome Up-To-Date" button to download the latest chrome binaries.
; Leave this in for now, but i don't think we will be going to using the system Chrome in the future.
; if(FileExist("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"))
; ChromeFilepath = C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
; if(FileExist("C:\Program Files\Google\Chrome\Application\chrome.exe"))
; ChromeFilepath = C:\Program Files\Google\Chrome\Application\chrome.exe
} }
} }
ToolTip ToolTip
} }
GetInstalledChromeVersion(){ GetInstalledChromeVersion(){
if(ChromeFilepath = ""){ if(ChromeFilepath = ""){
GetInstalledChromeFilepath() GetInstalledChromeFilepath()
@@ -379,10 +375,10 @@ DownloadLatestChromium(){
InstalledChromeVersion := StrReplace(InstalledChromeVersion, "`r") ; replace any newline characters that powershell returns InstalledChromeVersion := StrReplace(InstalledChromeVersion, "`r") ; replace any newline characters that powershell returns
return InstalledChromeVersion return InstalledChromeVersion
} }
GetLatestChromeStableVersion(){ GetLatestChromeStableVersion(){
; https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints ; https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints
json_str := urldownloadtovar("https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json") json_str := urldownloadtovar("https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json")
@@ -399,10 +395,10 @@ DownloadLatestChromium(){
} }
return ChromeStableLatestVersion return ChromeStableLatestVersion
} }
GetDownloadURLOfChromeAndDriver(InstalledChromeVersion){ GetDownloadURLOfChromeAndDriver(InstalledChromeVersion){
; Will return the download URL of Chrome for Testing and Chrome Driver, seperated by a || ; Will return the download URL of Chrome for Testing and Chrome Driver, seperated by a ||
; https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints ; https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints
@@ -449,4 +445,4 @@ DownloadLatestChromium(){
URLS = %chromeDLURL64%||%chromedriverDLURL64% URLS = %chromeDLURL64%||%chromedriverDLURL64%
return URLS return URLS
} }

View File

@@ -137,6 +137,10 @@ CheckDirExistAndCreate(Path){
; -------------------------------/CheckDirExistAndCreate------------------------------- ; -------------------------------/CheckDirExistAndCreate-------------------------------
; Script Updates
; ------------------------------------------------
CheckIfUpdateAvailable(Filepath, CurrentVersion){ CheckIfUpdateAvailable(Filepath, CurrentVersion){
FileRead, ScriptUpdateContents, %Filepath% FileRead, ScriptUpdateContents, %Filepath%
@@ -601,10 +605,53 @@ GetDateOrdinalSuffix(D) {
} }
; Calculate the aspect ratio of a video/image using the width + height
getAspectRatio(width, height) {
gcd := gcdFunc(width, height)
return round(width/gcd) ":" round(height/gcd)
}
; The gcdFunc() is a helper function that calculates the GCD (greatest common divisor) of two numbers using the Euclidean algorithm.
; Used for calculating aspect ratio of Videos
gcdFunc(a, b) {
while b
t := b, b := Mod(a, b), a := t
return a
}
; OnMsgbox - Custom Msgbox Screens ; OnMsgbox - Custom Msgbox Screens
;------------------------------------------------ ;------------------------------------------------
ConfirmBeforeSubmitMsgboxFunc(){
/*
; Snippet to for check:
if (ConfirmBeforeSubmit && ConfirmBeforeSubmitMsgboxFunc() != true) {
Message = User Selected STOP button when asked for confirmation. Cancelling Rest of Site Upload.
SaveOrPostProgress(Message:=Message, PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
return
}
*/
OnMessage(0x44, "OnMsgBoxUserConfirmation")
MsgBox 0x21, User Confirmation, Please check that all data was input correctly and fix any mistakes and then click PROCEED to finalize the Upload.`n`nClick STOP to cancel the rest of this Upload and move on to the next website.
OnMessage(0x44, "")
IfMsgBox OK, {
return true
} Else IfMsgBox Cancel, {
Message = User Selected STOP button when asked for confirmation. Cancelling Rest of Site Upload.
Return %Message%
}
}
OnMsgBoxUpdateAvailable() { OnMsgBoxUpdateAvailable() {
DetectHiddenWindows, On DetectHiddenWindows, On
Process, Exist Process, Exist

View File

@@ -1,8 +1,7 @@
; GITEA Functions ; GITEA Functions
;------------------------------------------------ ;------------------------------------------------
CheckForUpdates(GitReleasesAPIURL){ CheckForUpdates(GitReleasesAPIURL, CurrentVersionNumber := 0){
; msgbox, checking for updates Message = Checking For Updates at %GitReleasesAPIURL%
Message = Checking For Updates
SaveOrPostProgress(Message,PostType:="ErrorLoggingTextFile") SaveOrPostProgress(Message,PostType:="ErrorLoggingTextFile")
data := URLDownloadToVar(GitReleasesAPIURL) data := URLDownloadToVar(GitReleasesAPIURL)
@@ -15,25 +14,15 @@ CheckForUpdates(GitReleasesAPIURL){
Return Return
} }
UpdateVersionNumber := parsed.1.name LatestReleaseVersionNumber := parsed.1.name
; Message = UpdateVersionNumber: %UpdateVersionNumber% if(CurrentVersionNumber >= LatestReleaseVersionNumber)
; DevModeMsgBox(Message) UpdateAvailable := 0
else,
if(ScriptVersion = UpdateVersionNumber OR ScriptVersion > UpdateVersionNumber){
ToolTip
return 0
}
else, {
UpdateAvailable := 1 UpdateAvailable := 1
; msgbox, update found!
Message = Program Update Found ToolTip
SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile") return UpdateAvailable
; IniWrite, 1, %SettingsIniFilepath%, %ScriptSettingsSection%, UpdateAvailable
; ToolTip
return 1
}
} }
@@ -53,19 +42,13 @@ UpdateScript(){
exename := parsed.1.assets.1.name exename := parsed.1.assets.1.name
exeURL := parsed.1.assets.1.browser_download_url 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", "") ExeName := StrReplace(exename, ".exe", "")
UpdateExeName = %exename% %UpdateVersionNumber%.exe UpdateExeName = %exename% %UpdateVersionNumber%.exe
UpdateExeFilepath = %A_ScriptDir%\%UpdateExeName% UpdateExeFilepath = %A_ScriptDir%\%UpdateExeName%
if(ScriptVersion = UpdateVersionNumber){ if(ScriptVersion =< UpdateVersionNumber){
; IniWrite, 0, %SettingsIniFilepath%, %ScriptSettingsSection%, UpdateAvailable ; 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 ; IniRead, UpdateAvailable, %SettingsIniFilepath%, %ScriptSettingsSection%, UpdateAvailable, 0
return return
} }
@@ -81,10 +64,12 @@ UpdateScript(){
} }
Else IfMsgBox No, { Else IfMsgBox No, {
SaveOrPostProgress(Message:="Downloading Update",PostType:="Tooltip,ErrorLoggingTextFile") SaveOrPostProgress(Message:="Downloading Update",PostType:="Tooltip,ErrorLoggingTextFile")
; Msgbox, downloading to: %A_ScriptDir%\%UpdateExeName%
UrlDownloadToFile, %exeURL%, %UpdateExeFilepath% UrlDownloadToFile, %exeURL%, %UpdateExeFilepath%
run, "%UpdateExeFilepath%" "%A_ScriptFullPath%" run, "%UpdateExeFilepath%" "%A_ScriptFullPath%"
ExitApp ExitApp
} }
return return
} }

View File

@@ -21,6 +21,10 @@ GrabLocalsPostURLUsingTitle(PostTitle){
try ElementInnerText := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text try ElementInnerText := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
Try ElementOuterHTML := driver.findelementbyxpath(Xpath).Attribute("outerHTML") ;XPATH-ID & Tag Try ElementOuterHTML := driver.findelementbyxpath(Xpath).Attribute("outerHTML") ;XPATH-ID & Tag
if(Devmode){
Msgbox % "ElementInnerText: " ElementInnerText "`n" "ElementOuterHTML: " ElementOuterHTML
}
if(InStr(ElementInnerText, PostTitle)){ if(InStr(ElementInnerText, PostTitle)){
Message = Found Post Title in Element Number: %A_index% Message = Found Post Title in Element Number: %A_index%

View File

@@ -1,3 +1,5 @@
Function Libraries used in the following Projects: Function Libraries used in the following Projects:
- [Freedomain Social Media Poster](https://freedomain.dev/yuriy/social-media-poster) - [Freedomain Social Media Poster](https://freedomain.dev/yuriy/social-media-poster)
- [Freedomain Video Uploader](https://freedomain.dev/yuriy/video-uploader) - [Freedomain Video Uploader](https://freedomain.dev/yuriy/video-uploader)
- [Freedomain Clips Uploader](https://freedomain.dev/yuriy/clips-uploader)
- [Freedomain Livestream Scheduler](https://freedomain.dev/yuriy/livestream-scheduler)

View File

@@ -721,21 +721,27 @@ Selenium_LoopToSendValueByName(ElementName,NumOfLoops:=1,SleepLength:=1000,Strin
} }
Selenium_LoopToSendValueToXpath(Xpath,NumOfLoops:=1,SleepLength:=1000,StringTextContent:="",ClearElement:=0){ Selenium_LoopToSendValueToXpath(Xpath,NumOfLoops:=1,SleepLength:=1000,StringTextContent:="",ClearElement:=0){
; Msgbox % "StringTextContent: " StringTextContent
; Msgbox % "ClearElement: " ClearElement
loop, %NumOfLoops% { loop, %NumOfLoops% {
; msgbox % ClearElement
if(ClearElement){ if(ClearElement){
Loop, 3 { ; have to do it multiple times to make it trigger properly Loop, 3 { ; sometimes have to do it multiple times to make it trigger properly
Try PreviousValue := driver.findelementbyxpath(Xpath).Attribute("value") ;Xpath Value
try, driver.FindElementByXPath(Xpath).clear() try, driver.FindElementByXPath(Xpath).clear()
sleep, 500
Try CurrentValue := driver.findelementbyxpath(Xpath).Attribute("value") ;Xpath Value
if(PreviousValue != CurrentValue){
break
}
sleep, 1000
; msgbox
} }
} }
try driver.FindElementByXPath(Xpath).sendKeys(StringTextContent) ; Input Text
; ToolTip, Loop attempt: %A_index%
try driver.FindElementByXPath(Xpath).sendKeys(StringTextContent) ; Click on "upload image" button
catch e { catch e {
if(A_index = NumOfLoops){ if(A_index = NumOfLoops){
Return "Failed" Return "Failed"
@@ -790,17 +796,27 @@ Selenium_LoopToClickXpathAndWaitForOpenWindow(Xpath,NumOfLoops:=1,SleepLength:=1
} }
Selenium_LoopToClearXpath(Xpath,NumOfLoops:=1,SleepLength:=1000){ Selenium_LoopToClearXpath(Xpath,NumberOfAttemps:=1,SleepLength:=1000){
loop, %NumOfLoops% { loop, %NumberOfAttemps% {
try driver.FindElementByXPath(Xpath).clear() try driver.FindElementByXPath(Xpath).clear()
catch e { catch e {
if(A_index = NumOfLoops){
Return "Failed" Return "Failed"
} }
sleep, %SleepLength% sleep, %SleepLength%
Continue
try, InerText := driver.findelementbyxpath(Xpath).Attribute("value")
; Msgbox % "InerText: " InerText
if(InerText = "")
return
if(A_index = NumberOfAttemps){
return "Failed after %NumberOfAttemps"
} }
Return
Continue
; Return
} }
} }
@@ -834,12 +850,12 @@ SaveDriverURLOFErrorPage(){ ; save the url of the result page. That way if a tab
GetHTMLValueFromXpathOuterHTML(XPATH, HTMLElementName){ GetHTMLValueFromXpathOuterHTML(XPATH, HTMLElementName){
Try ElementOuterHTML := driver.findelementbyxpath(Xpath).Attribute("outerHTML") ;XPATH-ID & Tag Try ElementOuterHTML := driver.findelementbyxpath(Xpath).Attribute("outerHTML") ;XPATH-ID & Tag
; try Clipboard := driver.findelementbyxpath(Xpath).Attribute("outerHTML") ;XPATH-ID & Tag ; try Clipboard := driver.findelementbyxpath(Xpath).Attribute("outerHTML") ;XPATH-ID & Tag
; Try MsgBox,,Element OuterHTML: `n, % driver.findelementbyxpath(Xpath).Attribute("outerHTML") ;XPATH-ID & Tag ; Try MsgBox,,Element OuterHTML: `n, % driver.findelementbyxpath(Xpath).Attribute("outerHTML") ;XPATH-ID & Tag
; Match string between quotes following the HTMLELEMENTNAME ; Match string between quotes following the HTMLELEMENTNAME
RegexStatement = %HTMLElementName%="([^"]+)" RegexStatement = %HTMLElementName%="([^"]+)"
; regexMatch := RegExMatch(ElementOuterHTML, "value=""([^""]+)""", match) ; regexMatch := RegExMatch(ElementOuterHTML, "value=""([^""]+)""", match)
regexMatch := RegExMatch(ElementOuterHTML, RegexStatement, match) regexMatch := RegExMatch(ElementOuterHTML, RegexStatement, match)

197
Shared-GoTos.ahk Normal file
View File

@@ -0,0 +1,197 @@
; 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")
if(CheckForUpdates(GitReleasesAPIURL, ScriptVersion)){
GuiControl,,UpdateAvailable, 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
}
; 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:
; if chroem doesn't exist, download it
if(ChromeFilepath = ""){
Status := DownloadLatestChromium()
if(Status)
GuiControl,,ChromeUpdateAvailable, Chrome Up-To-Date
Return
}
if(CheckForChromeUpdates = "")
Status := CheckForChromeUpdates(ChromeFilepath)
if(!status){
OnMessage(0x44, "OnMsgBoxConfirmChromiumOverwrite")
MsgBox 0x41, Already Up-to-Date, Yor current Chromium version is already up to date. `nDo you want to download and overwrite it?
OnMessage(0x44, "")
IfMsgBox OK, {
Return
} Else IfMsgBox Cancel, {
ToolTip
}
}
Status := DownloadLatestChromium()
if(Status)
GuiControl,,ChromeUpdateAvailable, Chrome Up-To-Date
Return
/*
*/
PasteClipboardToEditBox:
if(A_GuiControl = "PasteClipboardToSMPBody"){
GuiControl,,PostBody, %Clipboard%
}
if(A_GuiControl = "PasteClipboardToSMPTitle"){
GuiControl,,PostTitle, %Clipboard%
}
if(A_GuiControl = "PasteClipboardToFLSTitle"){
GuiControl,,LivestreamTitle, %Clipboard%
}
if(A_GuiControl = "PasteClipboardToFLSDescription"){
GuiControl,,LivestreamDescription, %Clipboard%
}
if(A_GuiControl = "PasteClipboardToFLSTags"){
GuiControl,,LivestreamTags, %Clipboard%
}
Return
OpenErrorLog:
run, %ErrorLoggingFilePath%
Return
OpenGiteaPage:
if(ScriptAbbreviatedName = "FLS")
URL = https://freedomain.dev/yuriy/livestream-scheduler
if(ScriptAbbreviatedName = "FVU")
URL = https://freedomain.dev/yuriy/video-uploader
if(ScriptAbbreviatedName = "FSMP")
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

1
Update-Functions.ahk Normal file
View File

@@ -0,0 +1 @@
; Code migrated to Shared-GoTo's