From 3a439e7300eaa03f1b2854a0dab8fd7ea2ecffca Mon Sep 17 00:00:00 2001 From: Yuriy Date: Fri, 17 May 2024 19:37:41 -0400 Subject: [PATCH] added workaround to paste formatting bug, added confirmation setting and implemented check on all selenium sites --- Freedomain Social Media Poster.ahk | 73 +++++++------- Lib/Freedomain-Posters-Shared-Functions | 2 +- Modules/Miscellaneous-Functions.ahk | 28 ------ Modules/Post-To-Bastyon.ahk | 111 ++++++++++----------- Modules/Post-To-Gab.ahk | 7 ++ Modules/Post-To-Gettr.ahk | 7 ++ Modules/Post-To-LinkedIn.ahk | 58 ++++++----- Modules/Post-To-Locals.ahk | 36 +++---- Modules/Post-To-MeWe.ahk | 19 +--- Modules/Post-To-Minds.ahk | 5 + Modules/Post-To-Steemit.ahk | 122 +++++++++++------------- Modules/Post-To-Subscribestar.ahk | 109 ++++++++++----------- Modules/Post-To-Twetch.ahk | 15 +++ 13 files changed, 272 insertions(+), 320 deletions(-) diff --git a/Freedomain Social Media Poster.ahk b/Freedomain Social Media Poster.ahk index c318db3..29a5fae 100644 --- a/Freedomain Social Media Poster.ahk +++ b/Freedomain Social Media Poster.ahk @@ -139,6 +139,7 @@ IniRead, TelegramBotChatID, %SettingsIniFilepath%, SocialMediaPoster, TelegramBo IniRead, DiscordErrorLoggingWebhookBotURL, %SettingsIniFilepath%, SocialMediaPoster, DiscordErrorLoggingWebhookBotURL, %A_Space% IniRead, DiscordParlerWebhookURL, %SettingsIniFilepath%, SocialMediaPoster, DiscordParlerWebhookURL, %A_Space% IniRead, ChromeFilepath, %SettingsIniFilepath%, SocialMediaPoster, ChromeFilepath, %A_Space% +IniRead, ConfirmBeforeSubmit, %SettingsIniFilepath%, %ScriptSettingsSection%, ConfirmBeforeSubmit, 1 @@ -280,10 +281,6 @@ if(StrLen(ErrorLoggingDirectory) > 5 and !InStr(ErrorLoggingDirectory, ".exe")){ ; Append bitchute url to bottom of description PostBody := PostBody . "`n`n" . PodcastURL . VideoURL - ; Msgbox % "PostTitle: " PostTitle - ; Msgbox % "PostBody: " PostBody - - Discord := 0 Telegram := 0 } @@ -314,12 +311,7 @@ if(StrLen(ErrorLoggingDirectory) > 5 and !InStr(ErrorLoggingDirectory, ".exe")){ (Locals != "")?(LocalsCheckStatus := 0) : (LocalsCheckStatus := 1) (LinkedIN != "")?(LinkedINCheckStatus := 0) : (LinkedINCheckStatus := 1) (Twetch != "")?(TwetchCheckStatus := 0) : (TwetchCheckStatus := 0) -; (ThinkSpot != "")?(ThinkSpotCheckStatus := 0) : (ThinkSpotCheckStatus := 0) -; (Flote != "")?(FloteCheckStatus := 0) : (FloteCheckStatus := 0) -; (Pintrest != "")?(PintrestCheckStatus := 0) : (PintrestCheckStatus := 1) -; (Parler != "")?(ParlerCheckStatus := 0) : (ParlerCheckStatus := 0) (PocketNet != "")?(PocketNetCheckStatus := 0) : (PocketNetCheckStatus := 1) -; (Tumblr != "")?(TumblrCheckStatus := 0) : (TumblrCheckStatus := 1) @@ -335,7 +327,6 @@ if(TestingMode){ ; Easy testing for Yuriy LinkedINCheckStatus := 0 MeWeCheckStatus := 0 TwetchCheckStatus := 0 - ; ThinkSpotCheckStatus := 0 PocketNetCheckStatus := 0 } @@ -391,21 +382,25 @@ if(DevMode){ Gui, Font, s%GUINormalFontSize% Gui, Font, Bold -Gui, Add, Text, x%Marginspace% y+5 w%EditBoxWidth%, Post Title +Gui, Add, Text, x%Marginspace% y+5, Post Title +Gui, Font, s8 +Gui, Font, Normal Gui, Font, s8 -Gui, Add, Checkbox, xp+120 yp+10 vBoldTitleWAPI Checked%BoldTitleCheckStatus% gUpdateVars,Bold Title on Discord/Telegram -Gui, Add, Checkbox, xp+220 yp+0 vNewLineBetweenTitle Checked%SpaceBetweenTitleBodyCheckStatus% gUpdateVars,Blank Line Between Title+Body +Gui, Add, Button, x+%MarginSpace% gPasteClipboardToEditBox vPasteClipboardToSMPTitle, Paste Clipboard +Gui, Add, Checkbox, xp+120 vBoldTitleWAPI Checked%BoldTitleCheckStatus% gUpdateVars,Bold Title on Discord/Telegram +Gui, Add, Checkbox, xp+220 vNewLineBetweenTitle Checked%SpaceBetweenTitleBodyCheckStatus% gUpdateVars,Blank Line Between Title+Body Gui, Font, Normal Gui, Font, s%GUINormalFontSize% -Gui, Add, Edit, x%MarginSpace% y+3 w%EditBoxWidth% vPostTitle gUpdateCharCount h75, %PostTitle% +Gui, Add, Edit, x%MarginSpace% y+%marginspace% w%EditBoxWidth% vPostTitle gUpdateCharCount h50, %PostTitle% Gui, Font, Bold -Gui, Add, Text,w%EditBoxWidth%, Post Body +Gui, Add, Text,, Post Body Gui, Font, Normal - +Gui, Font, s8 +Gui, Add, Button, x+%MarginSpace% gPasteClipboardToEditBox vPasteClipboardToSMPBody, Paste Clipboard Gui, Font, s%GUINormalFontSize% -Gui, Add, Edit, x%MarginSpace% y+2 w%EditBoxWidth% h150 vPostBody gUpdateCharCount, %PostBody% +Gui, Add, Edit, x%MarginSpace% y+2 w%EditBoxWidth% h200 vPostBody gUpdateCharCount, %PostBody% ; Gui, font, color, cblack @@ -475,19 +470,15 @@ Gui, Add, GroupBox,r4 x%PlatformsGroupBoxXLocation% y20 w300, Settings Gui, Font, s11 Gui, Font, Normal Gui, Add, Checkbox, xp+10 yp+25 vAutoUpdateCheck Checked%AutoUpdateCheckCheckStatus% gUpdateVars, Auto Update Check -Gui, Add, Checkbox, vReuseTabs Checked%ReuseTabsCheckStatus% gUpdateVars, Try to Re-Use Tabs -; Gui, Add, Checkbox, vNewChromeWindow Checked%AutoUpdateCheckCheckStatus% gUpdateVars, Create New Chrome Window (WIP) +; Gui, Add, Checkbox, vReuseTabs Checked%ReuseTabsCheckStatus% gUpdateVars, Try to Re-Use Tabs Gui, Add, Checkbox,vShowTooltipProgress Checked%ShowTooltipProgressCheckStatus% gUpdateVars, Show Tooltip of Progress -; Gui, Add, Checkbox, vAutoUpdateCheck Checked%AutoUpdateCheckCheckStatus% gUpdateVars, Auto Update Check Gui, Add, Checkbox, vSaveTagsBetweenPosts Checked%SaveTagsBetweenPostsCheckStatus% gUpdateVars, Save Tags Between Posts -Gui, Add, Checkbox, vPauseBetweenPosts Checked%PauseBetweenPostsCheckCheckStatus% gUpdateVars, Pause Briefly Between Posts +Gui, Add, Checkbox, vConfirmBeforeSubmit checked%ConfirmBeforeSubmit%, Confirm Before Submit + +; Gui, Add, Checkbox, vPauseBetweenPosts Checked%PauseBetweenPostsCheckCheckStatus% gUpdateVars, Pause Briefly Between Posts ; Gui, Add, Checkbox, vAutoRestartChromeDebug Checked%PauseBetweenPostsCheckCheckStatus% gUpdateVars, Auto Restart Chrome in Debug Mode Gui, Font, s%GUINormalFontSize% - - - - Gui, Font, Bold Gui, Add, GroupBox,r6.4 x%PlatformsGroupBoxXLocation% y210 w300, Platforms Gui, Font, Normal @@ -530,7 +521,8 @@ gui, font, normal Gui, Add, StatusBar,, Total Posts Posted: %TotalPostsPosted% | Total Run Time: %TotalRunTime% Seconds | ; easier to just let the gui size be as needed instead of trying to recalculate the size each time an element is added -Gui, Show, x%XPosition% y%YPosition% ,%FullScriptName% ; , w%GuiWidth%, %ScriptName% +; Gui, Show, x%XPosition% y%YPosition% ,%FullScriptName% ; , w%GuiWidth%, %ScriptName% +Gui, Show, ,%FullScriptName% ; , w%GuiWidth%, %ScriptName% ControlFocus, Edit1, %FullScriptName% @@ -564,6 +556,9 @@ Return ;---Misc GoSubs--- ;------------------------------------------------ + + + SaveAsTemplate: TemplateDirectory = %A_ScriptDir%\Lib\Templates if(!FileExist(TemplateDirectory)){ @@ -713,19 +708,12 @@ UpdateCharCount: Gui, Submit, NoHide Count := StrLen(PostBody) -/*if(Count > 256){ - GuiControl,, Twetch, 0 - -} -*/ - GuiControl,, CharCount, %Count% Return TryFailedAgain: -; msgbox %ErrorLoggingDirectory% run, %A_ScriptFullPath% "LastPost" ExitApp ; Return @@ -751,16 +739,8 @@ Return PostPost: - -WinGetPos, XPosition, YPosition, , , A -IniWrite, %XPosition%, %SettingsIniFilepath%, %ScriptSettingsSection%, XPosition -IniWrite, %YPosition%, %SettingsIniFilepath%, %ScriptSettingsSection%, YPosition - - Gui, Submit -; Msgbox % "PostTags: " PostTags - if(InStr(PostTags, "http")){ Message = Post Tags contain "http". Please edit and remove the url and try again. Msgbox, 4096, Error, %Message% @@ -792,6 +772,11 @@ if(InStr(ErrorLoggingDirectory, "\Templates\") OR ErrorLoggingDirectory = "" OR } ; +; Save Script Settings to File +; ------------------------------------------------ +WinGetPos, XPosition, YPosition, , , A +IniWrite, %XPosition%, %SettingsIniFilepath%, %ScriptSettingsSection%, XPosition +IniWrite, %YPosition%, %SettingsIniFilepath%, %ScriptSettingsSection%, YPosition IniWrite, %BoldTitleWAPI%, %SettingsIniFilepath%, SocialMediaPoster, BoldTitleWAPI IniWrite, %NewLineBetweenTitle%, %SettingsIniFilepath%, SocialMediaPoster, NewLineBetweenTitle @@ -802,6 +787,9 @@ IniWrite, %SaveTagsBetweenPosts%, %SettingsIniFilepath%, SocialMediaPoster, Save IniWrite, %PauseBetweenPosts%, %SettingsIniFilepath%, SocialMediaPoster, PauseBetweenPosts IniWrite, %ErrorLoggingDirectory%, %SettingsIniFilepath%, %ScriptSettingsSection%, LastPost +IniWrite, %ConfirmBeforeSubmit%, %SettingsIniFilepath%, %ScriptSettingsSection%, ConfirmBeforeSubmit + +; Used by Post Scheduler, filepath changes between script updates IniWrite, %A_ScriptFullPath%, %SettingsIniFilepath%, Filepaths, SocialMediaPosterFilepath @@ -1221,3 +1209,6 @@ Return ; Misc Functions ;------------------------------------------------ #include %A_ScriptDir%\Modules\Miscellaneous-Functions.ahk + +; used by update checker and paste from clipboard +#include %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\Shared-GoTos.ahk diff --git a/Lib/Freedomain-Posters-Shared-Functions b/Lib/Freedomain-Posters-Shared-Functions index b8ffb10..b378de8 160000 --- a/Lib/Freedomain-Posters-Shared-Functions +++ b/Lib/Freedomain-Posters-Shared-Functions @@ -1 +1 @@ -Subproject commit b8ffb10db187c70219c594ddfe7cdebc6885d552 +Subproject commit b378de8106a19e9b674fe26d146a2fc645da4a93 diff --git a/Modules/Miscellaneous-Functions.ahk b/Modules/Miscellaneous-Functions.ahk index f416cf0..30d6998 100644 --- a/Modules/Miscellaneous-Functions.ahk +++ b/Modules/Miscellaneous-Functions.ahk @@ -30,34 +30,6 @@ ReadWebsiteStatuses(){ ; IniRead, Tumblr, %StatusFileFilePath%, Status, Tumblr, %A_Space% } -; -------------------------------CreateErrorLoggingFiles------------------------------- -CreateErrorLoggingFiles(Path := ""){ - FormatTime, TodayDate, YYYYMMDDHH24MISS, yyyyMMdd_hhmmss - - ErrorLoggingDirectory := Path - - if(Path = ""){ - ErrorLoggingDirectory := A_ScriptDir . "\Lib\ErrorLogging" - ; If directory for error logging doesn't exist, create it - if(!FileExist(ErrorLoggingDirectory)) - FileCreateDir, %ErrorLoggingDirectory% - - ErrorLoggingDirectory := ErrorLoggingDirectory . "\" . TodayDate . "_FSMP" - } - ; Msgbox % "ErrorLoggingDirectory: " ErrorLoggingDirectory - FileCreateDir, %ErrorLoggingDirectory% - - ; Create variables with filepaths that content will be saved to. - ErrorLoggingFilePath := ErrorLoggingDirectory . "\" . "ErrorLogging.txt" - StatusFileFilePath := ErrorLoggingDirectory . "\" . "PostStatus.ini" - PostTitleFilePath := ErrorLoggingDirectory . "\" . "PostTitle.txt" - PostBodyFilePath := ErrorLoggingDirectory . "\" . "PostBody.txt" - - ; Msgbox % "ErrorLoggingDirectory: " ErrorLoggingDirectory - Return -} -; -------------------------------/CreateErrorLoggingFiles------------------------------- - AddToTotalPostsPostedCount(){ IniRead, TotalPostsPosted, %SettingsIniFilepath%, SocialMediaPoster, TotalPostsPosted, 0 TotalPostsPosted += 1 diff --git a/Modules/Post-To-Bastyon.ahk b/Modules/Post-To-Bastyon.ahk index 1491c3f..0794ce1 100644 --- a/Modules/Post-To-Bastyon.ahk +++ b/Modules/Post-To-Bastyon.ahk @@ -100,77 +100,70 @@ if(Status = ""){ sleep, 2000 +/* +*/ +if(ImageAttachmentFilepath != ""){ + ; Message = Attaching Image + ; SaveOrPostProgress(Message:=Message,PostType:="Tooltip") - if(ImageAttachmentFilepath != ""){ - ; Message = Attaching Image - ; SaveOrPostProgress(Message:=Message,PostType:="Tooltip") + ; Click the "Image" button + SaveOrPostProgress(Message:="Attaching Image",PostType:="Tooltip,ErrorLoggingTextFile") - ; Click the "Image" button - SaveOrPostProgress(Message:="Attaching Image",PostType:="Tooltip,ErrorLoggingTextFile") -/* Xpath = //div[@title='Add Images to Post'] - Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000) - if(Status){ - Message = Failed to Click "Attach Image" Button - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return - } - */ - - - - ; sleep, 5000 - - Xpath = //input[@type='file'] - Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=3,SleepLength:=5000,StringTextContent:=ImageAttachmentFilepath) - if(Status){ - Message = Failed to Attach Image - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return - } + Xpath = //input[@type='file'] + Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=3,SleepLength:=5000,StringTextContent:=ImageAttachmentFilepath) + if(Status){ + Message = Failed to Attach Image + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return + } - SaveOrPostProgress(Message:="Waiting 10 Seconds For Image to Upload",PostType:="Tooltip,ErrorLoggingTextFile") + SaveOrPostProgress(Message:="Waiting 10 Seconds For Image to Upload",PostType:="Tooltip,ErrorLoggingTextFile") - sleep, 10000 + sleep, 10000 +} - } +; Input Tags +Xpath = //div[@class='search fastSearchShow']//input[@id='text'] +TagsArray := StrSplit(PostTags, ",") +TagsArrayLength := TagsArray.Length() ; Save total number of items in the array +loop, %TagsArrayLength% { + Tag := TagsArray[A_Index] + Tag := StrReplace(Tag, " ", "") + DevModeMsgBox(Tag) + ; Tag = %Tag% + Xpath = //input[@placeholder='Categories and tags'] + try driver.FindElementByXPath(Xpath).SendKeys(Tag) + catch e { + Message = Failed to input tag: %tag% + SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + } - ; Input Tags - Xpath = //div[@class='search fastSearchShow']//input[@id='text'] - TagsArray := StrSplit(PostTags, ",") - TagsArrayLength := TagsArray.Length() ; Save total number of items in the array - loop, %TagsArrayLength% { - Tag := TagsArray[A_Index] - Tag := StrReplace(Tag, " ", "") - DevModeMsgBox(Tag) - ; Tag = %Tag% - Xpath = //input[@placeholder='Categories and tags'] - try driver.FindElementByXPath(Xpath).SendKeys(Tag) - catch e { - Message = Failed to input tag: %tag% - SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - } + try driver.FindElementByXPath(Xpath).SendKeys(driver.Keys.ENTER) - try driver.FindElementByXPath(Xpath).SendKeys(driver.Keys.ENTER) + if(A_index = 5) + Break +} - if(A_index = 5) - Break - } +SaveOrPostProgress(Message:="Submitting Post",PostType:="Tooltip,ErrorLoggingTextFile") - SaveOrPostProgress(Message:="Submitting Post",PostType:="Tooltip,ErrorLoggingTextFile") +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 +} - ; CLick the post button - Xpath = //button[normalize-space()='Post'] - loop, 3 { - try driver.FindElementByXPath(Xpath).click() - sleep, 1500 - } - ; Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=2000) - ; sleep, 2000 - ; Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=2000) +; CLick the post button +Xpath = //button[normalize-space()='Post'] +loop, 3 { + try driver.FindElementByXPath(Xpath).click() + sleep, 1500 +} +; Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=2000) +; sleep, 2000 +; Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=2000) /* if(Status){ Message = Failed to Submit Post SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") diff --git a/Modules/Post-To-Gab.ahk b/Modules/Post-To-Gab.ahk index 656e1ad..18ae30a 100644 --- a/Modules/Post-To-Gab.ahk +++ b/Modules/Post-To-Gab.ahk @@ -88,6 +88,13 @@ if(Status){ ; Click the final "post" button SaveOrPostProgress(Message:="Submitting Post",PostType:="Tooltip,ErrorLoggingTextFile") +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 = //*[@id="gabsocial"]/div/div[2]/div[2]/main/div/div[3]/div/div Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=2000) if(Status){ diff --git a/Modules/Post-To-Gettr.ahk b/Modules/Post-To-Gettr.ahk index 62f1af6..f4c4cd2 100644 --- a/Modules/Post-To-Gettr.ahk +++ b/Modules/Post-To-Gettr.ahk @@ -106,6 +106,13 @@ sleep, 500 SaveOrPostProgress(Message:="Submitting Post",PostType:="Tooltip,ErrorLoggingTextFile") sleep, 2000 +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 +} + + ; Click post button Xpath = //span[normalize-space()='Post'] Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=10,SleepLength:=1000) diff --git a/Modules/Post-To-LinkedIn.ahk b/Modules/Post-To-LinkedIn.ahk index ca2f206..a623b62 100644 --- a/Modules/Post-To-LinkedIn.ahk +++ b/Modules/Post-To-LinkedIn.ahk @@ -168,7 +168,7 @@ if(ImageAttachmentFilepath != ""){ SaveOrPostProgress(Message:="Waiting 5 seconds for Image to finish uploading",PostType:="Tooltip,ErrorLoggingTextFile") sleep, 5000 -*/ + */ } @@ -200,42 +200,38 @@ loop, 3 { ; Continue } -/* if(!Status){ ; if BLANK - Message = Post Failed: Failed to input Post for some reason - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return - } - */ - ; sleep, 2000 - - if(InStr(PostTitleAndBody, "http") OR InStr(PostTitleAndBody, "www")){ - Message = Waiting 10 seconds for Preview to Get Fetched - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") - sleep, 10000 - } - else, { - sleep, 2000 - } +if(InStr(PostTitleAndBody, "http") OR InStr(PostTitleAndBody, "www")){ + Message = Waiting 10 seconds for Preview to Get Fetched + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") + sleep, 10000 +} +else, { + sleep, 2000 +} - SaveOrPostProgress(Message:="Submitting Post",PostType:="Tooltip,ErrorLoggingTextFile") +SaveOrPostProgress(Message:="Submitting Post",PostType:="Tooltip,ErrorLoggingTextFile") +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 = //span[normalize-space()='Post'] ; Click the final "post" button - Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=1000) - if(Status){ - Jscheck = return document.querySelector("div[aria-label='Text editor for creating content']").textContent ; Grabb innertext - try TextContent := driver.executeScript(Jscheck) +Xpath = //span[normalize-space()='Post'] ; Click the final "post" button +Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=1000) +if(Status){ + Jscheck = return document.querySelector("div[aria-label='Text editor for creating content']").textContent ; Grabb innertext + try TextContent := driver.executeScript(Jscheck) - Message = Failed to Submit Post - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Message = Failed to Submit Post + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - Message = Failed to Submit Post: Text Content that got input: %TextContent% - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return - } + Message = Failed to Submit Post: Text Content that got input: %TextContent% + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return +} /* ; Keep trying to click the home button until able to and then move on to next site because sometimes it takes a while for a post to upload Xpath = //span[normalize-space()='Home'] diff --git a/Modules/Post-To-Locals.ahk b/Modules/Post-To-Locals.ahk index a24636e..5ce89bd 100644 --- a/Modules/Post-To-Locals.ahk +++ b/Modules/Post-To-Locals.ahk @@ -91,6 +91,11 @@ if(ImageAttachmentFilepath != ""){ } Message = Submitting Post SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") +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 +} ; Click Publish post js = document.getElementsByName('submitPost')[0].click(); ; Send content through javascript (Great for getting around emoji chrome limitaitons) @@ -111,31 +116,20 @@ Return } -/* ; Double check that post got submitted - js = return document.querySelector("#body").value - Status := driver.executeScript(js) - if(Status != ""){ - Message = Error: Post Failed to Submit for some reason - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return - } - */ +IniWrite, Successful, %StatusFileFilePath%, Status, Locals +AddToTotalPostsPostedCount() - IniWrite, Successful, %StatusFileFilePath%, Status, Locals - AddToTotalPostsPostedCount() - - - SaveOrPostProgress(Message:=Message,PostType:="Tooltip") - PauseBetweenPosts() - DevModeMsgBox("done!") - Message = Post Publish Successful - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") +SaveOrPostProgress(Message:=Message,PostType:="Tooltip") +PauseBetweenPosts() +DevModeMsgBox("done!") +Message = Post Publish Successful +SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - Return - ; -------------------------------/Locals------------------------------- + +Return +; -------------------------------/Locals------------------------------- diff --git a/Modules/Post-To-MeWe.ahk b/Modules/Post-To-MeWe.ahk index 6aa39d3..b484720 100644 --- a/Modules/Post-To-MeWe.ahk +++ b/Modules/Post-To-MeWe.ahk @@ -35,15 +35,6 @@ if(Status){ Return } -; DevModeMsgBox("popup activated?") - - -; click into popup box to make sure it's activated -/*xpath = //div[@class='ql-editor ql-blank']//div -Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000) -DevModeMsgBox(Status) -*/ -; DevModeMsgBox("inputting post now after clickng") ; input post title and body with javascript JsToExecute = document.querySelector(".ql-editor").innerText = '%JSPostTitleAndBody%'; @@ -103,6 +94,11 @@ if(ImageAttachmentFilepath != ""){ sleep, 10000 } +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 +} ; Click the "Post" button SaveOrPostProgress(Message:="Submitting Post",PostType:="Tooltip,ErrorLoggingTextFile") @@ -119,11 +115,6 @@ IniWrite, Successful, %StatusFileFilePath%, Status, MeWe AddToTotalPostsPostedCount() - -PauseBetweenPosts() -DevModeMsgBox("done!") - - Message = Post Publish Successful SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") diff --git a/Modules/Post-To-Minds.ahk b/Modules/Post-To-Minds.ahk index 2c65dcc..bbab0ca 100644 --- a/Modules/Post-To-Minds.ahk +++ b/Modules/Post-To-Minds.ahk @@ -173,6 +173,11 @@ else, { ; otherwise, input just text ; sleep, 2000 SaveOrPostProgress(Message:="Submitting Post",PostType:="Tooltip,ErrorLoggingTextFile") +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 +} loop, 3 { diff --git a/Modules/Post-To-Steemit.ahk b/Modules/Post-To-Steemit.ahk index 10c928f..9e57d37 100644 --- a/Modules/Post-To-Steemit.ahk +++ b/Modules/Post-To-Steemit.ahk @@ -65,59 +65,47 @@ else, { try, driver.switchToalert().accept() ; if text exists Steemit will pop up menu asking for confirmation for clearing } +/* +*/ +Message = Inputting Post Content +SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") -/* if(Status){ - Message = Post Failed, Please check login status - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - Return - } - ; Click "Accept" popup that asks if you're sure you want to clear post - try, driver.switchToalert().accept() - - */ - - - - Message = Inputting Post Content - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") - - - ; Input title - Xpath = //input[@placeholder='Title'] - Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=1000,StringTextContent:=PostTitle) - if(Status){ - Message = Login Expired. Please log back in - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return - } +; Input title +Xpath = //input[@placeholder='Title'] +Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=1000,StringTextContent:=PostTitle) +if(Status){ + Message = Login Expired. Please log back in + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return +} - Xpath = //textarea[@placeholder='Write your story...'] - Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=PostBody) - if(Status){ - Message = Failed to input Post Body - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return - } +Xpath = //textarea[@placeholder='Write your story...'] +Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=PostBody) +if(Status){ + Message = Failed to input Post Body + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return +} - if(ImageAttachmentFilepath != ""){ - Message = Attaching Thumbnail - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") +if(ImageAttachmentFilepath != ""){ + Message = Attaching Thumbnail + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") - Xpath = //input[@type='file'] - Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=ImageAttachmentFilepath) - if(Status){ - Message = Failed to attach Image - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return - } + Xpath = //input[@type='file'] + Status := Selenium_LoopToSendValueToXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000,StringTextContent:=ImageAttachmentFilepath) + if(Status){ + Message = Failed to attach Image + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return + } /* Xpath = //a[normalize-space()='selecting them'] @@ -161,33 +149,35 @@ else, { if(A_index = 8) ; Steemit only allows 8 tags Break } +/* +*/ +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 +} - Message = Submitting Post - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") - +Message = Submitting Post +SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile") - ; Click Submit Button - Xpath = //button[@type='submit'] - Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000) - if(Status){ - Message = Failed to submit Post - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return - } - IniWrite, Successful, %StatusFileFilePath%, Status, Steemit - AddToTotalPostsPostedCount() +; Click Submit Button +Xpath = //button[@type='submit'] +Status := Selenium_LoopToClickXpath(Xpath:=Xpath,NumOfLoops:=2,SleepLength:=1000) +if(Status){ + Message = Failed to submit Post + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return +} - - - PauseBetweenPosts() - DevModeMsgBox("done!") +IniWrite, Successful, %StatusFileFilePath%, Status, Steemit +AddToTotalPostsPostedCount() - Message = Post Publish Successful - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") +Message = Post Publish Successful +SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging") - Return - ;-----------------------/Steemit------------------------- +Return +;-----------------------/Steemit------------------------- diff --git a/Modules/Post-To-Subscribestar.ahk b/Modules/Post-To-Subscribestar.ahk index ccea754..6112fd0 100644 --- a/Modules/Post-To-Subscribestar.ahk +++ b/Modules/Post-To-Subscribestar.ahk @@ -178,77 +178,68 @@ if(ImageAttachmentFilepath != ""){ Xpath = //input[@multiple='multiple'] driver.FindElementByXPath(Xpath).SendKeys(ImageAttachmentFilepath) + SaveOrPostProgress(Message:="Waiting 5 seconds for Image to finish uploading",PostType:="Tooltip,ErrorLoggingTextFile") + sleep, 5000 +} -/* Xpath = //span[@class='trix-button-group trix-upload-buttons']//button[2] - Status := Selenium_LoopToClickXpathAndWaitForOpenWindow(Xpath:=Xpath,NumOfLoops:=5,SleepLength:=1000) - if(Status){ - Message = Failed to click on Picture Upload button - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - } - - InputStatus := InputFilePathIntoOpenWindow(ImageAttachmentFilepath) - if(InputStatus = "Failed") - { - Message = Upload Failed:`nUnable to Find "Open File" window to input filepath into - SaveOrPostProgress(Message:=Message,PostType:=",ErrorLoggingTextFile,DiscordErrorLogging") - Return - } - */ - SaveOrPostProgress(Message:="Waiting 5 seconds for Image to finish uploading",PostType:="Tooltip,ErrorLoggingTextFile") - sleep, 5000 - } +; Click the post Button +SaveOrPostProgress(Message:="Submitting Post",PostType:="Tooltip,ErrorLoggingTextFile") - ; Click the post Button - SaveOrPostProgress(Message:="Submitting Post",PostType:="Tooltip,ErrorLoggingTextFile") +; post button at bottom right corner +Selector = ".flat_button.for-post_form" + +; check if post button exists +js = return document.querySelector(%Selector%).innerText +try, Status := driver.executeScript(js) +if(!Status){ + Message = Post Failed. Unable to find Post button using usual method. + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return +} +else, { + Message = Post Button Exists and has the text: %Status% + SaveOrPostProgress(Message:=Message,PostType:=",ErrorLoggingTextFile,DiscordErrorLogging") +} - ; post button at bottom right corner - Selector = ".flat_button.for-post_form" +SaveOrPostProgress(Message:="Submitting Post",PostType:="Tooltip,ErrorLoggingTextFile") +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 +} - ; check if post button exists - js = return document.querySelector(%Selector%).innerText - try, Status := driver.executeScript(js) - if(!Status){ - Message = Post Failed. Unable to find Post button using usual method. - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return - } - else, { - Message = Post Button Exists and has the text: %Status% - SaveOrPostProgress(Message:=Message,PostType:=",ErrorLoggingTextFile,DiscordErrorLogging") - } +; click submit button +js = document.querySelector(%Selector%).click() +try, Status := driver.executeScript(js) +; Msgbox % "Status: " Status - ; click submit button - js = document.querySelector(%Selector%).click() - try, Status := driver.executeScript(js) - ; Msgbox % "Status: " Status +sleep, 2000 - sleep, 2000 +; check if post button still exists +js = return document.querySelector(%Selector%).innerText +try, Status := driver.executeScript(js) +if(Status){ + Message = Post Failed. Failed to click Post button using usual method. + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return +} - ; check if post button still exists - js = return document.querySelector(%Selector%).innerText - try, Status := driver.executeScript(js) - if(Status){ - Message = Post Failed. Failed to click Post button using usual method. - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return - } +; double double check that post got posted by checking if able to grab text that was just input +js = return document.querySelector("trix-editor[role='textbox']").innerText +try, Status := driver.executeScript(js) +if(Status){ + Message = Post Failed. Input box still exists on page but no errors were thrown when clicking post button + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + SaveDriverURLOFErrorPage() + Return +} - ; double double check that post got posted by checking if able to grab text that was just input - js = return document.querySelector("trix-editor[role='textbox']").innerText - try, Status := driver.executeScript(js) - if(Status){ - Message = Post Failed. Input box still exists on page but no errors were thrown when clicking post button - SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") - SaveDriverURLOFErrorPage() - Return - } - /* Xpath = //button[contains(text(),'Post')] diff --git a/Modules/Post-To-Twetch.ahk b/Modules/Post-To-Twetch.ahk index 4b45765..0e03598 100644 --- a/Modules/Post-To-Twetch.ahk +++ b/Modules/Post-To-Twetch.ahk @@ -108,7 +108,22 @@ if(ImageAttachmentFilepath != ""){ sleep, 5000 } +/*; Get User confirmation if they have the setting checked +if(ConfirmBeforeSubmit){ + Status := ConfirmBeforeSubmitMsgboxFunc() + if(Status){ + Message := Status + SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging") + Return + } +} +*/ +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 +} ; Click on "Post" button sleep, 2000