odysee support, locals small bug fix, gui rework
This commit is contained in:
@@ -90,9 +90,21 @@ try, driver.FindElementByXPath(Xpath).SendKeys(driver.Keys.BackSpace).SendKeys(d
|
||||
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LocalsLivestreamTime)
|
||||
|
||||
|
||||
if(ConfirmBeforeSubmit)
|
||||
msgbox, Please check that all data was input correctly and then click OK to Finalize Schedule and grab RTMP Settings
|
||||
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
|
||||
}
|
||||
}
|
||||
/*
|
||||
*/
|
||||
|
||||
; click schedule button
|
||||
Xpath = //span[normalize-space()='Schedule']
|
||||
@@ -160,10 +172,11 @@ Xpath = //div[@class='modal-wrapper modal-wrapper_stream']//div[5]
|
||||
LocalsRTMPKey := GetHTMLValueFromXpathOuterHTML(XPATH, "value")
|
||||
|
||||
|
||||
ToolTip
|
||||
; Msgbox % "PostStatusesFilepath: " PostStatusesFilepath
|
||||
|
||||
|
||||
IniWrite, %LocalsRTMPURL%, %PostStatusesFilepath%, Livestream,LocalsRTMPURL
|
||||
IniWrite, %LocalsRTMPKey%, %PostStatusesFilepath%, Livestream,LocalsRTMPKey
|
||||
IniWrite, %LivestreamURL%, %PostStatusesFilepath%, Livestream,LivestreamURL
|
||||
|
||||
ToolTip
|
||||
Return
|
||||
|
||||
@@ -20,14 +20,319 @@ if(InStr(PageURL, "/signup")){
|
||||
Return
|
||||
}
|
||||
|
||||
; If clear button exists, click it and clear any data from a previous attempt
|
||||
Xpath = //span[contains(text(),'Clear')]
|
||||
try, Status := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
|
||||
if(InStr(Status, "Clear")){
|
||||
Message = Clearing out previous unfinished upload
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
||||
|
||||
; we need to wipe out the previously unfinished upload
|
||||
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=1000)
|
||||
if(Status){
|
||||
Message = Failed to clear out previous upload
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
||||
Return
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
; create a slug string and format it
|
||||
FormatTime, OdyseeLivestreamDate , %LivestreamDate%, MM-dd-yyyy ; _hhmmss
|
||||
OdyseeLivestreamSlug := "livestream-" . OdyseeLivestreamDate
|
||||
OdyseeURLSLUG := LBRYCMDTextReplacement(OdyseeLivestreamSlug)
|
||||
|
||||
Message = Inputting Livestream Information
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
||||
|
||||
Xpath = //input[@placeholder='Descriptive titles work best']
|
||||
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LivestreamTitle)
|
||||
if(Status){
|
||||
Message = Failed to Input Livestream Title
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
||||
Return
|
||||
}
|
||||
|
||||
Xpath = //input[@name='content_name']
|
||||
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=OdyseeURLSLUG)
|
||||
if(Status){
|
||||
Message = Failed to Input Livestream URL
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
||||
Return
|
||||
}
|
||||
|
||||
|
||||
Xpath = //textarea[@id='content_description']
|
||||
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LivestreamDescription)
|
||||
if(Status){
|
||||
Message = Failed to Input Livestream Description
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
||||
Return
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
; Click "Scheduled Time" checkbox
|
||||
Message = Selecting -Scheduled Time- checkbox
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
||||
|
||||
Xpath = //label[normalize-space()='Scheduled Time']
|
||||
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=5000)
|
||||
if(Status){
|
||||
Message = Failed to click the "Scheduled Time" checkbox
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
||||
Return
|
||||
}
|
||||
|
||||
|
||||
; Create variables with time and date of timestream
|
||||
FormatTime, LivestreamYear , %LivestreamDate%, yyyy ; _hhmmss
|
||||
FormatTime, LivestreamMonth , %LivestreamDate%, MM ; _hhmmss
|
||||
FormatTime, LivestreamDay , %LivestreamDate%, dd ; _hhmmss
|
||||
|
||||
FormatTime, LivestreamHour , %LivestreamTime%, h ; _hhmmss
|
||||
FormatTime, LivestreamMinute , %LivestreamTime%, m ; _hhmmss
|
||||
FormatTime, LivestreamAMPM , %LivestreamTime%, tt ; _hhmmss
|
||||
|
||||
|
||||
; Input Livestream Time and Date
|
||||
Xpath = //input[@placeholder='----']
|
||||
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LivestreamYear)
|
||||
|
||||
Xpath = //input[@name='month']
|
||||
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LivestreamMonth, ClearElement:=1)
|
||||
|
||||
Xpath = //input[@name='day']
|
||||
Status := Selenium_LoopToSendValueToXpath(Xpath,NumOfLoops:=1,SleepLength:=1000,StringTextContent:=LivestreamDay, ClearElement:=1)
|
||||
|
||||
Xpath = //input[@name='hour12']
|
||||
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LivestreamHour, ClearElement:=1)
|
||||
|
||||
Xpath = //input[@name='minute']
|
||||
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LivestreamMinute, ClearElement:=1)
|
||||
|
||||
Xpath = //select[@name='amPm']
|
||||
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LivestreamAMPM)
|
||||
|
||||
|
||||
if(LivestreamThumbnail != ""){
|
||||
; Upload Thumbnail
|
||||
Xpath = //input[@accept='.png, .jpg, .jpeg, .gif, .webp']
|
||||
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LivestreamThumbnail)
|
||||
if(Status){
|
||||
Message = Failed to Upload Thumbnail
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
||||
}
|
||||
|
||||
; check for the Upload Thumbnail Confirmation popup
|
||||
Xpath = //h1[normalize-space()='Upload thumbnail']
|
||||
loop, 10 {
|
||||
if(A_index = 10){
|
||||
Message = Upload Thumbnail Confirmation did not appear after 10 seconds.
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
||||
}
|
||||
|
||||
try, Status := driver.findelementbyxpath(Xpath).Attribute("innerText")
|
||||
if(Status = "Upload Thumbnail"){
|
||||
break
|
||||
}
|
||||
else, {
|
||||
sleep, 1000
|
||||
Continue
|
||||
}
|
||||
}
|
||||
|
||||
try, Status := driver.findelementbyxpath(Xpath).Attribute("innerText")
|
||||
if(Status = "Upload Thumbnail"){
|
||||
; click confirm upload button
|
||||
Xpath = //div[@class='card__actions']//button[@aria-label='Upload']//span[@class='button__content']
|
||||
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
||||
}
|
||||
else, {
|
||||
Message = Upload Failed: Upload thumbnail confirmation popup did not show up.
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
||||
Return
|
||||
}
|
||||
|
||||
/* ; check if the "Are you sure you want to upload this thumbnail to odysee.com?" popup exists
|
||||
; Xpath = /html/body/div[4]/div/div/label
|
||||
; try Status := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
|
||||
if(Status){ ; if element exists, then click the confirm button
|
||||
|
||||
Xpath = //div[@class='card__actions']//button[@aria-label='Upload']//span[@class='button__content']
|
||||
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
||||
; MsgBox,,Element innerText: `n, % driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
|
||||
}
|
||||
else, {
|
||||
Message = Upload thumbnail confirmation popup did not show up.
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
Xpath = //div[@class='column__item thumbnail-picker__preview']
|
||||
|
||||
; Get element with Thumbnail and check if image upload was successful
|
||||
Try, Status := driver.findelementbyxpath(Xpath).Attribute("outerHTML") ;XPATH-ID & Tag
|
||||
if(!InStr(Status, "thumbs.odycdn.com")){
|
||||
Message = Thumbnail Upload Failed
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
||||
}
|
||||
|
||||
} else, {
|
||||
Message = Video Upload Failed. Odysee Requires a thumbnail for video uploads.
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
||||
Return
|
||||
}
|
||||
|
||||
|
||||
LivestreamTagsArray := StrSplit(LivestreamTags, ",")
|
||||
|
||||
Loop % LivestreamTagsArray.Length(){
|
||||
; ArrayItem := ARRAY[A_Index]
|
||||
Tag := LivestreamTagsArray[A_Index]
|
||||
Xpath = //input[@placeholder='gaming, crypto']
|
||||
|
||||
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=Tag)
|
||||
sleep, 500
|
||||
driver.FindElementByXPath(Xpath).SendKeys(driver.Keys.ENTER)
|
||||
sleep, 500
|
||||
|
||||
; Odysee accepts max of 5 tags
|
||||
if(A_Index = 5)
|
||||
break
|
||||
}
|
||||
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
/*
|
||||
*/
|
||||
|
||||
|
||||
Message = Submitting Livestream
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
||||
|
||||
; Click Create Button in the confirmation popup
|
||||
Xpath = //span[contains(text(),'Create')]
|
||||
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=1000)
|
||||
|
||||
; Click confirm button in the popup
|
||||
Xpath = //button[@aria-label='Confirm']//span[@class='button__content']
|
||||
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=1000)
|
||||
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
|
||||
Xpath = //div[@class='section']//li[1]
|
||||
Try ElementOuterHTML := driver.findelementbyxpath(Xpath).Attribute("outerHTML") ;XPATH-ID & Tag
|
||||
; Clipboard := OdyseeURLSLUG
|
||||
; Msgbox % "OdyseeURLSLUG: " OdyseeURLSLUG
|
||||
; Clipboard := ElementOuterHTML
|
||||
; Msgbox % "ElementOuterHTML: " ElementOuterHTML
|
||||
|
||||
|
||||
if(!InStr(ElementOuterHTML, OdyseeURLSLUG)){
|
||||
Message = Failed to Grab Livestream URL. Please copy and paste it manually.
|
||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
||||
return
|
||||
|
||||
}
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
Return
|
||||
Reference in New Issue
Block a user