From cb42cd069f39664e9d4ae2f99b7ba5ae5e0cf3ce Mon Sep 17 00:00:00 2001 From: Yuriy Date: Thu, 16 May 2024 14:40:53 -0400 Subject: [PATCH] added media manager redirect updates, odysee RTMP settings grab, gui updates, fixed Locals Livestream URL not showing in GUI, fixed Rumble Studio not saving at end --- Freedomain Livestream Scheduler.ahk | 114 +++++++++++++++++---- Modules/Locals-Schedule.ahk | 8 +- Modules/Media-Manager-Update-Redirects.ahk | 103 +++++++++++++++++++ Modules/Odysee-Schedule.ahk | 53 +++++++++- Modules/Rumble-Schedule.ahk | 26 +++-- Modules/Rumble-Set-RTMP.ahk | 46 +++++++-- Version.ini | Bin 176 -> 78 bytes 7 files changed, 304 insertions(+), 46 deletions(-) create mode 100644 Modules/Media-Manager-Update-Redirects.ahk diff --git a/Freedomain Livestream Scheduler.ahk b/Freedomain Livestream Scheduler.ahk index 809ccd1..f30b91f 100644 --- a/Freedomain Livestream Scheduler.ahk +++ b/Freedomain Livestream Scheduler.ahk @@ -53,8 +53,6 @@ CheckIfUpdateInstalled(PassedInArgument) - - ; VARIABLES ;------------------------------------------------ @@ -117,6 +115,7 @@ global GitReleasesAPIURL GitReleasesAPIURL = https://freedomain.dev/api/v1/repos/yuriy/livestream-scheduler/releases + ; Read Info From Files ; ------------------------------------------------ ; For Templates and re-trying a failed previous run @@ -201,7 +200,7 @@ ColumnTwoEditBoxHalfWidth := ColumnTwoEditBoxWidth / 2 ResultButtonWidth := 250 ResultButtonEditWidth := 250 ResultButtonHeights := 30 - +ResultButtonAndEditWidth := ResultButtonWidth + ResultButtonEditWidth + MarginSize ; START OF GUI @@ -247,6 +246,8 @@ Gui, Font, Bold Gui, Font, S10 Gui, Add, Button, x%ColumnOneEditBoxHalfWidth% yp-%marginsize% w%ColumnOneEditBoxHalfWidth% h40 gSaveAsTemplate, Save As Template Gui, Add, Button,gSchedulePost w%ColumnOneEditBoxHalfWidth% gLoadTemplate h40 , Load Template +Gui, Font, Normal +Gui, Add, Button,gSchedulePost w%ColumnOneEditBoxHalfWidth% gLoadPrevious h20 , Load Previous ; Gui, Add, Button, yp+0 x%ColumnOneEditBoxHalfWidth% w%ColumnOneEditBoxHalfWidth%, Text button here @@ -298,10 +299,13 @@ Gui, Font, Bold Gui, Add, Text,y+%MarginSizeDoubled% x%ColumnTwoXPosition%, Platforms Gui, Font, Normal -; Gui, Add, Checkbox,, Dlive +Gui, Font, s6 +Gui, Add, Button, x+%marginsize% yp+5 gUncheckAllPlatforms, Uncheck All +; Gui, Add, Checkbox,, Dlive -Gui, Add, Checkbox,checked vOdysee, Odysee +Gui, Font, s%GuiFontSize% +Gui, Add, Checkbox,x%ColumnTwoXPosition% y+%marginsize% checked vOdysee, Odysee Gui, Add, Checkbox, x+%marginSize% yp+0 checked vLocals, Locals Gui, Add, Checkbox,x%ColumnTwoXPosition% y+%marginsize% checked vRumble, Rumble Gui, Font, S8 @@ -337,7 +341,12 @@ Return - +UncheckAllPlatforms: +GuiControl,,Odysee,0 +GuiControl,,Locals,0 +GuiControl,,Rumble,0 +GuiControl,,InputRumbleCustomRTMP,0 +Return @@ -377,13 +386,20 @@ if(LivestreamThumbnail){ ; copy thumbnail into folder Return - - +LoadPrevious: LoadTemplate: -Message = Loading Template + +if(A_GuiControl = "Load Previous"){ + ErrorLoggingDirectory = %A_ScriptDir%\Lib\ErrorLogging + Message = Loading Previous Post +} +if(A_GuiControl = "Load Template"){ + ErrorLoggingDirectory = %A_ScriptDir%\Lib\Templates-%ScriptAbbreviatedName%\ + Message = Loading Template +} SaveOrPostProgress(Message:=Message,PostType:="Tooltip,DiscordErrorLogging") -ErrorLoggingDirectory = %A_ScriptDir%\Lib\Templates-%ScriptAbbreviatedName%\ +; ErrorLoggingDirectory = %A_ScriptDir%\Lib\Templates-%ScriptAbbreviatedName%\ FileSelectFolder, ErrorLoggingDirectory, %ErrorLoggingDirectory% if(ErrorLevel){ Tooltip @@ -482,13 +498,27 @@ IniRead, LocalsRTMPKey, %PostStatusesFilepath%, Livestream,LocalsRTMPKey, %A_Spa IniRead, LocalsLivestreamURL, %PostStatusesFilepath%, Livestream,LocalsLivestreamURL, %A_Space% IniRead, OdyseeLivestreamURL, %PostStatusesFilepath%, Livestream,OdyseeLivestreamURL, %A_Space% +IniRead, OdyseeRTMPKey, %PostStatusesFilepath%, Livestream,OdyseeRTMPKey, %A_Space% +IniRead, OdyseeRTMPURL, %PostStatusesFilepath%, Livestream,OdyseeRTMPURL, %A_Space% + IniRead, RumbleLivestreamURL, %PostStatusesFilepath%, Livestream,RumbleLivestreamURL, %A_Space% +IniRead, RumbleCustomRTMPs, %PostStatusesFilepath%, Livestream,RumbleCustomRTMPs, %A_Space% Gui, Font, Bold Gui, Font, s%GuiFontSize% -Gui, Add, Button,x%MarginSize% y+10 h%ResultButtonHeights% w%ResultButtonWidth% gResultsGUIAction, Locals RTMP URL + +/*Gui, Add, Button, x%MarginSize% gResultsGUIAction h%ResultButtonHeights% w%ResultButtonEditWidth%,Copy Title +Gui, Add, Button, x+%marginsize% gResultsGUIAction h%ResultButtonHeights% w%ResultButtonEditWidth%,Copy Description + +*/ +Gui, Add, Button,x%MarginSize% y+10 h%ResultButtonHeights% w%ResultButtonWidth% gResultsGUIAction, Copy Title +Gui, Add, Button, x+5 yp+0 h%ResultButtonHeights% w%ResultButtonEditWidth% center gResultsGUIAction, Copy Description + +Gui, add, text, x%MarginSize% y+%marginsize% w%ResultButtonAndEditWidth% 0x10 ;Horizontal Line > Etched Gray + +Gui, Add, Button,x%MarginSize% yp+%marginsizeDoubled% h%ResultButtonHeights% w%ResultButtonWidth% gResultsGUIAction, Locals RTMP URL Gui, Add, Edit, x+5 yp+0 h%ResultButtonHeights% w%ResultButtonEditWidth% vLocalsRTMPURL center, %LocalsRTMPURL% Gui, Add, Button, x%MarginSize% y+10 h%ResultButtonHeights% w%ResultButtonWidth% gResultsGUIAction, Locals RTMP Key @@ -497,23 +527,43 @@ Gui, Add, Edit, x+5 yp+0 h%ResultButtonHeights% w%ResultButtonEditWidth% vLocal Gui, Add, Button, x%MarginSize% y+10 h%ResultButtonHeights% w%ResultButtonWidth% gResultsGUIAction, Locals URL Gui, Add, Edit, x+5 yp+0 h%ResultButtonHeights% w%ResultButtonEditWidth% vLocalsLivestreamURL gGUIUpdateVars center, %LocalsLivestreamURL% +Gui, Add, Button, x%MarginSize% y+10 h%ResultButtonHeights% w%ResultButtonWidth% gResultsGUIAction, Odysee RTMP URL +Gui, Add, Edit, x+5 yp+0 h%ResultButtonHeights% w%ResultButtonEditWidth% vOdyseeRTMPURL gGUIUpdateVars center, %OdyseeRTMPURL% + +Gui, Add, Button, x%MarginSize% y+10 h%ResultButtonHeights% w%ResultButtonWidth% gResultsGUIAction, Odysee RTMP Key +Gui, Add, Edit, x+5 yp+0 h%ResultButtonHeights% w%ResultButtonEditWidth% vOdyseeRTMPKey gGUIUpdateVars center, %OdyseeRTMPKey% + Gui, Add, Button, x%MarginSize% y+10 h%ResultButtonHeights% w%ResultButtonWidth% gResultsGUIAction, Odysee URL Gui, Add, Edit, x+5 yp+0 h%ResultButtonHeights% w%ResultButtonEditWidth% vOdyseeLivestreamURL gGUIUpdateVars center, %OdyseeLivestreamURL% + Gui, Add, Button, x%MarginSize% y+10 h%ResultButtonHeights% w%ResultButtonWidth% gResultsGUIAction, Rumble URL Gui, Add, Edit, x+5 yp+0 h%ResultButtonHeights% w%ResultButtonEditWidth% vRumbleLivestreamURL gGUIUpdateVars center, %RumbleLivestreamURL% -Gui, Add, Button, x%MarginSize% y+%marginsizeDoubled% gResultsGUIAction h%ResultButtonHeights% w%ResultButtonEditWidth%, Open Post Folder -Gui, Add, Button, x+%marginsize% gResultsGUIAction h%ResultButtonHeights% w%ResultButtonEditWidth%,Save Changes -Gui, Add, Button, x%MarginSize% gResultsGUIAction h%ResultButtonHeights% w%ResultButtonEditWidth%,Copy Title -Gui, Add, Button, x+%marginsize% gResultsGUIAction h%ResultButtonHeights% w%ResultButtonEditWidth%,Copy Description -Gui, Add, Button, x%MarginSize% h%ResultButtonHeights% w%ResultButtonEditWidth% gStartSMP, Start SMP +Gui, Font, s10 +Gui, Add, Button, x%MarginSize% y+10 h%ResultButtonHeights% w%ResultButtonWidth% gResultsGUIAction, RTMPs Updated on Rumble +Gui, Add, Edit, x+5 yp+0 h%ResultButtonHeights% w%ResultButtonEditWidth% vRumbleCustomRTMPs gGUIUpdateVars center, %RumbleCustomRTMPs% + + +Gui, add, text, x%MarginSize% y+%marginsizeDoubled% w%ResultButtonAndEditWidth% 0x10 ;Horizontal Line > Etched Gray + +Gui, Font, s%GuiFontSize% +Gui, Add, Button, x%MarginSize% y+%marginsize% gResultsGUIAction h%ResultButtonHeights% w%ResultButtonEditWidth%,Save Changes Gui, Add, Button, x+%marginsize% h%ResultButtonHeights% w%ResultButtonEditWidth% gRetryUpload ,Try Failed Again +Gui, Add, Button, x%MarginSize% h%ResultButtonHeights% w%ResultButtonEditWidth% gStartSMP, Start SMP +; Gui, Font, s10 +Gui, Add, Button, x+%marginsize% gUpdateRedirects h%ResultButtonHeights% w%ResultButtonEditWidth%, Update M.M. Redirects + +Gui, Font, s%GuiFontSize% + + + + +Gui, Add, Button, y%MarginSize% w%ResultButtonEditWidth% Center, Error Log Gui, Font, s8 Gui, Font, Normal -Gui, Add, Button, y%MarginSize% w%ResultButtonEditWidth% Center, Error Log -Gui, Add, Edit, y+5 h300 w%ResultButtonEditWidth%, %ErrorLogVar% +Gui, Add, Edit, y+5 h400 w%ResultButtonEditWidth%, %ErrorLogVar% ; Gui, Add, Button, x%MarginSize% gRetryUpload h%ResultButtonHeights% w%ResultButtonEditWidth%,Try Failed Again @@ -555,6 +605,14 @@ if(SocialMediaPosterFilepath = "" or !FileExist(SocialMediaPosterFilepath)){ /* */ +UpdateRedirects: +gosub, MediaManagerUpdate + + +Return + + + ResultsGUIAction: ; Msgbox % "A_GuiControl: " A_GuiControl @@ -564,12 +622,22 @@ if(A_GuiControl = "Open Post Folder"){ } if(A_GuiControl = "Save Changes"){ + Message = Changes Saved Successfully + SaveOrPostProgress(Message:=Message,PostType:="Tooltip") + IniWrite, %LocalsRTMPURL%, %PostStatusesFilepath%, Livestream,LocalsRTMPURL IniWrite, %LocalsRTMPKey%, %PostStatusesFilepath%, Livestream,LocalsRTMPKey - IniWrite, %LivestreamURL%, %PostStatusesFilepath%, Livestream,LivestreamURL + IniWrite, %LocalsLivestreamURL%, %PostStatusesFilepath%, Livestream,LocalsLivestreamURL IniWrite, %RumbleLivestreamURL%, %PostStatusesFilepath%, Livestream,RumbleLivestreamURL + IniWrite, %RumbleCustomRTMPs%, %PostStatusesFilepath%, Livestream,RumbleCustomRTMPs + IniWrite, %OdyseeLivestreamURL%, %PostStatusesFilepath%, Livestream,OdyseeLivestreamURL + IniWrite, %OdyseeRTMPURL%, %PostStatusesFilepath%, Livestream,OdyseeRTMPURL + IniWrite, %OdyseeRTMPKey%, %PostStatusesFilepath%, Livestream,OdyseeRTMPKey + + sleep, 1000 + Tooltip Return } @@ -592,6 +660,13 @@ if(A_GuiControl = "Rumble URL"){ if(A_GuiControl = "Odysee URL"){ Clipboard := OdyseeLivestreamURL } +if(A_GuiControl = "Odysee RTMP URL "){ + Clipboard := OdyseeRTMPURL +} + +if(A_GuiControl = "Odysee RTMP Key "){ + Clipboard := OdyseeRTMPKey +} if(A_GuiControl = "Locals URL"){ Clipboard := LocalsLivestreamURL @@ -631,6 +706,7 @@ Return #Include %A_ScriptDir%\Modules\Odysee-Grab-URL.ahk #Include %A_ScriptDir%\Modules\Rumble-Schedule.ahk #Include %A_ScriptDir%\Modules\Rumble-Set-RTMP.ahk +#Include %A_ScriptDir%\Modules\Media-Manager-Update-Redirects.ahk diff --git a/Modules/Locals-Schedule.ahk b/Modules/Locals-Schedule.ahk index ded3be1..5e2f51d 100644 --- a/Modules/Locals-Schedule.ahk +++ b/Modules/Locals-Schedule.ahk @@ -152,9 +152,9 @@ if(Status){ SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") } -LivestreamURL := GrabLocalsPostURLUsingTitle(LivestreamTitle) +LocalsLivestreamURL := GrabLocalsPostURLUsingTitle(LivestreamTitle) -if(!InStr(LivestreamURL, "https")){ +if(!InStr(LocalsLivestreamURL, "https")){ ; If url was not grabbed. wait 1 minute, reload page and then try grabbing URL again ; @todo } @@ -168,7 +168,7 @@ if(!InStr(LivestreamURL, "https")){ Message = Navigating to Livestream Page to grab RTMP Settings SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") -try, driver.Get(LivestreamURL) ;Open selected URL +try, driver.Get(LocalsLivestreamURL) ;Open selected URL driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding @@ -219,7 +219,7 @@ LocalsRTMPKey := GetHTMLValueFromXpathOuterHTML(XPATH, "value") IniWrite, %LocalsRTMPURL%, %PostStatusesFilepath%, Livestream,LocalsRTMPURL IniWrite, %LocalsRTMPKey%, %PostStatusesFilepath%, Livestream,LocalsRTMPKey -IniWrite, %LivestreamURL%, %PostStatusesFilepath%, Livestream,LivestreamURL +IniWrite, %LocalsLivestreamURL%, %PostStatusesFilepath%, Livestream,LocalsLivestreamURL ToolTip Return diff --git a/Modules/Media-Manager-Update-Redirects.ahk b/Modules/Media-Manager-Update-Redirects.ahk new file mode 100644 index 0000000..679989d --- /dev/null +++ b/Modules/Media-Manager-Update-Redirects.ahk @@ -0,0 +1,103 @@ + + +MediaManagerUpdate: +; ------------------------------------------------ + + +CurrentSite := "Media Manager" +SaveOrPostProgress(Message:="Scheduling Post in Rumble Studio",PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + + +IniRead, FDRRadioURL, %SettingsIniFilepath%, General, FDRRadioURL, %A_Space% +if(FDRRadioURL = ""){ + Message = FDRRadioURL is blank in Settings.ini. Please add it to the following location: [General]`nFDRRadioURL= + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return +} + + +FDRRadioBaseURL := "https://" . ExtractBaseURL(FDRRadioURL) +FDRRadioURL := FDRRadioBaseURL . "/manage/" + +Status := NavigateFromBaseURLTo(FDRRadioURL) +if(Status) +Return + +CheckForAlerts() + +Message = Checking Login Status +SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + +Try, PageURL := driver.Url +if(InStr(PageURL, "/NotLoggedIn")){ + Message = Logged out. Trying to log back in. + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + + Xpath = (//span[contains(text(),'Login')])[1] + Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000) + + sleep, 1000 + + Try, PageURL := driver.Url + if(InStr(PageURL, "/NotLoggedIn")){ + Message = Failed to log back in automatically. Please login and try again. + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return + } + +} + +; URL for each redirect +LocalsLiveRedirectURL := FDRRadioBaseURL . "/manage/#/Redirects/Modify?redirectID=738" +RumbleLiveRedirectURL := FDRRadioBaseURL . "/manage/#/Redirects/Modify?redirectID=739" +OdyseeLiveRedirectURL := FDRRadioBaseURL . "/manage/#/Redirects/Modify?redirectID=742" + +; read the url's from the status file +IniRead, LocalsLivestreamURL, %PostStatusesFilepath%, Livestream,LocalsLivestreamURL, %A_Space% +IniRead, RumbleLivestreamURL, %PostStatusesFilepath%, Livestream,RumbleLivestreamURL, %A_Space% +IniRead, OdyseeLivestreamURL, %PostStatusesFilepath%, Livestream,OdyseeLivestreamURL, %A_Space% + + + +UpdateMediaManagerRedirect(LocalsLiveRedirectURL, LocalsLivestreamURL) +UpdateMediaManagerRedirect(RumbleLiveRedirectURL, RumbleLivestreamURL) +UpdateMediaManagerRedirect(OdyseeLiveRedirectURL, OdyseeLivestreamURL) + + + + + +UpdateMediaManagerRedirect(MediaManagerRedirectPageURL, RedirectURL){ + try, driver.Get(MediaManagerRedirectPageURL) ;Open selected URL + try, driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding + + Xpath = (//input[@id='destinationURL'])[1] + Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=RedirectURL, ClearElement := 1) + + + if(ConfirmBeforeSubmit){ + 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, { + + } Else IfMsgBox Cancel, { + Message = User Selected STOP button when asked for confirmation. Cancelling Rest of Site Upload. + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return + } + } + + ; Save button + Xpath = (//span[contains(text(),'Save')])[1] + Status := Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000) + if(Status){ + Message = Failed to click Save button + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return + } + + Return "Success" + + } diff --git a/Modules/Odysee-Schedule.ahk b/Modules/Odysee-Schedule.ahk index ccd97bc..d2f6621 100644 --- a/Modules/Odysee-Schedule.ahk +++ b/Modules/Odysee-Schedule.ahk @@ -234,15 +234,66 @@ SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,Disc ; Click Create Button in the confirmation popup Xpath = //span[contains(text(),'Create')] Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=1000) +if(Status){ + Message = Failed to click "Create" button at the bottom of page + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return +} ; Click confirm button in the popup Xpath = //button[@aria-label='Confirm']//span[@class='button__content'] Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=1000) - +if(Status){ + Message = Failed to click "Confirm" button in confirmation popup + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return +} OdyseeLivestreamURL := "https://" . OdyseeChannelURL . OdyseeURLSLUG ; OdyseeURL := "https://" . OdyseeURL IniWrite, %OdyseeLivestreamURL%, %PostStatusesFilepath%, Livestream,OdyseeLivestreamURL +; Grab RTMP Settings +Message = Waiting for Confirmation Screen to grab RTMP Settings + +Xpath = (//span[contains(text(),'View Livestream Settings')])[1] +loop, 60 { + try, InnerText := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text + + if(InnerText = "View Livestream Settings"){ + break + } + sleep, 1000 +} + +; click on the "View livestream Settings" button +Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=1000) + +; Grab the Stream URL and Key +Xpath = (//input[@name='stream-server'])[1] +loop, 5 { + Try OdyseeRTMPURL := driver.findelementbyxpath(Xpath).Attribute("value") ;Xpath Value + + if(OdyseeRTMPURL) + break + else, + sleep, 1000 +} + +Xpath = (//input[@name='livestream-key'])[1] +Try OdyseeRTMPKey := driver.findelementbyxpath(Xpath).Attribute("value") ;Xpath Value + + +if(OdyseeRTMPKey = ""){ + Message = Failed to grab Odysee RTMP Key. Page did not load? + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return +} + +IniWrite, %OdyseeRTMPURL%, %PostStatusesFilepath%, Livestream,OdyseeRTMPURL +IniWrite, %OdyseeRTMPKey%, %PostStatusesFilepath%, Livestream,OdyseeRTMPKey + + + Return \ No newline at end of file diff --git a/Modules/Rumble-Schedule.ahk b/Modules/Rumble-Schedule.ahk index baaddd0..ba1ea57 100644 --- a/Modules/Rumble-Schedule.ahk +++ b/Modules/Rumble-Schedule.ahk @@ -9,9 +9,6 @@ Status := NavigateFromBaseURLTo("https://studio.rumble.com/api/signin") if(Status) Return - -try driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding - CheckForAlerts() Message = Checking Login Status @@ -43,11 +40,14 @@ if(InStr(CurrentURL, "/sso/auth/consent")){ Message = Scheduling new stream and inputting information SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") -; Schedule new stream ; Schedule a stream button Xpath = //div[normalize-space()='Schedule a stream'] Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000) - +if(Status){ + Message = Failed to click "Schedule a Stream" button. Livestream Already exists? + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return +} Xpath = (//h2[normalize-space()='Select a template (optional)']) try ElementInnerText := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text @@ -174,7 +174,8 @@ if(Status){ ; Select each Secondary Platform checkbox ; ------------------------------------------------ -IniRead, RumbleSecondaryPlatformsList, %SettingsIniFilepath%, %ScriptSettingsSection%, RumbleSecondaryPlatforms, %A_Space% +IniRead, RumbleSecondaryPlatformsList, %SettingsIniFilepath%, %ScriptSettingsSection%, RumbleSecondaryPlatformsList, %A_Space% + if(RumbleSecondaryPlatformsList = ""){ ; if variable is empty, get all items in the list and write them to .ini file @@ -186,11 +187,13 @@ if(RumbleSecondaryPlatformsList = ""){ try SecondaryPlatformCheckboxName := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text - RumbleSecondaryPlatformsList .= SecondaryPlatformCheckboxName . "--" - if(SecondaryPlatformCheckboxName = "Add new destination" OR SecondaryPlatformCheckboxName = ""){ Break } + + RumbleSecondaryPlatformsList .= SecondaryPlatformCheckboxName . "--" + + } IniWrite, %RumbleSecondaryPlatformsList%, %SettingsIniFilepath%, %ScriptSettingsSection%, RumbleSecondaryPlatformsList MsgBox 0x40, Rumble Secondary Platforms List Generated, Rumble Secondary Platforms List was genearted and all the available options were added to it.`n`nPlease edit the settings.ini file and remove any platforms you do not need selected from the follwoing KEY:`n`n[%ScriptSettingsSection%]`nRumbleSecondaryPlatformsList= @@ -201,7 +204,7 @@ Loop, 10 { IndexPlusOne := A_index + 1 Xpath = (//div[@class='flex shrink-0 items-center gap-x-4'])[%A_index%] - XpathCheckbox = (//div[@class='relative shrink-0'])[%IndexPlusOne%] + XpathCheckbox = (//div[@class='relative shrink-0'])[%A_index%] try SecondaryPlatformCheckboxName := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text @@ -211,7 +214,7 @@ Loop, 10 { } if(!InStr(RumbleSecondaryPlatformsList,SecondaryPlatformCheckboxName)) - Continue + Continue Status := Selenium_LoopToClickXpath(Xpath:=XpathCheckbox,NumOfLoops:=2,SleepLength:=1000) if(Status){ @@ -241,11 +244,12 @@ if(ConfirmBeforeSubmit){ */ ; click the "next" button to finalize the upload -Xpath = (//button[@class='rounded-full px-6 py-2 bg-primary hover:brightness-[0.92] cursor-pointer'])[1] +Xpath = (//span[normalize-space()='Next'])[1] Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000) if(Status){ Message = Failed to click "Next" to finalize the upload SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return } diff --git a/Modules/Rumble-Set-RTMP.ahk b/Modules/Rumble-Set-RTMP.ahk index 32187fc..4fce5e6 100644 --- a/Modules/Rumble-Set-RTMP.ahk +++ b/Modules/Rumble-Set-RTMP.ahk @@ -3,8 +3,6 @@ RumbleSetRTMP: CurrentSite := "Rumble Studio" -Message = Inputting Custom RTMP Settings into Rumble Studio -SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") Status := NavigateFromBaseURLTo("https://studio.rumble.com/settings/connections") if(Status) @@ -14,17 +12,31 @@ try driver.executeScript("return document.readyState").equals("complete") ; wait CheckForAlerts() +Message = Inputting Custom RTMP Settings into Rumble Studio +SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") IniRead, LocalsRTMPURL, %PostStatusesFilepath%, Livestream,LocalsRTMPURL, %A_Space% IniRead, LocalsRTMPKey, %PostStatusesFilepath%, Livestream,LocalsRTMPKey, %A_Space% +IniRead, OdyseeRTMPKey, %PostStatusesFilepath%, Livestream,OdyseeRTMPKey, %A_Space% +IniRead, OdyseeRTMPURL, %PostStatusesFilepath%, Livestream,OdyseeRTMPURL, %A_Space% + + if(LocalsRTMPURL = ""){ Message = Skipping. No LocalsRTMPURL in Status.ini file SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") Return } +if(OdyseeRTMPURL = ""){ + Message = Skipping. No OdyseeRTMPURL in Status.ini file + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return +} + + + Loop, 10 { ; IndexPlusOne := A_index + 1 @@ -35,12 +47,21 @@ Loop, 10 { try SecondaryPlatformCheckboxName := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text - ; Msgbox % "SecondaryPlatformCheckboxName: " SecondaryPlatformCheckboxName + if(SecondaryPlatformCheckboxName = "LOCALS RTMP USE" OR SecondaryPlatformCheckboxName = "ODYSEE RTMP"){ + + if(SecondaryPlatformCheckboxName = "LOCALS RTMP USE"){ + SiteRTMPURL := LocalsRTMPURL + SiteRTMPKey := LocalsRTMPKey + } + + if(SecondaryPlatformCheckboxName = "ODYSEE RTMP"){ + SiteRTMPURL := OdyseeRTMPURL + SiteRTMPKey := OdyseeRTMPKey + } - if(SecondaryPlatformCheckboxName = "LOCALS RTMP USE"){ Status := Selenium_LoopToClickXpath(Xpath:=XpathCheckbox,NumOfLoops:=2,SleepLength:=1000) if(Status){ - Message = Failed to click into 3 dot menu for -LOCALS RTMP USE- + Message = Failed to click into 3 dot menu for %SecondaryPlatformCheckboxName% SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") Return } @@ -49,7 +70,7 @@ Loop, 10 { Xpath = (//span[normalize-space()='Edit RTMP'])[1] Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000) if(Status){ - Message = Failed to click into 3 dot menu for -LOCALS RTMP USE- + Message = Failed to click into 3 dot menu for %SecondaryPlatformCheckboxName% SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") } @@ -58,17 +79,20 @@ Loop, 10 { XpathRTMP = (//input[@placeholder='Enter the RTMP URL'])[1] XpathStreamkey = (//input[@placeholder='Enter the stream key'])[1] - Status := Selenium_LoopToSendValueToXpath(Xpath:=XpathRTMP,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LocalsRTMPURL,ClearElement:=1) - Status := Selenium_LoopToSendValueToXpath(Xpath:=XpathStreamkey,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LocalsRTMPKey,ClearElement:=1) + Status := Selenium_LoopToSendValueToXpath(Xpath:=XpathRTMP,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=SiteRTMPURL,ClearElement:=1) + Status := Selenium_LoopToSendValueToXpath(Xpath:=XpathStreamkey,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=SiteRTMPKey,ClearElement:=1) ; click save button - Xpath = (//button[@class='rounded-full px-6 py-2 bg-primary/50 pointer-events-none'])[1] + Xpath = (//button[@class='rounded-full block px-6 py-2 bg-primary hover:brightness-[0.92] cursor-pointer'])[1] Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000) if(Status){ - Message = Failed to Click Save Button + Message = Failed to Click Save Button for %SecondaryPlatformCheckboxName% modified RMTP Settings SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") Return } break } -} \ No newline at end of file +} + +RumbleCustomRTMPs := "Success" +IniWrite, %RumbleCustomRTMPs%, %PostStatusesFilepath%, Livestream,RumbleCustomRTMPs diff --git a/Version.ini b/Version.ini index 083c342d3a1a4ff8350e9009731d1a29d07697de..68e95aec117693f60751cb3a69e21dd9f60acb9e 100644 GIT binary patch delta 5 McmdnM=r_R+00q$j-T(jq delta 61 zcmea