diff --git a/Freedomain Video Uploader.ahk b/Freedomain Video Uploader.ahk index cee1477..16b91d3 100644 --- a/Freedomain Video Uploader.ahk +++ b/Freedomain Video Uploader.ahk @@ -165,6 +165,16 @@ IniRead, AutoLogin, %SettingsIniFilepath%, General, AutoLogin, 1 IniRead, PingOnCompletion, %SettingsIniFilepath%, General, PingOnCompletion, 1 (PingOnCompletion)?(PingOnCompletionCheckStatus := 1) : (PingOnCompletionCheckStatus := 0) +if(PingOnCompletion){ + IniRead, DiscordUsernameID, %SettingsIniFilepath%, General, DiscordUsernameID, %A_space% + if(!DiscordUsernameID){ + Message = DiscordUsernameID is blank. Will not be able to ping to notify when uploads are complete.`nPlease add user ID in settings.ini under: `n`n[General]`nDiscordUsernameID=`nOr Uncheck "Discord Ping on Completion" + ; SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile") + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar") + } +} + + IniRead, KillLBRYAfterUpload, %SettingsIniFilepath%, General, KillLBRYAfterUpload, 1 (KillLBRYAfterUpload)?(=KillLBRYAfterUploadCheckStatus := 1) : (KillLBRYAfterUploadCheckStatus := 0) @@ -174,11 +184,7 @@ if(DiscordErrorLoggingWebhookBotURL = ""){ SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") } -IniRead, DiscordUsernameID, %SettingsIniFilepath%, General, DiscordUsernameID, %A_space% -if(DiscordUsernameID = ""){ - Message = DiscordUsernameID is blank. Will not be able to ping to notify when uploads are complete.`nPlease add user ID in settings.ini under: `n`n[General]`nDiscordUsernameID= - SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") -} + ;---Auto Updater Settings--- ;------------------------------------------------ @@ -1570,7 +1576,7 @@ SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,DiscordError AudioLength_Seconds := ((AudioLengthArray[1] * 60 ) * 60) + (AudioLengthArray[2] * 60) + AudioLengthArray[3] Message = MP3 Audio Length in Seconds: %TotalTimeInSeconds% -SaveOrPostProgress(Message:="Message",PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") +SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") ; AudioLength_Hours := AudioLengthArray[1] ; AudioLength_Minutes := AudioLengthArray[2] @@ -3299,506 +3305,528 @@ Loop, %Number_of_loops_to_Check_Upload_status% { try driver.executeScript("return document.readyState").equals("complete") sleep, 2000 - ; } + ; } - } - else, { - SaveOrPostProgress(Message:="Login Expired. Please log back in",PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return + } + else, { + SaveOrPostProgress(Message:="Login Expired. Please log back in",PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return + } } } -} - -Message = Navigating to Upload Page -SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") - -; Navigate to Upload Page -try driver.executeScript("window.location = 'https://www.brighteon.com/dashboard/video-upload'") ;navigate using javascript -try driver.executeScript("return document.readyState").equals("complete") + Message = Navigating to Upload Page + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") -try, TabURL := driver.url -Message = Current Tab URL: %TabURL% -SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + ; Navigate to Upload Page + try driver.executeScript("window.location = 'https://www.brighteon.com/dashboard/video-upload'") ;navigate using javascript -; Click out of the "Support free speech" pop-up if it pops up -Xpath = //body/div[@id='__next']/div[@id='modal-root']/div/div/div[1]//*[local-name()='svg'] -try driver.FindElementByXPath(Xpath).click() + try driver.executeScript("return document.readyState").equals("complete") + try, TabURL := driver.url + Message = Current Tab URL: %TabURL% + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") -CheckForAlerts() + ; Click out of the "Support free speech" pop-up if it pops up + Xpath = //body/div[@id='__next']/div[@id='modal-root']/div/div/div[1]//*[local-name()='svg'] + try driver.FindElementByXPath(Xpath).click() -Message = Uploading Video -SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") -; Upload Video -Xpath = //input[@type='file'] -Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=VideoFilepath) -if(Status){ - Message = Failed to Upload Video, Please check Login Status - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return -} + CheckForAlerts() -loop, 3 { - if(A_index = 3){ - Message = Failed to input Video Title + Message = Uploading Video + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") + ; Upload Video + Xpath = //input[@type='file'] + Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=VideoFilepath) + if(Status){ + Message = Failed to Upload Video, Please check Login Status SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() Return } - ; Input Title of the Video - Xpath = //input[@id='name'] - try driver.FindElementByXPath(Xpath).SendKeys(VideoTitle) ;Sends Variable to an Xpath Item + loop, 3 { + if(A_index = 3){ + Message = Failed to input Video Title + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return + } - ; click into keyword box to get focus away from title element and see if the video title registers with website - xpath = //input[@id='keywords'] - try driver.FindElementByXPath(Xpath).click() + ; Input Title of the Video + Xpath = //input[@id='name'] + try driver.FindElementByXPath(Xpath).SendKeys(VideoTitle) ;Sends Variable to an Xpath Item - sleep, 500 - ; check if title got input - js = return document.querySelector("#name").value; - try, status := driver.executeScript(js) - if(status = "") - continue + ; click into keyword box to get focus away from title element and see if the video title registers with website + xpath = //input[@id='keywords'] + try driver.FindElementByXPath(Xpath).click() - js = return document.querySelector("#name").value; - try, status := driver.executeScript(js) + sleep, 500 - Message = Title that got input: %status% - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - break + ; check if title got input + js = return document.querySelector("#name").value; + try, status := driver.executeScript(js) + if(status = "") + continue -} + js = return document.querySelector("#name").value; + try, status := driver.executeScript(js) + Message = Title that got input: %status% + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + break -TooltipThis("Inputting Video Description") + } + TooltipThis("Inputting Video Description") -; Attempt to input video description a couple of times -Loop, 10 { - Message = Inputting Description. Attempt Number: %A_index% - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - ; SaveOrPostProgress(Message:=Message,PostType:="DiscordErrorLogging") - ; SaveOrPostProgress(Message:="Inputting Video Description",PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar") - ; TooltipThis("Inputting Description) - Xpath = //div[@class='e-content e-lib e-keyboard'] - Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=VideoDescription) - if(Status){ - SaveOrPostProgress(Message:="Failed to input Video Description",PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return - } + ; Attempt to input video description a couple of times + Loop, 10 { + if(A_index = 10){ + Message = Failed to input Video Description after 10 attempts. + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return + } - ; DevModeMsgBox("pause") + Message = Inputting Description. Attempt Number: %A_index% + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + ; SaveOrPostProgress(Message:=Message,PostType:="DiscordErrorLogging") - ; driver.FindElementByXPath(Xpath).SendKeys(VideoDescription) + ; SaveOrPostProgress(Message:="Inputting Video Description",PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar") + ; TooltipThis("Inputting Description) - ; js = document.getElementById('description').value = "%JSBrighteonVideoDescription%"; - ; try driver.executeScript(js) + Xpath = //div[@class='e-content e-lib e-keyboard'] + Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=VideoDescription) + if(Status){ + SaveOrPostProgress(Message:="Failed to input Video Description",PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + ; SaveDriverURLOFErrorPage() + ; Return + } + ; DevModeMsgBox("pause") - ; sleep, 1000 - ; TooltipThis("checking description input") - ; try driver.findElementsByID("description").item[1].SendKeys(driver.Keys.ENTER) - ; sleep, 1000 + ; driver.FindElementByXPath(Xpath).SendKeys(VideoDescription) - sleep, 5000 + ; js = document.getElementById('description').value = "%JSBrighteonVideoDescription%"; + ; try driver.executeScript(js) - js = return document.querySelector("div[class='e-content e-lib e-keyboard'] p").innerText; - try Input_Description := driver.executeScript(JS) ;Execute Javascript + ; sleep, 1000 + ; TooltipThis("checking description input") + ; try driver.findElementsByID("description").item[1].SendKeys(driver.Keys.ENTER) + ; sleep, 1000 - Input_DescriptionStrLen := StrLen(Input_Description) - Message = Length of Description that got input: %Input_DescriptionStrLen% - SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,DiscordErrorLogging") + sleep, 5000 - ; if text in description box is longer than x chars, then description input worked - if(StrLen(Input_Description) > 15){ - Input_Description := SubStr(Input_Description, 1, 20) - Message = Description that got input: %Input_Description% ... - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - Break - } -} + js = return document.querySelector("div[class='e-content e-lib e-keyboard'] p").innerText; + try Input_Description := driver.executeScript(JS) ;Execute Javascript + Input_DescriptionStrLen := StrLen(Input_Description) + Message = Length of Description that got input: %Input_DescriptionStrLen% + SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,DiscordErrorLogging") + ; if text in description box is longer than x chars, then description input worked + if(StrLen(Input_Description) > 15){ + Input_Description := SubStr(Input_Description, 1, 20) + Message = Description that got input: %Input_Description% ... + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + Break + } -; Thumbnail -if(VideoThumbFilepath != "") { - TooltipThis("Uploading Thumbnail") - Xpath = //input[@type='file'] - Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=VideoThumbFilepath) - if(Status){ - Message = Failed to Upload Thumbnail - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") } -} -; DevModeMsgBox(VideoTags) -TooltipThis("Inputting Keywords") -Loop, 5 { - XPath = //input[@id='keywords'] - try driver.FindElementByXPath(Xpath).SendKeys(VideoTags) ;Sends Variable to an Xpath Item - catch e { - Message = Error (E#2312)`nVideo Uploaded but Unable to Input Video Tags - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + + ; Thumbnail + if(VideoThumbFilepath != "") { + TooltipThis("Uploading Thumbnail") + Xpath = //input[@type='file'] + Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=VideoThumbFilepath) + if(Status){ + Message = Failed to Upload Thumbnail + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + } } - ; click into video title to get focus away from inputbox - Xpath = /html/body/div/section[2]/div[2]/div/form/div[1]/div[1]/div[2]/div[1]/div/input - try, driver.FindElementByXPath(Xpath).click() ;Sends Variable to an Xpath Item - ; check that the tags got input - js = return document.querySelector("#keywords").value; - try, status := driver.executeScript(js) - if(!status){ - Message = Failed to input tags. - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + ; DevModeMsgBox(VideoTags) + TooltipThis("Inputting Keywords") + Loop, 5 { + XPath = //input[@id='keywords'] + try driver.FindElementByXPath(Xpath).SendKeys(VideoTags) ;Sends Variable to an Xpath Item + catch e { + Message = Error (E#2312)`nVideo Uploaded but Unable to Input Video Tags + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + } + + ; click into video title to get focus away from inputbox + Xpath = /html/body/div/section[2]/div[2]/div/form/div[1]/div[1]/div[2]/div[1]/div/input + try, driver.FindElementByXPath(Xpath).click() ;Sends Variable to an Xpath Item + + ; check that the tags got input + js = return document.querySelector("#keywords").value; + try, status := driver.executeScript(js) + if(!status){ + Message = Failed to input tags. + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + } + else, { + Message = Tags that got input: %status% + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + break + } + ; Msgbox % "status: " status + + + } + + ; double check on video description after inputting tags + js = return document.querySelector("div[class='e-content e-lib e-keyboard'] p").innerText; + try Input_Description := driver.executeScript(JS) ;Execute Javascript + + ; if text in description box is longer than x chars, then description input worked + if(StrLen(Input_Description) > 5){ + SaveOrPostProgress(Message:="Video Description second double check was successful",PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") } else, { - Message = Tags that got input: %status% - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - break + SaveOrPostProgress(Message:="Secondary video description check failed",PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return } - ; Msgbox % "status: " status -} -; double check on video description after inputting tags -js = return document.querySelector("div[class='e-content e-lib e-keyboard'] p").innerText; -try Input_Description := driver.executeScript(JS) ;Execute Javascript + TooltipThis("Waiting for Video to Finish Uploading") + Loop, %Number_of_loops_to_Check_Upload_status% { + sleep, %Time_Between_Loops_Upload_Status% -; if text in description box is longer than x chars, then description input worked -if(StrLen(Input_Description) > 5){ - SaveOrPostProgress(Message:="Video Description second double check was successful",PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") -} -else, { - SaveOrPostProgress(Message:="Secondary video description check failed",PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - Return -} + ; Get progress status through javascript + jsCheck = return document.getElementsByClassName('video-upload--details')[0].textContent; + try ProgressStatus := driver.executeScript(jsCheck) + if(ProgressStatus = ""){ + Message = Failed to Grab Video Upload Status. Upload Most Likely Failed + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return + } + if(InStr(ProgressStatus, "Upload complete.")){ + Break + } -TooltipThis("Waiting for Video to Finish Uploading") -Loop, %Number_of_loops_to_Check_Upload_status% { - sleep, %Time_Between_Loops_Upload_Status% + ; Pull out progress Percentage from full string + UploadPercent := StrSplit(ProgressStatus, "(") + UploadPercent := UploadPercent[2] + UploadPercent := StrSplit(UploadPercent, ")") + UploadPercent := UploadPercent[1] - ; Get progress status through javascript - jsCheck = return document.getElementsByClassName('video-upload--details')[0].textContent; - try ProgressStatus := driver.executeScript(jsCheck) + ; Message = Waiting for Video to Finish Uploading`nCurrent Upload Status: %UploadPercent% + ; SaveOrPostProgress(Message:=Message,PostType:="Tooltip") - if(ProgressStatus = ""){ - Message = Failed to Grab Video Upload Status. Upload Most Likely Failed - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() + Status := Check_For_Stuck_Video_Upload(A_index, UploadPercent) + if(Status = "Failed") Return } - if(InStr(ProgressStatus, "Upload complete.")){ - Break - } - ; Pull out progress Percentage from full string - UploadPercent := StrSplit(ProgressStatus, "(") - UploadPercent := UploadPercent[2] - UploadPercent := StrSplit(UploadPercent, ")") - UploadPercent := UploadPercent[1] + ; "Save Now" button + js = return document.querySelector("button[class='mr-2 btn btn-primary btn-sm']").textContent; + try, status := driver.executeScript(js) + if(!InStr(status, "Save Video")){ + Message = Save Video Button is not clickable. Please check page for errors. + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return + } - ; Message = Waiting for Video to Finish Uploading`nCurrent Upload Status: %UploadPercent% - ; SaveOrPostProgress(Message:=Message,PostType:="Tooltip") - Status := Check_For_Stuck_Video_Upload(A_index, UploadPercent) - if(Status = "Failed") - Return -} + ; Save Video button + TooltipThis("Clicking Save Video Button to finalize Upload") + try BrighteonUploadPageURL := driver.url + try driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding -; "Save Now" button -js = return document.querySelector("button[class='mr-2 btn btn-primary btn-sm']").textContent; -try, status := driver.executeScript(js) -if(!InStr(status, "Save Video")){ - Message = Save Video Button is not clickable. Please check page for errors. - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return -} -; Save Video button -TooltipThis("Clicking Save Video Button to finalize Upload") -try BrighteonUploadPageURL := driver.url -try driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding + TooltipThis("Waiting for Result page to finish loading") + Loop, 10 { ; 5 loops of 1 minute each + if(A_index = 10){ + Message = Upload Failed: Clicking "Save Video" did not Finalize the Upload + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return ; Break out of gosub + } + js = document.getElementsByClassName('mr-2 btn btn-primary btn-sm')[0].click(); ; Save Video Button + try driver.executeScript(js) + driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding + sleep, 5000 ; 30 seconds + try CurrentURL := driver.url + if(BrighteonUploadPageURL != CurrentURL) + Break + } + Message = Trying to Grab Newest Video's URL + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") + sleep, 2000 -TooltipThis("Waiting for Result page to finish loading") -Loop, 10 { ; 5 loops of 1 minute each - if(A_index = 10){ - Message = Upload Failed: Clicking "Save Video" did not Finalize the Upload - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return ; Break out of gosub - } - js = document.getElementsByClassName('mr-2 btn btn-primary btn-sm')[0].click(); ; Save Video Button - try driver.executeScript(js) - driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding + ; Navigate to Videos page to make sure it's refreshed with latest video + try driver.Get("https://www.brighteon.com/dashboard/videos") ;Open selected URL + try driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding + sleep, 2000 - sleep, 5000 ; 30 seconds - try CurrentURL := driver.url - if(BrighteonUploadPageURL != CurrentURL) - Break -} + ; Get First word in video title to use in grabbing video URL + VideoTitleArray := StrSplit(VideoTitle, " ") + ; Iterate from 1 to the end of the array: + Loop % VideoTitleArray.Length(){ + VideoTitleLongWord := VideoTitleArray[A_Index] + ; VideoTitleFirstWord := StrReplace(VideoTitleFirstWord, "_","-") + if(StrLen(VideoTitleLongWord) > 4) + Break -Message = Trying to Grab Uploaded Video URL -SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") + ; MsgBox % VideoTitleArray[A_Index] + } -; Message = Waiting 60 Seconds Before Checking Results Page for URL -; SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") -; Navigate to Videos page and loop through the videos and grab the URL of the latest upload -try driver.Get("https://www.brighteon.com/dashboard/videos") ;Open selected URL -try driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding + Message = VideoTitleLongWord: %VideoTitleLongWord% + SaveOrPostProgress(Message:=Message,PostType:=",ErrorLoggingTextFile") + try, CurrentURL := driver.url + Message = Trying to Grab URL of latest upload containing keyword: %VideoTitleLongWord%. Tab's current URL: %CurrentURL% + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + ; DevModeMsgBox(Message) + Loop, 4 { + ElementIndexNumber := A_index -; Get First word in video title to use in grabbing video URL -VideoTitleArray := StrSplit(VideoTitle, " ") -; Iterate from 1 to the end of the array: -Loop % VideoTitleArray.Length(){ - VideoTitleLongWord := VideoTitleArray[A_Index] - ; VideoTitleFirstWord := StrReplace(VideoTitleFirstWord, "_","-") - if(StrLen(VideoTitleLongWord) > 4) - Break + jsCheck = return document.getElementsByClassName('col')[%ElementIndexNumber%].outerHTML; + try BrighteonURL := driver.executeScript(jsCheck) - ; MsgBox % VideoTitleArray[A_Index] -} + jsCheck = return document.getElementsByClassName('col')[%ElementIndexNumber%].textContent; + try InnerText := driver.executeScript(jsCheck) + ; Message = Loop Number: %ElementIndexNumber% element's Text Content: %innerText%`nBrighteonURL: %BrighteonURL% + ; SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") -Message = VideoTitleLongWord: %VideoTitleLongWord% -SaveOrPostProgress(Message:=Message,PostType:=",ErrorLoggingTextFile") + ; Message = InnerText: %InnerText% + ; SaveOrPostProgress(Message:=Message,PostType:=",ErrorLoggingTextFile") + ; DevModeMsgBox(InnerText) + ; Message = BrighteonURL: %BrighteonURL% + ; SaveOrPostProgress(Message:=Message,PostType:=",ErrorLoggingTextFile") -Loop, 4 { - ElementIndexNumber := A_index + 1 - jsCheck = return document.getElementsByClassName('col')[%ElementIndexNumber%].outerHTML; - try BrighteonURL := driver.executeScript(jsCheck) - jsCheck = return document.getElementsByClassName('col')[%ElementIndexNumber%].textContent; - try InnerText := driver.executeScript(jsCheck) + ; Msgbox % "VideoTitleLongWord: " VideoTitleLongWord "`nInnerText: " InnerText + ; clipboard := Message + ; msgbox % Message + ; Msgbox % "InnerText: " InnerText . "`n" . "BrighteonURL: " . BrighteonURL - Message = InnerText: %InnerText% - SaveOrPostProgress(Message:=Message,PostType:=",ErrorLoggingTextFile") + if(InStr(InnerText, VideoTitleLongWord)){ + Message = Title Keyword was found on %A_index% loop, within element: %innerText%`nTrying to pull out BrighteonURL from element's outerHTML + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - Message = BrighteonURL: %BrighteonURL% - SaveOrPostProgress(Message:=Message,PostType:=",ErrorLoggingTextFile") + BrighteonURL := StrSplit(BrighteonURL, "/dashboard/videos/") + BrighteonURL := BrighteonURL[2] + BrighteonURL := StrSplit(BrighteonURL, ">