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.
329 lines
12 KiB
Plaintext
329 lines
12 KiB
Plaintext
UploadPodcast:
|
|
;------------------------------------------------
|
|
CurrentSite := "Podcast"
|
|
PodcastTags := StrReplace(PodcastTags, " ,", ",")
|
|
PodcastTags := StrReplace(PodcastTags, ", ", ",")
|
|
PodcastTags := StrReplace(PodcastTags, " ", "-")
|
|
PodcastTags := StrReplace(PodcastTags, "--", "-")
|
|
PodcastTags := StrReplace(PodcastTags, "--", "-")
|
|
; Msgbox % "PodcastTags: " PodcastTags
|
|
|
|
|
|
Message = Starting Podcast Upload
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
|
|
IniRead, FDRRadioURL, %SettingsIniFilepath%, General, FDRRadioURL, %A_Space%
|
|
if(FDRRadioURL = ""){
|
|
Message = FDRRadioURL is blank.`nPlease add URL to Settings.ini file under:`n`n[General]`nFDRRadioURL=
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
MsgBox 0x10,, %Message%
|
|
Return
|
|
}
|
|
|
|
if(!InStr(FDRRadioURL, "/Podcasts/New")){
|
|
Message = FDRRadioURL is not formatted properly. Please make sure it ends with "https://....../manage/#/Podcasts/New"
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
}
|
|
|
|
IniRead, Username, %SettingsIniFilepath%, General, FDRRadioUN, %A_Space%
|
|
IniRead, Password, %SettingsIniFilepath%, General, FDRRadioPW, %A_Space%
|
|
|
|
if(Username = "" or Password = ""){
|
|
Message = Username and/or Password are blank.`nPlease add Login to Settings.ini file under:`n`n[General]`nFDRRadioUN=`nFDRRadioPW=
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
}
|
|
|
|
|
|
if(MP3AudioFilepath = ""){
|
|
MsgBox 0x33, Unable to Upload Podcast, No MP3 File Was Found/Selected. `nWould you like to select one now?
|
|
|
|
IfMsgBox Yes, {
|
|
FileSelectFile, MP3AudioFilepath,, %RootDirToStartIn%, Please Select MP3 File
|
|
if(ErrorLevel)
|
|
Return
|
|
} Else IfMsgBox No, {
|
|
Return
|
|
} Else IfMsgBox Cancel, {
|
|
Return
|
|
}
|
|
}
|
|
/*
|
|
Sublime Indentation Reset
|
|
*/
|
|
|
|
if(!InStr(MP3AudioFilepath, ".mp3")){
|
|
|
|
Message = Unable to upload podcast, no mp3 file was selected.
|
|
MsgBox 0x40, Error, %Message%
|
|
Return
|
|
}
|
|
|
|
|
|
; Message = Grabbing MP3 file data
|
|
; SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
|
|
; https://www.autohotkey.com/boards/viewtopic.php?t=59882
|
|
Message = Calculating MP3 File Size and Length
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
Obj := Filexpro(MP3AudioFilepath,,
|
|
, "Length"
|
|
, "Size" )
|
|
MP3AudioFilesize := obj["Size"]
|
|
MP3AudioLength := obj["Length"]
|
|
; MsgBox % obj["Size"]
|
|
|
|
AudioLengthArray := StrSplit(MP3AudioLength,":")
|
|
|
|
Message = MP3 Audio Length: %MP3AudioLength%
|
|
SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
; AudioLength_Seconds := ((AudioLengthArray[1] * 60 ) * 60) + (AudioLengthArray[2] * 60) + AudioLengthArray[3]
|
|
; Message = MP3 Audio Length in Seconds: %AudioLength_Seconds%
|
|
; SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
AudioLength_Hours := AudioLengthArray[1]
|
|
AudioLength_Minutes := AudioLengthArray[2]
|
|
AudioLength_Seconds := AudioLengthArray[3]
|
|
|
|
; Message = AudioLength_Hours: %AudioLength_Hours%`nAudioLength_Minutes: %AudioLength_Minutes%`nAudioLength_Seconds: %AudioLength_Seconds%
|
|
; SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
; AudioLength_SecondsOriginal := AudioLength_Seconds
|
|
; AudioLength_Seconds := (AudioLength_Minutes * 60) + ((AudioLength_Hours * 60) * 60) + AudioLength_Seconds
|
|
|
|
; Msgbox % "AudioLength_Hours: " AudioLength_Hours
|
|
; Msgbox % "AudioLength_Minutes: " AudioLength_Minutes
|
|
; Msgbox % "AudioLength_Seconds: " AudioLength_Seconds
|
|
; Msgbox % "AudioLength_SecondsOriginal: " AudioLength_SecondsOriginal
|
|
|
|
FileGetSize, OutputVar, %MP3AudioFilepath%, K ; Retrieve the size in Kbytes.
|
|
FIlesizeInBytes := OutputVar * 1024
|
|
|
|
|
|
Message = Inputting Podcast Information
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
|
|
Status := NavigateFromBaseURLTo(FDRRadioURL)
|
|
if(Status)
|
|
Return
|
|
|
|
|
|
Status := CheckForAlerts()
|
|
if(Status){
|
|
|
|
}
|
|
|
|
Message = Logging in
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
Xpath = //input[@id='email']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=Username)
|
|
if(!Status){ ; if inputting email did NOT fail, then we are on the login page, input the password and then click login.
|
|
Xpath = //input[@id='password']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=Password)
|
|
|
|
Xpath = //a[@id='loginButton']
|
|
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
|
|
|
driver.executeScript("return document.readyState").equals("complete") ; wait until page loads completely before proceeding
|
|
|
|
sleep, 2000
|
|
|
|
try driver.Get(FDRRadioURL) ;Open selected URL
|
|
catch e {
|
|
Message = Upload Failed (E#7295)`nUnable to Navigate to Upload Page`nChrome was closed or Internet down possibly?
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
|
|
}
|
|
}
|
|
|
|
|
|
Message = Checking URL for /Podcasts/New string
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
try, CurrentURL := driver.url()
|
|
if(!InStr(CurrentURL, "/Podcasts/New")){
|
|
Message = Re-Navigating to /Podcast/new URL
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
try driver.Get(FDRRadioURL)
|
|
|
|
}
|
|
|
|
|
|
|
|
Message = Waiting for Page to Load
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
Xpath = //input[@id='num']
|
|
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=60,SleepLength:=1000)
|
|
if(Status){
|
|
Message = New Podcast Page did not load after 60 seconds. Check Login Status
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
Return
|
|
}
|
|
|
|
Message = Inputting Podcast Info
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
; Click the "Is Active?" Checkbox
|
|
Xpath = //input[@id='isActive']
|
|
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
|
|
|
; Input Podcast Number
|
|
Xpath = //input[@id='num']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=PodcastNumber)
|
|
|
|
; Input Podcast Title
|
|
Xpath = //input[@id='title']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=VideoTitle)
|
|
|
|
; INput Audio URL
|
|
Xpath = //input[@id='url-audio']
|
|
SplitPath, MP3AudioFilepath, MP3AudioNameWithExt
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=MP3AudioNameWithExt)
|
|
|
|
; INput thumbnail URL
|
|
Xpath = //input[@id='url-thumbnail']
|
|
SplitPath, VideoThumbFilepath, VideoThumbnailFilenameWithExt
|
|
ThumbnailURL = https://cdn.freedomainradio.com/%VideoThumbnailFilenameWithExt%
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=ThumbnailURL)
|
|
|
|
; Input BitChute URL
|
|
Xpath = //input[@id='url-bitchute']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=BitChuteURL)
|
|
|
|
; Input Brighteon URL
|
|
Xpath = //input[@id='url-brighteon']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=BrighteonURL)
|
|
|
|
; Input DailyMotion URL
|
|
Xpath = //input[@id='url-dailymotion']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=DailyMotionURL)
|
|
|
|
; Input LBRY URL
|
|
Xpath = //input[@id='url-lbry']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=OdyseeVideoURL)
|
|
|
|
; Input LBRY URL
|
|
Xpath = //input[@id='url-locals']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=LocalsURL)
|
|
|
|
; Input Rumble URL
|
|
Xpath = //input[@id='url-rumble']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=RumbleURL)
|
|
|
|
|
|
; Soundcloud but actually LBRY Audio URL
|
|
Xpath = //input[@id='url-lbry-audio']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=OdyseeAudioURL)
|
|
|
|
|
|
; INput filesize
|
|
Xpath = //input[@id='fileSize']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=FIlesizeInBytes)
|
|
|
|
|
|
Xpath = //input[@id='lengthHours']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=AudioLength_Hours)
|
|
|
|
Xpath = //input[@id='lengthMinutes']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=AudioLength_Minutes)
|
|
|
|
Xpath = //input[@id='lengthSeconds']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=AudioLength_Seconds)
|
|
; Message = Audio Length in Seconds that got input: %AudioLength_Seconds%
|
|
; SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
Message = Inputting Description
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
Xpath = //textarea[@id='description']
|
|
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
|
|
|
; Input Description
|
|
JSVideoDescription := FormatTextToJSText(VideoDescription)
|
|
|
|
js = document.getElementById('description').value = "%JSVideoDescription%";
|
|
try driver.executeScript(js) ;Executes a Javascript on the webpage, mostly used for buttons.
|
|
|
|
|
|
Message = Inputting Tags
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
Podcasttags := StrReplace(Podcasttags, " , ", ",")
|
|
Podcasttags := StrReplace(Podcasttags, " ,", ",")
|
|
Podcasttags := StrReplace(Podcasttags, ", ", ",")
|
|
|
|
ArrayOfPodcastTags := StrSplit(Podcasttags,",")
|
|
LengthOfArrayOfPodcastTags := ArrayOfPodcastTags.Length() ; Save total number of items in the array
|
|
|
|
try pagehtml := driver.pagesource
|
|
; Msgbox % "pagehtml: " pagehtml
|
|
Loop, %LengthOfArrayOfPodcastTags% {
|
|
Tag := ArrayOfPodcastTags[A_Index] ; find value from position in array
|
|
|
|
SpanID = title">%Tag%</span></div></li><li><div id="_easyui_tree_
|
|
|
|
if(InStr(pagehtml, SpanID)){ ; if tag found in page, do this
|
|
number := StrSplit(pagehtml, SpanID)
|
|
Number := Number[2]
|
|
; Msgbox % "number: " number
|
|
|
|
var = " class=
|
|
Number := StrSplit(Number, var)
|
|
|
|
Number := Number[1]
|
|
; Msgbox % "Grabbed Number from page source: " Number
|
|
Number := Number - 1
|
|
|
|
Message = Tag: %Tag% is tag number %number% in the list.
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
if(number = "" or Number < 0){
|
|
Message = Tag Number for "%tag%" is blank or less than 0. Skipping.
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
Continue
|
|
}
|
|
|
|
Xpath = //div[@id='_easyui_tree_%number%']//span[@class='tree-checkbox tree-checkbox0']
|
|
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
|
|
|
}
|
|
else, { ; otherwise input the tag and click the plus button. It will automatically get checked when the plus button is clicked
|
|
Xpath = //input[@id='tagSearch']
|
|
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=Tag)
|
|
|
|
Xpath = //a[@id='addPodcastTagInPodcastEdit']
|
|
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
|
|
|
|
Loop, 10 {
|
|
Xpath = //input[@id='tagSearch']
|
|
|
|
try CurrentValue := driver.findelementbyxpath(Xpath).Attribute("value") ;XPath: ID=site-title & span tag
|
|
if(CurrentValue != "")
|
|
{
|
|
sleep, 1000
|
|
Continue
|
|
}
|
|
break ; otherwise break out of the loop
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
Sublime Indentation Reset
|
|
*/
|
|
|
|
Message = Input Complete! `nPlease Confirm and click Final "Save" Button on Podcast Page
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
|
|
|
|
sleep, 5000
|
|
|
|
CurrentSite :=
|
|
ToolTip
|
|
Return
|