Compare commits
No commits in common. 'main' and '1.1' have entirely different histories.
Binary file not shown.
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 101 KiB |
Binary file not shown.
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 50 KiB |
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 93 KiB |
@ -1,84 +0,0 @@
|
|||||||
;---ENVIRONMENT---------------------------------------------------------------------
|
|
||||||
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
|
|
||||||
;#Warn ; Enable warnings to assist with detecting common errors.
|
|
||||||
;DetectHiddenWindows, On
|
|
||||||
#SingleInstance, Force
|
|
||||||
DetectHiddenWindows, ON
|
|
||||||
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
|
|
||||||
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
|
|
||||||
;SetKeyDelay, 500
|
|
||||||
CoordMode, ToolTip, Screen
|
|
||||||
CoordMode, Mouse, Screen
|
|
||||||
; #NoTrayIcon
|
|
||||||
; Menu, Tray, Icon, RMScriptManager.ico
|
|
||||||
|
|
||||||
;---Notes/Extra Info/#Includes------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
;---VARIABLES-----------------------------------------------------------------------
|
|
||||||
ScriptName = Freedomain Livestream Scheduler
|
|
||||||
|
|
||||||
AHKFilepath = %A_ScriptDir%\%ScriptName%.ahk
|
|
||||||
Exefilepath = %A_ScriptDir%\%ScriptName%.exe
|
|
||||||
icopath = %A_ScriptDir%\Assets\Icon.ico
|
|
||||||
VersionIniFP = %A_ScriptDir%\Version.ini
|
|
||||||
|
|
||||||
|
|
||||||
;---MAIN SCRIPT---------------------------------------------------------------------
|
|
||||||
|
|
||||||
; Bump the version number in the version.ini file
|
|
||||||
IniRead, VersionNumber, %VersionIniFP%, %ScriptName%, Version, 0.0 ; , Filename, Section, Key [, Default]
|
|
||||||
VersionNumber += .01
|
|
||||||
VersionNumber := SubStr(VersionNumber, 1, 4)
|
|
||||||
|
|
||||||
IniWrite, %VersionNumber%, %VersionIniFP%,%ScriptName%, Version
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; Kill any active intances of the uploaders so the .exe file can be overwriten by the compilation
|
|
||||||
process, close, %ScriptName%.exe
|
|
||||||
|
|
||||||
sleep, 1000
|
|
||||||
|
|
||||||
; Delete the .exe file so it can be repalced
|
|
||||||
if(FileExist(Exefilepath)){
|
|
||||||
FileDelete, %Exefilepath%
|
|
||||||
if(ErrorLevel){
|
|
||||||
msgbox, failed to delete Exe file. Please delete manually and re-run the compiler.
|
|
||||||
ExitApp
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if(!FileExist(AHKFilepath)){
|
|
||||||
msgbox, %AHKFilepath% does not exist`nExiting
|
|
||||||
ExitApp
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if(!FileExist(icopath)){
|
|
||||||
msgbox, %icopath% does not exist`nExiting
|
|
||||||
ExitApp
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
run, %comspec% /c ""C:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exe" /in "%AHKFilepath%" /out "%exefilepath%" /icon "%icopath%""
|
|
||||||
|
|
||||||
|
|
||||||
; OldNotify(ScriptToCompile,"Compiled Successfully",5)
|
|
||||||
; sleep, 5000
|
|
||||||
ExitApp
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;---FUNCTIONS-----------------------------------------------------------------------
|
|
@ -1 +1 @@
|
|||||||
Subproject commit cf56ae8136def874793895733d595349b20d9c19
|
Subproject commit 2e0c81f34fa96f659153e5daba1e8be5ba28fd0c
|
@ -1,119 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
MediaManagerUpdate:
|
|
||||||
; ------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
CurrentSite := "Media Manager"
|
|
||||||
SaveOrPostProgress(Message:="Navigating to Website",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
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
Message = Updating Redirect URLs
|
|
||||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
||||||
|
|
||||||
; 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%
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(LocalsLivestreamURL)
|
|
||||||
UpdateMediaManagerRedirect(LocalsLiveRedirectURL, LocalsLivestreamURL)
|
|
||||||
else, {
|
|
||||||
Message = LocalsLivestreamURL is blank. Skipping
|
|
||||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
||||||
}
|
|
||||||
|
|
||||||
if(RumbleLivestreamURL)
|
|
||||||
UpdateMediaManagerRedirect(RumbleLiveRedirectURL, RumbleLivestreamURL)
|
|
||||||
else, {
|
|
||||||
Message = RumbleLivestreamURL is blank. Skipping
|
|
||||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if(OdyseeLivestreamURL)
|
|
||||||
UpdateMediaManagerRedirect(OdyseeLiveRedirectURL, OdyseeLivestreamURL)
|
|
||||||
else, {
|
|
||||||
Message = OdyseeLivestreamURL is blank. Skipping
|
|
||||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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)
|
|
||||||
|
|
||||||
|
|
||||||
; Snippet to for check:
|
|
||||||
if (ConfirmBeforeSubmit && ConfirmBeforeSubmitMsgboxFunc() != true) {
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
Sleep, 1000
|
|
||||||
Return "Success"
|
|
||||||
|
|
||||||
}
|
|
@ -1,154 +0,0 @@
|
|||||||
|
|
||||||
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
|
|
@ -1,98 +0,0 @@
|
|||||||
RumbleSetRTMP:
|
|
||||||
;------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
CurrentSite := "Rumble Studio"
|
|
||||||
|
|
||||||
Status := NavigateFromBaseURLTo("https://studio.rumble.com/settings/connections")
|
|
||||||
if(Status)
|
|
||||||
Return
|
|
||||||
|
|
||||||
try driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding
|
|
||||||
|
|
||||||
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
|
|
||||||
IndexMinusOne := A_index - 1
|
|
||||||
Xpath = (//div[@class='flex shrink-0 items-center gap-x-4'])[%A_index%]
|
|
||||||
XpathCheckbox = (//img[@alt='More options'])[%IndexMinusOne%]
|
|
||||||
|
|
||||||
|
|
||||||
try SecondaryPlatformCheckboxName := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
Status := Selenium_LoopToClickXpath(Xpath:=XpathCheckbox,NumOfLoops:=2,SleepLength:=1000)
|
|
||||||
if(Status){
|
|
||||||
Message = Failed to click into 3 dot menu for %SecondaryPlatformCheckboxName%
|
|
||||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
||||||
Return
|
|
||||||
}
|
|
||||||
|
|
||||||
; click Edit RTMP in the popup menu
|
|
||||||
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 %SecondaryPlatformCheckboxName%
|
|
||||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
; Input New RTMP Info
|
|
||||||
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:=SiteRTMPURL,ClearElement:=1)
|
|
||||||
Status := Selenium_LoopToSendValueToXpath(Xpath:=XpathStreamkey,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=SiteRTMPKey,ClearElement:=1)
|
|
||||||
|
|
||||||
; click save button
|
|
||||||
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 for %SecondaryPlatformCheckboxName% modified RMTP Settings
|
|
||||||
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
||||||
Return
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
RumbleCustomRTMPs := "Success"
|
|
||||||
IniWrite, %RumbleCustomRTMPs%, %PostStatusesFilepath%, Livestream,RumbleCustomRTMPs
|
|
@ -1,13 +1,3 @@
|
|||||||
# Freedomain-Livestream-Scheduler
|
# Freedomain-Livestream-Scheduler
|
||||||
|
|
||||||
Livestream Scheduler written for the [Freedomain Philosophy Show](https://freedomain.com/)
|
Livestream Scheduler written for the [Freedomain Philosophy Show](https://freedomain.com/)
|
||||||
|
|
||||||
![Alt text](Assets/Preview.png "Screenshot of Main Window")
|
|
||||||
|
|
||||||
## Features
|
|
||||||
Automated scheduling of livestreams on the following platforms using Selenium Chrome automation.
|
|
||||||
* Odysee
|
|
||||||
* Locals
|
|
||||||
* Rumble
|
|
||||||
|
|
||||||
- The RTMP information from each platform will be grabbed at the end of the schedule and then input into Rumble Studio for Livestreaming.
|
|
Binary file not shown.
Loading…
Reference in New Issue