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.
livestream-scheduler/Modules/Odysee-Grab-URL.ahk

155 lines
4.8 KiB
Plaintext

OdyseeGrabURL:
Iniread, OdyseeURLSLUG, %PostStatusesFilepath%, Livestream,OdyseeURLSLUG, %A_Space%
if(OdyseeURLSLUG = ""){
Message = OdyseeURLSLug is empty in the Livestream.ini file.
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
Status := NavigateFromBaseURLTo("https://odysee.com/$/livestream")
if(Status)
Return
; click on Local Setup button to switch windows
Xpath = //span[contains(text(),'Local Setup')]
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
Xpath = //label[normalize-space()='Stream server']
try, Status := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
if(!Status){
Message = Failed to switch to "Stream Server" page
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
/*
Message = Waiting for Livestream Created Confirmation Popup
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
Xpath = //h2[normalize-space()='Livestream Created']
Loop, 60 {
try, Status := ElementInnerText := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
if(Status = "Livestream Created")
break
else, {
sleep, 1000
Continue
}
}
*/
Message = Grabbing Livestream URL from Livestream Settings Page
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
/*
; Grab and Format the livestream URL
Xpath = //li[@role='link']
Loop, 60 {
URLSLUG := GetHTMLValueFromXpathOuterHTML(XPATH, "href")
if(URLSLug = "Failed"){
Message = Failed to Grab URL SLug from confirmation popup
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
; Msgbox % "URLSLug: " URLSLug
if(InStr(URLSLug, OdyseeLivestreamSlug))
break
if(A_Index = 60){
Message = Odysee did not generate permanant livestream URL after 1 minute of waiting. Congestion Issues?
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
sleep, 1000
}
*/
/*; Message =
Xpath = //span[contains(text(),'View Livestream Settings')]
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=1000)
if(Status){
Message = Failed to click on View Livestream Settigns Button
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
; Double check that we're on the right page.
Xpath = //label[normalize-space()='Stream server']
try InnerText := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
if(InnerText != "Stream server"){
Message = Failed to Navigate to View Livestream Settings Page
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
*/
Message = Waiting for Livestream to get confirmed and URL to be generated`nWill Give up after 5 minutes
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
Xpath = //div[@class='section']//li[1]
Loop, 100 {
if(A_Index = 100){
Message = Failed to grab URL after 5 minutes of waiting.
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
Try ElementOuterHTML := driver.findelementbyxpath(Xpath).Attribute("outerHTML") ;XPATH-ID & Tag
if(!InStr(ElementOuterHTML, OdyseeURLSLUG)){
Sleep, 5000
Continue
; Message = Failed to Grab Livestream URL. Please copy and paste it manually.
; SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
; return
}
else, {
break
}
}
; Clipboard := OdyseeURLSLUG
; Msgbox % "OdyseeURLSLUG: " OdyseeURLSLUG
; Clipboard := ElementOuterHTML
; Msgbox % "ElementOuterHTML: " ElementOuterHTML
Xpath = //div[@class='section']//li[1]
URLSLUG := GetHTMLValueFromXpathOuterHTML(XPATH, "href")
if(URLSLUG = "Failed"){
Message = Failed to Grab Livestream URL from outerHTML of livestream element.
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
OdyseeLivestreamURL := "https://odysee.com" . URLSLug
; Msgbox % "OdyseeLivestreamURL: " OdyseeLivestreamURL
; Message = URL Slug Grabbed from Confirmation Popup: %URLSLug%
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
; OdyseeLivestreamURL := "https://odysee.com" . URLSLug
IniWrite, %OdyseeLivestreamURL%, %PostStatusesFilepath%, Livestream,OdyseeLivestreamURL