You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
573 lines
20 KiB
Plaintext
573 lines
20 KiB
Plaintext
|
|
RumbleSchedule:
|
|
;------------------------------------------------
|
|
|
|
CurrentSite := "Rumble"
|
|
SaveOrPostProgress(Message:="Scheduling Post in Rumble Studio",PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
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
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
|
|
try CurrentURL := driver.URL
|
|
if(InStr(CurrentURL, "/sso/auth/consent")){
|
|
Message = Rumble Studio Logged out. Trying to log back in.
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
; login button in middle of page
|
|
Xpath = //button[@class='consent-page--button header-user']
|
|
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
|
|
|
sleep, 2000
|
|
try CurrentURL := driver.URL
|
|
if(InStr(CurrentURL, "/sso/auth/consent")){
|
|
Message = Failed to login to Rumble Studio
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
Return
|
|
}
|
|
}
|
|
|
|
|
|
|
|
; Schedule New Stream
|
|
; ------------------------------------------------
|
|
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)
|
|
|
|
|
|
Xpath = (//h2[normalize-space()='Select a template (optional)'])
|
|
try ElementInnerText := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
|
|
if(!ElementInnerText){
|
|
Message = Templates Subwindow did not show up
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
Return
|
|
}
|
|
|
|
|
|
|
|
|
|
loop, 3 {
|
|
Xpath = (//div[@class='flex items-center justify-between gap-x-8 p-4 bg-indigo rounded-xl'])[%A_Index%]
|
|
try, ElementText := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
|
|
|
|
; use the template with "Freedomain Livestream in the name"
|
|
if(InStr(ElementText, "Freedomain Livestream")){
|
|
Xpath = (//span[contains(text(),'Select')])[1]
|
|
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
|
if(Status){
|
|
Message = Failed to Select Livestream Template
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
Return
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
; input thumbnail
|
|
if(Livestreamthumbnail){
|
|
|
|
Xpath = //input[@id='room-thumbnail']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=Livestreamthumbnail)
|
|
if(Status){
|
|
Message = Faied to upload custom thubmanil
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
Return
|
|
}
|
|
}
|
|
|
|
|
|
|
|
; input Livestream Title
|
|
Xpath = //input[@placeholder='Give your stream a name']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LivestreamTitle, ClearElement:=1)
|
|
|
|
; input Livestream Description
|
|
Xpath = //textarea[@placeholder='Tell the audience more about your stream']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LivestreamDescription, ClearElement:=1)
|
|
|
|
|
|
|
|
; Input Date & Time
|
|
; ------------------------------------------------
|
|
; Create variables with time and date of timestream
|
|
FormatTime, RumbleLivestreamDate , %LivestreamDate%, dddd, MMMM
|
|
FormatTime, LivestreamOrdinalDay , %LivestreamDate%, d
|
|
FormatTime, RumbleLivestreamYear , %LivestreamDate%, yyyy
|
|
|
|
LivestreamOrdinalDay := GetDateOrdinalSuffix(LivestreamOrdinalDay)
|
|
; Msgbox % "LivestreamOrdinalDay: " LivestreamOrdinalDay
|
|
|
|
RumbleLivestreamDate := RumbleLivestreamDate . " " . LivestreamOrdinalDay . ", " . RumbleLivestreamYear
|
|
; Msgbox % "RumbleLivestreamDate: " RumbleLivestreamDate
|
|
; Msgbox % "RumbleLivestreamDate: " RumbleLivestreamDate
|
|
|
|
|
|
FormatTime, RumbleLivestreamTime , %LivestreamTime%, h:mm tt
|
|
; Msgbox % "RumbleLivestreamTime: " RumbleLivestreamTime
|
|
; FormatTime, RumbleLivestreamYear , %LivestreamDate%, yyyy
|
|
|
|
; click on box to open time picker dialogue
|
|
Xpath = //input[@placeholder='Pick a time']
|
|
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
|
|
|
; generate xpath based on date and click element
|
|
Xpath = //div[@aria-label='Choose %RumbleLivestreamDate%']
|
|
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
|
if(Status){
|
|
Message = Failed to select date from popup menu using generated xpath.`nXpath = %Xpath%
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
Return
|
|
}
|
|
|
|
; generate xpath based on time and click element
|
|
Xpath = //li[normalize-space()='%RumbleLivestreamTime%']
|
|
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
|
if(Status){
|
|
Message = Failed to select time from popup menu using generated xpath.`nXpath = %Xpath%
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
Return
|
|
}
|
|
|
|
|
|
|
|
; Select Channel for Upload
|
|
; ------------------------------------------------
|
|
; click channel dropdown
|
|
Xpath = //span[@class='text-light truncate text-mini']
|
|
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
|
if(Status){
|
|
Message = Failed to click on Channel dropdown menu
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
Return
|
|
}
|
|
|
|
; Grab inner text of all items in the channel select drop down menu
|
|
xpath = (//div[@class='shadow-md rounded-lg overflow-x-hidden bg-indigo'])[1]
|
|
try ElementInnerText := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
|
|
|
|
; pull out name of first channel in dropdown
|
|
FirstChannelName := StrSplit(ElementInnerText, "`n")[1]
|
|
|
|
Xpath = (//span[normalize-space()='%FirstChannelName%'])[1]
|
|
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
|
if(Status){
|
|
Message = Failed to select the channel -%FirstChannelName%- from Channel dropdown menu
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
return
|
|
}
|
|
|
|
|
|
|
|
; Select each Secondary Platform checkbox
|
|
; ------------------------------------------------
|
|
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%]
|
|
|
|
|
|
try SecondaryPlatformCheckboxName := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
|
|
|
|
if(SecondaryPlatformCheckboxName = "Add new destination" OR SecondaryPlatformCheckboxName = ""){
|
|
Break
|
|
}
|
|
|
|
Status := Selenium_LoopToClickXpath(Xpath:=XpathCheckbox,NumOfLoops:=2,SleepLength:=1000)
|
|
if(Status){
|
|
Message = Failed to check off the checkbox for: %SecondaryPlatformCheckboxName%
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
}
|
|
|
|
sleep, 250
|
|
|
|
}
|
|
|
|
|
|
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 automation for this site.
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
Return
|
|
}
|
|
}
|
|
/*
|
|
*/
|
|
|
|
; 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]
|
|
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")
|
|
}
|
|
|
|
|
|
|
|
try, driver.get("https://rumble.com/account/live-streaming")
|
|
|
|
Xpath = (//a[normalize-space()='Livestream Coming Soonish!'])[1]
|
|
; Try ElementOuterHTML := driver.findelementbyxpath(Xpath).Attribute("outerHTML") ;XPATH-ID & Tag
|
|
|
|
RumbleURLSlug := GetHTMLValueFromXpathOuterHTML(XPATH, "href")
|
|
if(RumbleURLSlug = "" or RumbleURLSlug = "Failed"){
|
|
Message = Failed to grab Rumble URL Slug from Livestreams Page
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
Return
|
|
}
|
|
|
|
RumbleLivestreamURL := "https://rumble.com" . RumbleURLSlug
|
|
|
|
IniWrite, %RumbleLivestreamURL%, %PostStatusesFilepath%, Livestream,RumbleLivestreamURL
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try CurrentURL := driver.URL
|
|
if(InStr(CurrentURL, "/login.php")){
|
|
|
|
if(AutoLogin){
|
|
Message = Logging in Automatically by clicking into the UN+PW fields for info to register
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
; have to click into username and password field for page to register that there's input
|
|
; clicking with JS doesn't make it register, but with xpath selenium it does
|
|
Xpath = //input[@id='login-username']
|
|
driver.FindElementByXPath(Xpath).click()
|
|
|
|
Xpath = //input[@id='login-password']
|
|
driver.FindElementByXPath(Xpath).click()
|
|
|
|
|
|
js = document.querySelector("button[type='submit']").click();
|
|
driver.executeScript(js)
|
|
|
|
|
|
; Do a double check to make sure that login worked
|
|
Message = Checking Login Status
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
try CurrentURL := driver.URL
|
|
|
|
if(!InStr(CurrentURL, "/upload")){
|
|
Message = Failed to log back in. Please Log Back In Manually
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
SaveDriverURLOFErrorPage()
|
|
Return
|
|
}
|
|
|
|
|
|
}
|
|
else, { ; notify user and return
|
|
Message = Login Expired. Please Log Back in
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
SaveDriverURLOFErrorPage()
|
|
Return
|
|
}
|
|
|
|
Message = Waiting 5 seconds for page to fully load
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
sleep, 5000
|
|
}
|
|
|
|
; CheckForAlerts()
|
|
|
|
Message = Uploading Video File
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
; SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
Xpath = //input[@id='Filedata']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=VideoFilepath)
|
|
if(Status){
|
|
try, CurrentURL := GetCurrentTabURlBase()
|
|
Message = Failed to Upload Video File`nCurrent Tab URL: %CurrentURL%
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
SaveDriverURLOFErrorPage()
|
|
Return
|
|
}
|
|
|
|
|
|
; Input Title
|
|
try driver.findElementsByName("title").item[1].SendKeys(VideoTitle) ;selects element based on Name and sends variable to it.
|
|
catch e {
|
|
Message = Video Upload Failed, Please Check Login Status
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
SaveDriverURLOFErrorPage()
|
|
Return
|
|
}
|
|
; Input Description
|
|
Loop, 5 { ; Attempt to input video description a couple of times
|
|
TooltipThis("Inputting Description `nAttempt Number: " A_index)
|
|
|
|
status := js_SendAndCheckWithID(Element:="description",ValueToCheck:="value",SleepLength:=3000,JSStringText:=JSVideoDescription)
|
|
if(!Status)
|
|
Break
|
|
|
|
/* if(A_index = 5){
|
|
Clipboard := VideoDescription
|
|
Message = Unable to Input Video Description`nDescription copied to clipboard, please paste it in at your earliest convenience.
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
Return
|
|
}
|
|
|
|
js = document.getElementsByName('description')[1].value = "%JSVideoDescription%"; ; Send content through javascript (Great for getting around emoji chrome limitaitons)
|
|
try driver.executeScript(js) ;Executes a Javascript on the webpage, mostly used for buttons.
|
|
|
|
try Description := driver.findElementsByName("description").item[2].Attribute("value") ;XPath: ID=site-title & span tag
|
|
if(Description != "")
|
|
Break
|
|
sleep, 2000
|
|
*/
|
|
}
|
|
|
|
|
|
|
|
|
|
; sleep, 5000
|
|
|
|
|
|
Message = Selecting Channel
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
|
|
|
|
; try driver.findElementsByID("channelId").item[1].click()
|
|
|
|
; @todo replace with regex
|
|
js = return document.querySelector("#channelId").innerHTML;
|
|
try, ChannelIDNumber := driver.executeScript(js)
|
|
; Msgbox % "ChannelIDNumber: " ChannelIDNumber
|
|
ChannelIDNumber := StrSplit(ChannelIDNumber, "option value=")
|
|
|
|
; Msgbox % "ChannelIDNumber: " ChannelIDNumber
|
|
|
|
ChannelIDNumber := ChannelIDNumber[3]
|
|
; Msgbox % "ChannelIDNumber: " ChannelIDNumber
|
|
|
|
SingleQuote = "
|
|
ChannelIDNumber := StrSplit(ChannelIDNumber, "data-private")
|
|
ChannelIDNumber := ChannelIDNumber[1]
|
|
ChannelIDNumber := StrReplace(ChannelIDNumber, SingleQuote, "")
|
|
ChannelIDNumber := StrReplace(ChannelIDNumber, " ", "")
|
|
|
|
; Msgbox % "ChannelIDNumber: " ChannelIDNumber
|
|
|
|
|
|
; js = return document.querySelector("#channelId").value;
|
|
; try, ChannelIDNumber := driver.executeScript(js)
|
|
; Msgbox % "ChannelIDNumber: " ChannelIDNumber
|
|
if(ChannelIDNumber = ""){
|
|
Message = ChannelIDNumber is blank. Unable to select Upload Channel
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
SaveDriverURLOFErrorPage()
|
|
Return
|
|
}
|
|
|
|
|
|
ChannelIDNumber = 6070526 ; freedomain
|
|
; ChannelIDNumber = 762377 ; personal
|
|
|
|
Xpath = //option[@value='%ChannelIDNumber%']
|
|
try driver.FindElementByXPath(Xpath).click()
|
|
catch e {
|
|
Message = Failed to click on Channel using %ChannelIDNumber%.
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
SaveDriverURLOFErrorPage()
|
|
Return
|
|
; SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
; SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
}
|
|
|
|
|
|
|
|
; Input Tags
|
|
Message = Inputting Tags
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
try driver.findElementsByName("tags").item[1].SendKeys(VideoTags) ;selects element based on Name and sends variable to it.
|
|
|
|
|
|
|
|
; Custom Thumbnail
|
|
if(VideoThumbFilepath != "") {
|
|
TooltipThis("Uploading Thumbnail")
|
|
Xpath = //input[@name='customThumb']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=VideoThumbFilepath)
|
|
if(Status){
|
|
Message = Failed to Upload Thumbanil
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
}
|
|
|
|
|
|
; @todo: Add a check to see if progress gets stuck
|
|
; Check Upload Percentage
|
|
TooltipThis("Waiting for Video to Finish Uploading")
|
|
Loop, %Number_of_loops_to_Check_Upload_status% {
|
|
sleep, %Time_Between_Loops_Upload_Status%
|
|
|
|
jscheck = return document.getElementsByClassName('num_percent')[0].textContent;
|
|
try RumbleUploadPercent := driver.executeScript(jsCheck)
|
|
|
|
; try RumbleUploadPercent := driver.findelementbyxpath(Xpath).Attribute("textContent")
|
|
RumbleUploadPercent := StrSplit(RumbleUploadPercent, " ")
|
|
RumbleUploadPercent := RumbleUploadPercent[1]
|
|
|
|
if(InStr(RumbleUploadPercent, "100%")) ; once variable contains 100%, then we can break out of loop and continue
|
|
Break
|
|
|
|
|
|
Status := Check_For_Stuck_Video_Upload(A_index, RumbleUploadPercent)
|
|
if(Status = "Failed")
|
|
Return
|
|
; if(HasVal(Array_Index_Num_of_Upload_StatusChecks, A_index)) { ; 30 minutes and 60 minutes - send a notification message
|
|
; Message = Upload Progress: %RumbleUploadPercent%
|
|
; SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
; }
|
|
|
|
}
|
|
|
|
; Msgbox % "RumbleUploadPercent: " RumbleUploadPercent
|
|
|
|
; Click on one of the video thumbnail options first
|
|
; Seems to be a bug on rumble, in order to be able to select a custom thumb through js, gotta select on of the generated ones first.
|
|
; Xpath = /html/body/main/div/div/div/section/form[1]/div/div[2]/div[3]/a[2] ; thumbnail option #3
|
|
; try driver.FindElementByXPath(Xpath).click() ;Clicks on Xpath based on variable.
|
|
|
|
|
|
|
|
|
|
/*
|
|
js = document.getElementById('customThumb').click();
|
|
driver.executeScript(js) ;Executes a Javascript on the webpage, mostly used for buttons.
|
|
Status := InputFilePathIntoOpenWindow(VideoThumbFilepath)
|
|
if(Status)
|
|
{
|
|
Message = Upload Failed:`nUnable to Find "Open File" window to input filepath into
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
Return
|
|
}
|
|
|
|
*/
|
|
|
|
|
|
}
|
|
|
|
|
|
if(ConfirmBeforeSubmit)
|
|
msgbox, Please check that all data was input correctly and then click OK to Publish Video
|
|
|
|
try UploadPageURL := driver.URL
|
|
|
|
; Submit Button
|
|
js = document.getElementById('submitForm').click();
|
|
try driver.executeScript(js) ;
|
|
|
|
|
|
try driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding
|
|
|
|
|
|
; Select Rumble Only Licensing
|
|
js = document.getElementsByClassName('greenLink mRight last')[0].click(); ; Send content through javascript (Great for getting around emoji chrome limitaitons)
|
|
try driver.executeScript(js) ;Executes a Javascript on the webpage, mostly used for buttons.
|
|
|
|
; Check off condition 1
|
|
js = document.getElementById("crights").click()
|
|
try driver.executeScript(js)
|
|
|
|
; Check off condition 2
|
|
js = document.getElementById("cterms").click()
|
|
try driver.executeScript(js)
|
|
|
|
; Click the Submit Button
|
|
js = document.getElementById("submitForm2").click()
|
|
try driver.executeScript(js)
|
|
|
|
|
|
; Loop until able to grab the direct link from the result page.
|
|
Loop, 24 {
|
|
TooltipThis("Waiting for Result Page to load to grab Video URL")
|
|
Sleep, 5000
|
|
|
|
js = return document.getElementById("error_files_2").textContent;
|
|
RumbleError := driver.executeScript(js) ;Executes a Javascript on the webpage, mostly used for buttons.
|
|
if(RumbleError != "") {
|
|
Message = Rumble Upload Failed due to:`n%RumbleError%
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
SaveDriverURLOFErrorPage()
|
|
Return
|
|
}
|
|
|
|
js = return document.getElementById('direct').value;
|
|
try RumbleURL := driver.executeScript(js) ;Executes a Javascript on the webpage, mostly used for buttons.
|
|
|
|
/* try RumbleURL := driver.findElementsByID("direct").item[1].Attribute("value") ;grab Direct Link from the result page
|
|
catch e { ; if not able to grab it, then sleep for 5 seconds and then loop again
|
|
Continue
|
|
}
|
|
*/
|
|
if(RumbleURL != ""){ ; If URL is grabbed from result page, then kick out of loop
|
|
Break
|
|
}
|
|
if(A_Index = 10) ; if looped for 5 minutes and still no URL grabbed
|
|
{ ; @todo: add error check if submit button clicked and error appears
|
|
|
|
Xpath = /html/body/main/div/div/div/section/form[2]/div/div[9] ; grab inner content of where error usually appears.
|
|
try RumbleUploadError := driver.findelementbyxpath(Xpath).Attribute("innerText") ; Grabb innertext
|
|
; Msgbox % "UseThumbUploadToolTextExist: " UseThumbUploadToolTextExist
|
|
|
|
|
|
Message = Upload Error (E#1341)`nVideo Uploaded but not able to be finalized.`nPlease fix the issue and click the final submit button. `nError: %RumbleUploadError%
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
SaveDriverURLOFErrorPage()
|
|
Return
|
|
}
|
|
}
|
|
|
|
IniWrite, %RumbleURL%, %VideoLinksIniFile%, URLs, RumbleURL
|
|
|
|
Message = Upload Complete: %RumbleURL%
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
SaveDriverURL()
|
|
AddToTotalVideosUploadedCount()
|
|
|
|
Return
|