Compare commits

..

3 Commits
2.97 ... main

@ -508,6 +508,7 @@ Gui, Add, Checkbox, y+7 vPocketNet Checked%PocketNetCheckStatus% , Bastyon
Gui, Add, Checkbox, y+7 vGettr Checked%GettrCheckStatus% gUpdateVars, Gettr Gui, Add, Checkbox, y+7 vGettr Checked%GettrCheckStatus% gUpdateVars, Gettr
Gui, Add, Checkbox, y+7 vMeWe Checked%MeWeCheckStatus% gUpdateVars, MeWe Gui, Add, Checkbox, y+7 vMeWe Checked%MeWeCheckStatus% gUpdateVars, MeWe
Gui, Add, Checkbox, y+7 vTumblr Checked%Tumblr% gUpdateVars, Tumblr Gui, Add, Checkbox, y+7 vTumblr Checked%Tumblr% gUpdateVars, Tumblr
Gui, Add, Checkbox, y+7 vSubstack Checked%Substack% gUpdateVars, SubStack
Gui, Font, Bold Gui, Font, Bold
@ -653,6 +654,7 @@ GuiControl,,Bastyon, 0
GuiControl,,Gettr, 0 GuiControl,,Gettr, 0
GuiControl,,MeWe, 0 GuiControl,,MeWe, 0
GuiControl,,Tumblr, 0 GuiControl,,Tumblr, 0
GuiControl,,Substack, 0
Return Return
UpdateVars: UpdateVars:
@ -799,6 +801,7 @@ IniWrite, %ShowTooltipProgress%, %SettingsIniFilepath%, SocialMediaPoster, ShowT
(Gettr = 1)?(PostedWebsites .= "Gettr|") : () (Gettr = 1)?(PostedWebsites .= "Gettr|") : ()
(Steemit = 1)?(PostedWebsites .= "Steemit|") : () (Steemit = 1)?(PostedWebsites .= "Steemit|") : ()
(Tumblr = 1)?(PostedWebsites .= "Tumblr|") : () (Tumblr = 1)?(PostedWebsites .= "Tumblr|") : ()
(SubStack = 1)?(PostedWebsites .= "SubStack|") : ()
Message = Starting SMP with: **V%ScriptVersion%** `nTo sites: %PostedWebsites% `nWith Title: **%PostTitle%** `nWith Body:%PostBody% `nWith Tags: %PostTags% Message = Starting SMP with: **V%ScriptVersion%** `nTo sites: %PostedWebsites% `nWith Title: **%PostTitle%** `nWith Body:%PostBody% `nWith Tags: %PostTags%
SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,DiscordErrorLogging") SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,DiscordErrorLogging")
@ -876,6 +879,10 @@ Gosub, PostToPocketNet
if(Gettr) if(Gettr)
Gosub, PostToGettr Gosub, PostToGettr
if(SubStack)
Gosub, PostToSubStack
CurrentSite := CurrentSite :=
Message = Social Media Posting Complete Message = Social Media Posting Complete
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
@ -981,6 +988,9 @@ Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Bastyon%
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, Tumblr Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, Tumblr
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Tumblr% Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Tumblr%
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, SubStack
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %SubStack%
; Gui, Font, s9 ; Gui, Font, s9
/* /*
@ -1075,6 +1085,10 @@ Return
;------------------------------------------------ ;------------------------------------------------
#include %A_ScriptDir%\Modules\Post-To-Tumblr.ahk #include %A_ScriptDir%\Modules\Post-To-Tumblr.ahk
; SubStack
;------------------------------------------------
#include %A_ScriptDir%\Modules\Post-To-Substack.ahk
; Minds ; Minds
;------------------------------------------------ ;------------------------------------------------

@ -146,14 +146,37 @@ sleep, 500
driver.FindElementByXPath(Xpath).SendKeys("`n`n") driver.FindElementByXPath(Xpath).SendKeys("`n`n")
sleep, 500 sleep, 500
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=PostBody) if(InStr(PostBody, "http")){
if(Status){ StrLengthOfPost := StrLen(PostBody)
SaveOrPostProgress(Message:="Body has hyperlink, Inputting text key by key",PostType:="Tooltip,ErrorLoggingTextFile")
Loop % StrLengthOfPost{
Current_Char := SubStr(PostBody, A_index, 1)
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=1,SleepLength:=20,StringTextContent:=Current_Char)
if(Status){
Message = Failed to Input Text
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
SaveDriverURLOFErrorPage()
Return
}
}
}
else, {
SaveOrPostProgress(Message:="Body has no hyperlink, inputting entire text body into element.",PostType:="Tooltip,ErrorLoggingTextFile")
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=PostBody)
if(Status){
Message = Failed to input Post Body Message = Failed to input Post Body
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
SaveDriverURLOFErrorPage() SaveDriverURLOFErrorPage()
Return Return
}
} }
; check if value was input ; check if value was input
js = return document.querySelector("trix-editor[role='textbox']").innerText js = return document.querySelector("trix-editor[role='textbox']").innerText
try, Status := driver.executeScript(js) try, Status := driver.executeScript(js)

@ -0,0 +1,153 @@
; -------------------------------Minds-------------------------------
PostToSubstack:
CurrentSite := "Substack"
Message = Navigating to Post Creationg Page
SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
IniRead, SubstackProfileURL, %SettingsIniFilepath%, SocialMediaPoster, SubstackProfileURL, %A_Space%
if(SubstackProfileURL = ""){
Message = SubstackProfileURL is blank. Please update Settings.ini under [SocialMediaPoster]`nSubstackProfileURL=https://PROFILENAME.substack.com/publish/home
IniWrite,%A_Space%,%SettingsIniFilepath%, SocialMediaPoster, SubstackProfileURL
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
URLAttempt := NavigateFromBaseURLTo(SubstackProfileURL)
if(URLAttempt = "Failed")
Return
Status := CheckCurrentTabForCurrentSite()
if(Status){
Return
}
; Check Login Status
; ------------------------------------------------
Message = Checking Login Status
SaveOrPostProgress(Message,PostType:="Tooltip")
; Check for New Post button at the top right of page
Xpath = (//button[@id='trigger7'])[1]
try ElementInnerText := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
if(!InStr(ElementInnerText, "New post")){
Message = New post button not found. Please check login status. If already logged in, the xpath of the element might have changed.
SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
SaveDriverURLOFErrorPage()
Return
}
; Start Text Post
; ------------------------------------------------
Message = Creating New Post
SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
; click new post button
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
if(status){
Message = Failed to click New post button
SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
; click new note button in popup menu
Xpath = //div[contains(text(),'New note')]
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
if(status){
Message = Failed to click New note button
SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
; Input Title and Text
; ------------------------------------------------
; Input Text Box, this is awful and will probably break in the future, but works for now.
; @todo: Figure out relative xpath, SelectorHub is not providing anything useful.
Xpath = /html[1]/body[1]/div[4]/div[1]/div[1]/div[1]/div[1]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[2]/div[1]/div[1]
try, CurrentText := driver.findelementbyxpath(Xpath).Attribute("innerText") ;XPATH Inner Text
if(strlen(CurrentText) > 1){
Message = Exiting. Functionality to clear out previous failed posts is a WIP.
SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
SaveDriverURLOFErrorPage()
Return
}
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=PostTitleAndBody, ClearElement:=0)
if(Status){
Message = Failed to input Post Title/Body
SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
; Attach Image
; ------------------------------------------------
if(ImageAttachmentFilepath){
Message = Attaching Image
SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
Xpath = (//input[@accept='image/*,.heic'])[1]
; Attach image
Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=ImageAttachmentFilepath, ClearElement:=0)
if(status){
Message = Failed to attach image
SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
}
; driver.FindElementByXPath(Xpath).SendKeys(PostTitleAndBody)
sleep, 1000
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
}
Xpath = //button[normalize-space()='Post']
Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000)
if(status){
Message = Failed to Click Post Now Button
SaveOrPostProgress(Message,PostType:=",ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
Return
}
IniWrite, Successful, %StatusFileFilePath%, Status, %CurrentSite%
AddToTotalPostsPostedCount()
PauseBetweenPosts()
DevModeMsgBox("done!")
Message = Post Publish Successful
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
Return
; -------------------------------/Minds-------------------------------

@ -1,2 +1,2 @@
[Social-Media-Poster] [Social-Media-Poster]
Version=2.95 Version=2.99

Loading…
Cancel
Save