|
|
|
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
|
|
|
|
;#Warn ; Enable warnings to assist with detecting common errors.
|
|
|
|
#SingleInstance, Force
|
|
|
|
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
|
|
|
|
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
|
|
|
|
CoordMode, ToolTip, Screen
|
|
|
|
CoordMode, Mouse, Screen
|
|
|
|
FileEncoding, UTF-8-RAW ; Needed for special symbols that are used in video descritions
|
|
|
|
if(InStr(A_ScriptName, ".ahk")){
|
|
|
|
Menu, Tray, Icon, %A_ScriptDir%\assets\Icon.ico
|
|
|
|
}
|
|
|
|
|
|
|
|
ErrorLoggingDirectory = %1%
|
|
|
|
PassedInArgument = %1%
|
|
|
|
|
|
|
|
; Add menus to the toolbar icon
|
|
|
|
Menu, tray, NoStandard ; remove standard tray
|
|
|
|
|
|
|
|
Menu, Tray, Add, Exit, KillScript
|
|
|
|
Menu, Tray, Add, Pause, PauseScript
|
|
|
|
Menu, Tray, Add, Start New Post, ReloadScript
|
|
|
|
Menu, Tray, Add, Reload wLast Post, LoadLastPost
|
|
|
|
Menu, Tray, Default, Reload wLast Post
|
|
|
|
|
|
|
|
|
|
|
|
global ScriptName
|
|
|
|
global ScriptVersion
|
|
|
|
global FullScriptName
|
|
|
|
global UpdateAvailable
|
|
|
|
global UpdateVersionNumber
|
|
|
|
|
|
|
|
|
|
|
|
;---Notes/Extra Info/#Includes------------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\StdOutToVar.ahk
|
|
|
|
#Include %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\General-Functions.ahk
|
|
|
|
#Include %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\Selenium-Functions.ahk
|
|
|
|
#Include %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\Chrome-Functions.ahk
|
|
|
|
#Include %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\Gitea-Functions.ahk
|
|
|
|
#Include %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\API-Functions.ahk
|
|
|
|
#Include %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\JSON.ahk
|
|
|
|
#Include %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\RunCMD.ahk
|
|
|
|
#Include %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\Zip.ahk
|
|
|
|
#Include %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\URLDownloadToVar.ahk
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;---ToDo---
|
|
|
|
;------------------------------------------------
|
|
|
|
; @todo: Errorlog not getting appended to on > 1 run (ErrorLoggingFilePath) variable is missing somehwere
|
|
|
|
; @todo: All post submits: mark with "Post Submit Successful" OR "Post Submit Failed" for easier reading of errorlogs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; Misc info
|
|
|
|
;------------------------------------------------
|
|
|
|
; Parler has a 1k char limit
|
|
|
|
|
|
|
|
|
|
|
|
;---Global Variables---
|
|
|
|
;------------------------------------------------
|
|
|
|
global Driver
|
|
|
|
global DriverStatus
|
|
|
|
global CurrentSite
|
|
|
|
global DiscordParlerWebhookURL
|
|
|
|
global DiscordErrorLoggingWebhookBotURL
|
|
|
|
global TooltipXPosition
|
|
|
|
global ShowTooltipProgress
|
|
|
|
global ErrorLoggingDirectory
|
|
|
|
global ErrorLoggingFilePath
|
|
|
|
global StatusFileFilePath
|
|
|
|
global PostTitleFilePath
|
|
|
|
global PostBodyFilePath
|
|
|
|
global ErrorLogVar
|
|
|
|
global PostTitle
|
|
|
|
global PostBody
|
|
|
|
global PostTitleAndBody
|
|
|
|
global PostTags
|
|
|
|
global ImageAttachmentFilepath
|
|
|
|
global ReuseTabs
|
|
|
|
global WindowTitle ; Tab title of already existing window of each site
|
|
|
|
global PauseBetweenPosts ; pause for a couple of seconds between posts so user has a chance to visually see confirmation
|
|
|
|
global PauseTimeBetweenPosts
|
|
|
|
global TimeBetweenpostsInMiliseconds
|
|
|
|
global DevMode
|
|
|
|
global ScriptRunTime
|
|
|
|
global URLOfLastErrorPage
|
|
|
|
|
|
|
|
; Website Post Statuses
|
|
|
|
global Discord
|
|
|
|
global SubScribeStar
|
|
|
|
global Telegram
|
|
|
|
global Minds
|
|
|
|
global Gab
|
|
|
|
global Locals
|
|
|
|
global LinkedIn
|
|
|
|
global MeWe
|
|
|
|
global Twetch
|
|
|
|
global PocketNet
|
|
|
|
global Gettr
|
|
|
|
global steemit
|
|
|
|
global Tumblr
|
|
|
|
|
|
|
|
|
|
|
|
; Check if Lib folder exists and create it if not
|
|
|
|
LibFolder := A_ScriptDir . "\Lib"
|
|
|
|
ErrorLoggingFolder := A_ScriptDir . "\Lib\ErrorLogging"
|
|
|
|
FileCreateDir, %ErrorLoggingFolder%
|
|
|
|
|
|
|
|
; Set filepaths for different files and folders
|
|
|
|
global SettingsIniFilepath
|
|
|
|
SettingsIniFilepath := A_ScriptDir . "\Settings.ini"
|
|
|
|
|
|
|
|
global ChangelogIniFilepath
|
|
|
|
ChangelogIniFilepath := A_ScriptDir . "\Lib\FreedomScriptsChangelogINI"
|
|
|
|
|
|
|
|
global ScriptSettingsSection
|
|
|
|
ScriptSettingsSection := "SocialMediaPoster"
|
|
|
|
|
|
|
|
|
|
|
|
FileInstall, Version.ini, %A_ScriptDir%\Lib\Version.ini, 1
|
|
|
|
IniRead, ScriptVersion, %A_ScriptDir%\Lib\Version.ini,Social-Media-Poster, Version, 0.0
|
|
|
|
ScriptName = Freedomain Social Media Poster
|
|
|
|
ScriptAbbreviatedName := "FSMP"
|
|
|
|
FullScriptName := ScriptName . " " . ScriptVersion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;---General Info---
|
|
|
|
;------------------------------------------------
|
|
|
|
IniRead, TestingMode, %SettingsIniFilepath%, General, TestingMode, 0
|
|
|
|
IniRead, DevMode, %SettingsIniFilepath%, General, DevMode, 0
|
|
|
|
IniRead, TelegramBotToken, %SettingsIniFilepath%, SocialMediaPoster, TelegramBotToken, %A_Space%
|
|
|
|
IniRead, TelegramBotChatID, %SettingsIniFilepath%, SocialMediaPoster, TelegramBotChatID, %A_Space%
|
|
|
|
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
|
|
|
|
; IniRead, SaveGUIPosition, %SettingsIniFilepath%, %ScriptSettingsSection%, SaveGUIPosition, 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;---Checkbox Settings---
|
|
|
|
;------------------------------------------------
|
|
|
|
IniRead, BoldTitleWAPI, %SettingsIniFilepath%, SocialMediaPoster, BoldTitleWAPI, 1
|
|
|
|
(BoldTitleWAPI)?(BoldTitleCheckStatus := 1) : (BoldTitleCheckStatus := 0)
|
|
|
|
|
|
|
|
IniRead, NewLineBetweenTitle, %SettingsIniFilepath%, SocialMediaPoster, NewLineBetweenTitle, 1
|
|
|
|
(NewLineBetweenTitle)?(SpaceBetweenTitleBodyCheckStatus := 1) : (SpaceBetweenTitleBodyCheckStatus := 0)
|
|
|
|
|
|
|
|
|
|
|
|
IniRead, ShowTooltipProgress, %SettingsIniFilepath%, SocialMediaPoster, ShowTooltipProgress, 1
|
|
|
|
(ShowTooltipProgress)?(ShowTooltipProgressCheckStatus := 1) : (ShowTooltipProgressCheckStatus := 0)
|
|
|
|
|
|
|
|
IniRead, ReuseTabs, %SettingsIniFilepath%, SocialMediaPoster, ReuseTabs, 1
|
|
|
|
(ReuseTabs)?(ReuseTabsCheckStatus := 1) : (ReuseTabsCheckStatus := 0)
|
|
|
|
|
|
|
|
IniRead, AutoUpdateCheck, %SettingsIniFilepath%, SocialMediaPoster, AutoUpdateCheck, 1
|
|
|
|
(AutoUpdateCheck)?(AutoUpdateCheckCheckStatus := 1) : (AutoUpdateCheckCheckStatus := 0)
|
|
|
|
|
|
|
|
IniRead, SaveTagsBetweenPosts, %SettingsIniFilepath%, SocialMediaPoster, SaveTagsBetweenPosts, 1
|
|
|
|
(SaveTagsBetweenPosts)?(SaveTagsBetweenPostsCheckStatus := 1) : (SaveTagsBetweenPostsCheckStatus := 0)
|
|
|
|
if(SaveTagsBetweenPosts)
|
|
|
|
IniRead, PostTags, %SettingsIniFilepath%, SocialMediaPoster, PostTags, %A_Space%
|
|
|
|
|
|
|
|
IniRead, PauseBetweenPosts, %SettingsIniFilepath%, SocialMediaPoster, PauseBetweenPosts, 0
|
|
|
|
(PauseBetweenPosts)?(PauseBetweenPostsCheckCheckStatus := 1) : (PauseBetweenPostsCheckCheckStatus := 0)
|
|
|
|
if(PauseBetweenPosts){
|
|
|
|
IniRead, PauseTimeBetweenPosts, %SettingsIniFilepath%, SocialMediaPoster, PauseTimeBetweenPosts, 3
|
|
|
|
TimeBetweenpostsInMiliseconds := PauseTimeBetweenPosts * 1000
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
; IniRead, UpdateAvailable, %SettingsIniFilepath%, %ScriptSettingsSection%, UpdateAvailable, %A_Space%
|
|
|
|
|
|
|
|
IniRead, TotalPostsPosted, %SettingsIniFilepath%, %ScriptSettingsSection%, TotalPostsPosted,0
|
|
|
|
IniRead, TotalRunTime, %SettingsIniFilepath%, %ScriptSettingsSection%, TotalRunTime, 0
|
|
|
|
|
|
|
|
|
|
|
|
;---Auto Updater Settings---
|
|
|
|
;------------------------------------------------
|
|
|
|
|
|
|
|
global GitReleasesAPIURL
|
|
|
|
GitReleasesAPIURL = https://freedomain.dev/api/v1/repos/yuriy/Freedomain-Social-Media-Poster/releases
|
|
|
|
|
|
|
|
; Save filepath of the current script to %SettingsIniFilepath% so it can be read and used by the script updater
|
|
|
|
; Append informatio to ini files for Freedomain Program Updater
|
|
|
|
ProgramExeFilepath := A_ScriptFullPath
|
|
|
|
ProgramExeFilepath := StrReplace(ProgramExeFilepath, ".ahk", ".exe")
|
|
|
|
IniWrite, %ProgramExeFilepath%, %SettingsIniFilepath%, %ScriptSettingsSection%, Filepath
|
|
|
|
IniWrite, %ScriptVersion%, %SettingsIniFilepath%, %ScriptSettingsSection%, ScriptVersion
|
|
|
|
|
|
|
|
|
|
|
|
;------Run Actions on Passed in Arguments-------
|
|
|
|
;------------------------------------------------
|
|
|
|
if(ErrorLoggingDirectory = "LastPost"){
|
|
|
|
IniRead, ErrorLoggingDirectory, %SettingsIniFilepath%, %ScriptSettingsSection%, LastPost, %A_Space%
|
|
|
|
}
|
|
|
|
|
|
|
|
; if passed argument is .exe file, then script has just been udpated and we need to move the old version
|
|
|
|
if(InStr(ErrorLoggingDirectory,ScriptName) and InStr(ErrorLoggingDirectory,".exe")){
|
|
|
|
|
|
|
|
; create backups folder if it doesn't exist
|
|
|
|
BackupsFolder = %LibFolder%\Backups\
|
|
|
|
; Msgbox % "BackupsFolder: " BackupsFolder
|
|
|
|
|
|
|
|
if(!FileExist(BackupsFolder)){
|
|
|
|
FileCreateDir, %BackupsFolder%
|
|
|
|
}
|
|
|
|
|
|
|
|
; move old version to backups folder, overwrite if name conflict
|
|
|
|
FileMove, %ErrorLoggingDirectory%, %BackupsFolder%\*, 1
|
|
|
|
if(ErrorLevel){ ; most likely because the old version hasn't finished exiting yet
|
|
|
|
SaveOrPostProgress(Message:="Starting Up: Moving Old Version",PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar")
|
|
|
|
sleep, 2000
|
|
|
|
FileMove, %ErrorLoggingDirectory%, %BackupsFolder%\*, 1
|
|
|
|
if(ErrorLevel){
|
|
|
|
MsgBox,,Update Successful, Update was successful`, but unable to move old version to the Backups folder.`nPlease move it or delete it manually.
|
|
|
|
}
|
|
|
|
ToolTip
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
; if argument was passed in, read contents from that directory and grab video info for social media post
|
|
|
|
if(StrLen(ErrorLoggingDirectory) > 5 and !InStr(ErrorLoggingDirectory, ".exe")){
|
|
|
|
; SaveOrPostProgress(Message:="Starting Up: Reading Information from Files",PostType:="Tooltip")
|
|
|
|
|
|
|
|
SkipUpdateCheckThisRun := 1
|
|
|
|
|
|
|
|
if(InStr(ErrorLoggingDirectory, "VideoLinks.ini")){ ;PASSED IN FROM VIDEO UPLOADER
|
|
|
|
|
|
|
|
VideoLinksFilepath = %ErrorLoggingDirectory%
|
|
|
|
|
|
|
|
SplitPath, VideoLinksFilepath, OutFileName, VideoLinksDir, OutExtension, OutNameNoExt, OutDrive
|
|
|
|
PostTitleFilepath := VideoLinksDir . "\title.txt"
|
|
|
|
FileRead, PostTitle, %PostTitleFilepath%
|
|
|
|
; Msgbox % "PostTitle: " PostTitle
|
|
|
|
|
|
|
|
; Read the post body from the text file adn then
|
|
|
|
; SPlit it and remove the repeating text bit at the bottom
|
|
|
|
PostBodyFilepath := VideoLinksDir . "\body.txt"
|
|
|
|
FileRead, Postbody, %PostBodyFilepath%
|
|
|
|
SplitText = Free Documentaries:
|
|
|
|
Postbody := StrSplit(Postbody, SplitText)
|
|
|
|
Postbody := Postbody[1]
|
|
|
|
|
|
|
|
; Read post tags from text file
|
|
|
|
PostTagsFilepath := VideoLinksDir . "\keywords.txt"
|
|
|
|
|
|
|
|
FileRead, PostTags, %PostTagsFilepath%
|
|
|
|
; Msgbox % "PostTags: " PostTags
|
|
|
|
|
|
|
|
|
|
|
|
; Read thumbnail filepath from video links file
|
|
|
|
IniRead, ImageAttachmentFilepath, %ErrorLoggingDirectory%,Misc, VideoThumbFilepath, %A_Space%
|
|
|
|
|
|
|
|
; Read video links from video links file
|
|
|
|
IniRead, BitChuteURL, %ErrorLoggingDirectory%,URLs, BitChuteURL, %A_Space%
|
|
|
|
IniRead, RumbleURL, %ErrorLoggingDirectory%,URLs, RumbleURL, %A_Space%
|
|
|
|
IniRead, BrighteonURL, %ErrorLoggingDirectory%,URLs, BrighteonURL, %A_Space%
|
|
|
|
IniRead, BitChuteURL, %ErrorLoggingDirectory%,URLs, BitChuteURL, %A_Space%
|
|
|
|
IniRead, LocalsURL, %ErrorLoggingDirectory%,URLs, LocalsURL, %A_Space%
|
|
|
|
|
|
|
|
IniRead, PodcastNumber, %ErrorLoggingDirectory%,Misc, PodcastNumber, %A_Space%
|
|
|
|
|
|
|
|
|
|
|
|
if(BitChuteURL = ""){
|
|
|
|
if(RumbleURL != "")
|
|
|
|
VideoURL := RumbleURL
|
|
|
|
else,
|
|
|
|
VideoURL := BrighteonURL
|
|
|
|
}
|
|
|
|
else,
|
|
|
|
VideoURL := BitChuteURL
|
|
|
|
|
|
|
|
if(PodcastNumber != ""){
|
|
|
|
PodcastURL := "https://fdrpodcasts.com/" . PodcastNumber . "`n`n"
|
|
|
|
}
|
|
|
|
|
|
|
|
; Append bitchute url to bottom of description
|
|
|
|
PostBody := PostBody . "`n`n" . PodcastURL . VideoURL
|
|
|
|
|
|
|
|
Discord := 0
|
|
|
|
Telegram := 0
|
|
|
|
|
|
|
|
; if videos was uploaded to locals, don't SMP announce
|
|
|
|
if(LocalsURL)
|
|
|
|
Locals := 1
|
|
|
|
}
|
|
|
|
else, { ; otherwise passed in from a previous run.
|
|
|
|
|
|
|
|
StatusFileFilePath := ErrorLoggingDirectory . "\" . "PostStatus.ini"
|
|
|
|
ErrorLoggingFilePath := ErrorLoggingDirectory . "\" . "ErrorLogging.txt"
|
|
|
|
FileRead, PostTitle, %ErrorLoggingDirectory%\PostTitle.txt
|
|
|
|
FileRead, PostBody, %ErrorLoggingDirectory%\PostBody.txt
|
|
|
|
IniRead, PostTags, %StatusFileFilePath%, General, PostTags, %A_Space%
|
|
|
|
IniRead, ImageAttachmentFilepath, %StatusFileFilePath%, General, ImageAttachmentFilepath, %A_Space%
|
|
|
|
|
|
|
|
ReadWebsiteStatuses() ; Read .ini file of post statuses for each site
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
; Set checked status for each checkbox depending on each website's status
|
|
|
|
(Discord != "")?(DiscordCheckStatus := 0) : (DiscordCheckStatus := 1 )
|
|
|
|
(SubScribeStar != "")?(SubScribeStarCheckStatus := 0) : (SubScribeStarCheckStatus := 1)
|
|
|
|
(Telegram != "")?(TelegramCheckStatus := 0) : (TelegramCheckStatus := 1)
|
|
|
|
(Minds != "")?(MindsCheckStatus := 0) : (MindsCheckStatus := 1)
|
|
|
|
(Gab != "")?(GabCheckStatus := 0) : (GabCheckStatus := 1)
|
|
|
|
(MeWe != "")?(MeWeCheckStatus := 0) : (MeWeCheckStatus := 1)
|
|
|
|
(Gettr != "")?(GettrCheckStatus := 0) : (GettrCheckStatus := 0)
|
|
|
|
(Steemit != "")?(SteemitCheckStatus := 0) : (SteemitCheckStatus := 1)
|
|
|
|
(Locals != "")?(LocalsCheckStatus := 0) : (LocalsCheckStatus := 1)
|
|
|
|
(LinkedIN != "")?(LinkedINCheckStatus := 0) : (LinkedINCheckStatus := 1)
|
|
|
|
(Twetch != "")?(TwetchCheckStatus := 0) : (TwetchCheckStatus := 0)
|
|
|
|
(PocketNet != "")?(PocketNetCheckStatus := 0) : (PocketNetCheckStatus := 1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TestingMode){ ; Easy testing for Yuriy
|
|
|
|
DiscordCheckStatus := 0
|
|
|
|
TelegramCheckStatus := 0
|
|
|
|
SubScribeStarCheckStatus := 0
|
|
|
|
MindsCheckStatus := 0
|
|
|
|
LocalsCheckStatus := 0
|
|
|
|
GettrCheckStatus := 0
|
|
|
|
SteemitCheckStatus := 0
|
|
|
|
GabCheckStatus := 0
|
|
|
|
LinkedINCheckStatus := 0
|
|
|
|
MeWeCheckStatus := 0
|
|
|
|
TwetchCheckStatus := 0
|
|
|
|
PocketNetCheckStatus := 0
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
;---GUI Variables---
|
|
|
|
;------------------------------------------------
|
|
|
|
IniRead, XPosition, %SettingsIniFilepath%, %ScriptSettingsSection%, XPosition, 0
|
|
|
|
IniRead, YPosition, %SettingsIniFilepath%, %ScriptSettingsSection%, YPosition, 0
|
|
|
|
|
|
|
|
TooltipXPosition := Round((A_ScreenWidth / 2) - (A_ScreenWidth / 10)) ; Center Tooltip on the screen and a bit to the left
|
|
|
|
|
|
|
|
GuiWidth := 1366
|
|
|
|
GuiFontSize := 10
|
|
|
|
TemplatesGroupBoxWidth := 700
|
|
|
|
MarginSize = 10
|
|
|
|
MarginSizeDoubled := MarginSize * 2
|
|
|
|
EditBoxWidth := 700
|
|
|
|
EditBoxHalfWidths := EditBoxWidth / 2 - (MarginSize * 1.7)
|
|
|
|
EditBoxThirdsWidth := EditBoxWidth / 3 - (MarginSize * 1.5)
|
|
|
|
GroupBox_PlatformsWidth := 180
|
|
|
|
ImageSelectionButtonWidth := 100
|
|
|
|
ImageFilepathEditBoxWidth := EditBoxWidth - ImageSelectionButtonWidth - MarginSize
|
|
|
|
SelectFileButtonWidth := 50
|
|
|
|
SelectFileButtonXPos := EditBoxWidth - SelectFileButtonWidth - MarginSize
|
|
|
|
CharCountXPos := EditBoxWidth - 20
|
|
|
|
; FilePathEditBoxWidth := EditBoxWidth - SelectFileButtonWidth - MarginSize
|
|
|
|
|
|
|
|
PlatformsGroupBoxXLocation := EditBoxWidth + (MarginSize * 3)
|
|
|
|
; SettingsGroupBoxXLocation := PlatformsGroupBoxXLocation + ActionButtonWidths
|
|
|
|
SettingsGroupBoxXLocation := PlatformsGroupBoxXLocation + GroupBox_PlatformsWidth
|
|
|
|
ActionButtonWidths := 355
|
|
|
|
|
|
|
|
ActionButtonHalfWidths := (ActionButtonWidths / 2) - (MarginSize / 2)
|
|
|
|
|
|
|
|
Gui, Margin, %MarginSize%, %MarginSize%
|
|
|
|
GUINormalFontSize := 15
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; Create GUI Elements
|
|
|
|
; ------------------------------------------------
|
|
|
|
Gui, Font, s10
|
|
|
|
; Gui, Font, s8
|
|
|
|
if(TestingMode){
|
|
|
|
Gui, Add, Text,cRed yp+0 x%MarginSize% ,TESTING MODE
|
|
|
|
}
|
|
|
|
if(DevMode){
|
|
|
|
Gui, Add, Text,cRed yp+0 x+30 ,DEV MODE
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Gui, Font, s%GUINormalFontSize%
|
|
|
|
Gui, Font, Bold
|
|
|
|
Gui, Add, Text, x%MarginSize% y+5, Post Title
|
|
|
|
Gui, Font, s8
|
|
|
|
Gui, Font, Normal
|
|
|
|
Gui, Font, s8
|
|
|
|
Gui, Add, Button, x+%MarginSize% 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%MarginSize% y+%MarginSize% w%EditBoxWidth% vPostTitle gUpdateCharCount h50, %PostTitle%
|
|
|
|
|
|
|
|
Gui, Font, Bold
|
|
|
|
Gui, Add, Text,, Post Body
|
|
|
|
Gui, Font, Normal
|
|
|
|
Gui, Font, s8
|
|
|
|
Gui, Add, Button, x+%MarginSize% gPasteClipboardToEditBox vPasteClipboardToSMPBody, Paste Clipboard
|
|
|
|
|
|
|
|
Gui, Font, s%GUINormalFontSize%
|
|
|
|
Gui, Add, Edit, x%MarginSize% y+2 w%EditBoxWidth% h200 vPostBody gUpdateCharCount, %PostBody%
|
|
|
|
|
|
|
|
; Gui, font, color, cblack
|
|
|
|
|
|
|
|
|
|
|
|
Gui, Font, s%GUINormalFontSize%
|
|
|
|
Gui, Font, Bold
|
|
|
|
Gui, Add, Text, x%MarginSize% y+%MarginSize% w%EditBoxWidth% ,Tags
|
|
|
|
Gui, Font, s7
|
|
|
|
Gui, Font, Normal
|
|
|
|
Gui, Add, Text, x65 yp+7, (Required by Steemit, Bastyon, )
|
|
|
|
|
|
|
|
|
|
|
|
; Gui, font, color, cRed
|
|
|
|
Gui, Add, Edit,yp-5 x%CharCountXPos% w30 vCharCount,
|
|
|
|
|
|
|
|
Gui, Font, s%GUINormalFontSize%
|
|
|
|
Gui, Font, Normal
|
|
|
|
Gui, Add, Edit, x%MarginSize% y+10 vPostTags gUpdateVars h33 w%EditBoxWidth%, %PostTags%
|
|
|
|
|
|
|
|
Gui, Font, s%GUINormalFontSize%
|
|
|
|
Gui, Font, Bold
|
|
|
|
Gui, Add, Text,x%MarginSize% w%EditBoxWidth%, Image Attachment Filepath
|
|
|
|
Gui, Font, Normal
|
|
|
|
Gui, Add, Edit, x%MarginSize% y+2 vImageAttachmentFilepath gUpdateVars h33 w%ImageFilepathEditBoxWidth%, %ImageAttachmentFilepath%
|
|
|
|
Gui, Add, Button, gSelectFilepath w%ImageSelectionButtonWidth% x+M yp+0 h33, Select
|
|
|
|
|
|
|
|
Gui, Font, Bold
|
|
|
|
Gui, Add, GroupBox,r2.5 x%MarginSize% y+20 Center w%TemplatesGroupBoxWidth%, Other
|
|
|
|
Gui, Font, Normal
|
|
|
|
Gui, Add, Button,xp+%MarginSize% yp+35 w%EditBoxThirdsWidth% h30 gSaveAsTemplate, Save As Template
|
|
|
|
Gui, Add, Button,x+%MarginSize% w%EditBoxThirdsWidth% h30 gLoadTemplate, Load Template
|
|
|
|
Gui, Add, Button, x+%MarginSize% w%EditBoxThirdsWidth% h30 gLoadLastPost, Load Last Post
|
|
|
|
|
|
|
|
/*if(UpdateAvailable)
|
|
|
|
Gui, Add, Button, x%MarginSizeDoubled% y+%MarginSize% w%EditBoxHalfWidths% h30 gUpdateScript vUpdateAvailable, Update Available: %UpdateVersionNumber%
|
|
|
|
else,
|
|
|
|
*/
|
|
|
|
Gui, Add, Button, x%MarginSizeDoubled% y+%MarginSize% w%EditBoxHalfWidths% h30 gUpdateScript vUpdateAvailable, %ScriptAbbreviatedName% Up-to-Date
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
if(ChromeUpdateAvailable)
|
|
|
|
Gui, Add, Button,x+%MarginSize% yp+0 w%EditBoxHalfWidths% h30 vChromeUpdateAvailable gUpdateChrome, Chrome Update Available!
|
|
|
|
else,
|
|
|
|
*/
|
|
|
|
Gui, Add, Button,x+%MarginSize% yp+0 w%EditBoxHalfWidths% h30 vChromeUpdateAvailable gUpdateChrome , Chrome Up-to-Date
|
|
|
|
|
|
|
|
|
|
|
|
if(DevMode){
|
|
|
|
Gui, Add, Button, x%MarginSize% y+10 w%EditBoxThirdsWidth% h30 gOpenErrorLog, OpenErrorLog
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Gui, Font, Normal
|
|
|
|
gui, Font, s5
|
|
|
|
; Miscellaneous Settings
|
|
|
|
DevModToggleButton := PlatformsGroupBoxXLocation + 80
|
|
|
|
Gui, Add, Button, x%DevModToggleButton% y5 w50 h10 gToggleDevMode, DevMode
|
|
|
|
Gui, Add, Button, x+5 yp+0 w50 h10 gToggleTestingMode, Testing Mode
|
|
|
|
Gui, Add, Button, x+5 yp+0 w50 h10 gToggleManualSubmit, Man. Submit
|
|
|
|
Gui, Add, Button, x+5 yp+0 w50 h10 gOpenGiteaPage, Gitea
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gui, Font, Bold
|
|
|
|
Gui, Font, s%GUINormalFontSize%
|
|
|
|
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,vShowTooltipProgress Checked%ShowTooltipProgressCheckStatus% gUpdateVars, Show Tooltip of Progress
|
|
|
|
Gui, Add, Checkbox, vSaveTagsBetweenPosts Checked%SaveTagsBetweenPostsCheckStatus% gUpdateVars, Save Tags Between Posts
|
|
|
|
Gui, Add, Checkbox, vConfirmBeforeSubmit checked%ConfirmBeforeSubmit%, Confirm Before Submit
|
|
|
|
; Gui, Add, Checkbox, vSaveGUIPosition checked%SaveGUIPosition%, Save GUI Position
|
|
|
|
|
|
|
|
; 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, s8
|
|
|
|
Gui, Font, Bold
|
|
|
|
Gui, Add, Button, xp+110 yp+0 gUncheckAllPlatforms, Uncheck All
|
|
|
|
|
|
|
|
Gui, Font, s%GUINormalFontSize%
|
|
|
|
Gui, Font, Normal
|
|
|
|
Gui, Add, Checkbox, x%PlatformsGroupBoxXLocation% yp+30 vDiscord Checked%DiscordCheckStatus% gUpdateVars, Discord
|
|
|
|
Gui, Add, Checkbox, y+7 vTelegram Checked%TelegramCheckStatus% gUpdateVars, Telegram
|
|
|
|
Gui, Add, Checkbox, y+7 vSubscribeStar Checked%SubScribeStarCheckStatus%gUpdateVars, SubscribeStar
|
|
|
|
Gui, Add, Checkbox, y+7 vMinds Checked%MindsCheckStatus% gUpdateVars, Minds
|
|
|
|
Gui, Add, Checkbox, y+7 vGab Checked%GabCheckStatus% gUpdateVars, Gab
|
|
|
|
Gui, Add, Checkbox, y+7 vLocals Checked%LocalsCheckStatus% gUpdateVars, Locals
|
|
|
|
Gui, Add, Checkbox, y+7 vTwetch Checked%TwetchCheckStatus% gUpdateVars, Twetch
|
|
|
|
|
|
|
|
; Second Row
|
|
|
|
Gui, Add, Checkbox, x+75 yp-190 vLinkedIn Checked%LinkedINCheckStatus% gUpdateVars, LinkedIn
|
|
|
|
Gui, Add, Checkbox, y+7 vSteemit Checked%SteemitCheckStatus% gUpdateVars, Steemit
|
|
|
|
Gui, Add, Checkbox, y+7 vPocketNet Checked%PocketNetCheckStatus% , Bastyon
|
|
|
|
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 vTumblr Checked%Tumblr% gUpdateVars, Tumblr
|
|
|
|
Gui, Add, Checkbox, y+7 vSubstack Checked%Substack% gUpdateVars, SubStack
|
|
|
|
|
|
|
|
|
|
|
|
Gui, Font, Bold
|
|
|
|
gui, Font, s15
|
|
|
|
Gui, Add, Button, x%PlatformsGroupBoxXLocation% y485 w300 h113 gPostPost, Publish
|
|
|
|
|
|
|
|
; Gui, Add, Button, x%PlatformsGroupBoxXLocation% y+20 w300 h30 gSchedulePost, Schedule Post
|
|
|
|
|
|
|
|
|
|
|
|
; Gui, Font, s%GUINormalFontSize%g
|
|
|
|
gui, font, s6
|
|
|
|
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
|
|
|
|
; if(SaveGUIPosition)
|
|
|
|
Gui, Show, x%XPosition% y%YPosition% ,%FullScriptName% ; , w%GuiWidth%, %ScriptName%
|
|
|
|
; else,
|
|
|
|
; Gui, Show,,%FullScriptName% ; , w%GuiWidth%, %ScriptName%
|
|
|
|
|
|
|
|
; Activate the Post Title input box so user can start instantly typing in their new message
|
|
|
|
ControlFocus, Edit1, %FullScriptName%
|
|
|
|
|
|
|
|
|
|
|
|
; check for updates if the setting is enabled
|
|
|
|
if(AutoUpdateCheck AND !UpdateAvailable){
|
|
|
|
SetTimer, CheckForUpdates, -1000
|
|
|
|
}
|
|
|
|
Return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;---Misc GoSubs---
|
|
|
|
;------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SaveAsTemplate:
|
|
|
|
TemplateDirectory = %A_ScriptDir%\Lib\Templates
|
|
|
|
if(!FileExist(TemplateDirectory)){
|
|
|
|
FileCreateDir, %TemplateDirectory%
|
|
|
|
}
|
|
|
|
|
|
|
|
InputBox, TemplateName, Input Name, Please Input Name for the Template:
|
|
|
|
if(ErrorLevel)
|
|
|
|
Return
|
|
|
|
|
|
|
|
TemplateDirectory = %A_ScriptDir%\Lib\Templates\%TemplateName%
|
|
|
|
CreateErrorLoggingFiles(TemplateDirectory)
|
|
|
|
|
|
|
|
FileAppend, %PostTitle%, %PostTitleFilePath% ; save post content to txt file
|
|
|
|
FileAppend, %PostBody%, %PostBodyFilePath% ; save post content to txt file
|
|
|
|
|
|
|
|
IniWrite, %ImageAttachmentFilepath%, %StatusFileFilePath%, General, ImageAttachmentFilepath
|
|
|
|
IniWrite, %PostTags%, %StatusFileFilePath%, General, PostTags
|
|
|
|
Return
|
|
|
|
|
|
|
|
|
|
|
|
LoadTemplate:
|
|
|
|
Message = Loading Template
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,DiscordErrorLogging")
|
|
|
|
|
|
|
|
ErrorLoggingDirectory = %A_ScriptDir%\Lib\Templates\
|
|
|
|
FileSelectFolder, ErrorLoggingDirectory, %ErrorLoggingDirectory%
|
|
|
|
if(ErrorLevel){
|
|
|
|
Tooltip
|
|
|
|
Return
|
|
|
|
}
|
|
|
|
|
|
|
|
run, "%A_ScriptFullPath%" "%ErrorLoggingDirectory%"
|
|
|
|
ExitApp
|
|
|
|
|
|
|
|
ReloadScript:
|
|
|
|
Reload
|
|
|
|
Return
|
|
|
|
|
|
|
|
KillScript:
|
|
|
|
ExitApp
|
|
|
|
Return
|
|
|
|
|
|
|
|
PauseScript:
|
|
|
|
Pause, Toggle
|
|
|
|
Return
|
|
|
|
|
|
|
|
|
|
|
|
LoadLastPost:
|
|
|
|
; IniWrite, %ErrorLoggingDirectory%, %SettingsIniFilepath%, SocialMediaPoster, LastPost
|
|
|
|
; IniRead, ErrorLoggingDirectory, %SettingsIniFilepath%, %ScriptSettingsSection%, LastPost, %A_Space%
|
|
|
|
; Msgbox % "SettingsIniFilepath: " SettingsIniFilepath
|
|
|
|
; Msgbox % "ErrorLoggingDirectory: " ErrorLoggingDirectory
|
|
|
|
; msgbox, 4096, Sorry, Sorry this doesn't do anything yet.
|
|
|
|
run, "%A_ScriptFullPath%" "LastPost"
|
|
|
|
ExitApp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UpdateScript:
|
|
|
|
UpdateScript()
|
|
|
|
Return
|
|
|
|
|
|
|
|
CancelPost:
|
|
|
|
GuiClose:
|
|
|
|
; ExitApp
|
|
|
|
Gui, Submit,
|
|
|
|
Return
|
|
|
|
|
|
|
|
|
|
|
|
ToggleTestingMode:
|
|
|
|
ToggleTestingMode()
|
|
|
|
run, %A_ScriptFullPath% "LastPost"
|
|
|
|
Return
|
|
|
|
|
|
|
|
ToggleManualSubmit:
|
|
|
|
ToggleManualSubmit()
|
|
|
|
run, %A_ScriptFullPath% "LastPost"
|
|
|
|
Return
|
|
|
|
|
|
|
|
ToggleDevMode:
|
|
|
|
ToggleDevMode()
|
|
|
|
run, "%A_ScriptFullPath%" "LastPost"
|
|
|
|
Return
|
|
|
|
|
|
|
|
|
|
|
|
SelectFilepath:
|
|
|
|
FileSelectFile, SelectedImageFilepath
|
|
|
|
GuiControl,, ImageAttachmentFilepath, %SelectedImageFilepath%
|
|
|
|
Return
|
|
|
|
|
|
|
|
UncheckAllPlatforms:
|
|
|
|
GuiControl,,Discord, 0
|
|
|
|
GuiControl,,Telegram, 0
|
|
|
|
GuiControl,,SubScribeStar, 0
|
|
|
|
GuiControl,,Minds, 0
|
|
|
|
GuiControl,,Gab, 0
|
|
|
|
GuiControl,,Locals, 0
|
|
|
|
GuiControl,,Twetch, 0
|
|
|
|
GuiControl,,LinkedIn, 0
|
|
|
|
GuiControl,,Steemit, 0
|
|
|
|
GuiControl,,Bastyon, 0
|
|
|
|
GuiControl,,Gettr, 0
|
|
|
|
GuiControl,,MeWe, 0
|
|
|
|
GuiControl,,Tumblr, 0
|
|
|
|
GuiControl,,Substack, 0
|
|
|
|
Return
|
|
|
|
|
|
|
|
UpdateVars:
|
|
|
|
Gui, Submit, NoHide
|
|
|
|
Return
|
|
|
|
|
|
|
|
UpdateCharCount:
|
|
|
|
Gui, Submit, NoHide
|
|
|
|
Count := StrLen(PostBody)
|
|
|
|
|
|
|
|
GuiControl,, CharCount, %Count%
|
|
|
|
Return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TryFailedAgain:
|
|
|
|
run, %A_ScriptFullPath% "LastPost"
|
|
|
|
ExitApp
|
|
|
|
; Return
|
|
|
|
|
|
|
|
SchedulePost:
|
|
|
|
ScheduledPost := 1
|
|
|
|
|
|
|
|
Gui, Submit
|
|
|
|
Gui, Destroy
|
|
|
|
|
|
|
|
|
|
|
|
Gui, Font, Normal
|
|
|
|
Gui, Font, s20
|
|
|
|
Gui, Add, Text, Center w350 x%MarginSize%,Time to Post At
|
|
|
|
Gui, Add, DateTime, x%MarginSize% vScheduledTime gUpdateVars w350, hh:mm tt
|
|
|
|
Gui, Font, s8
|
|
|
|
Gui, Add, Checkbox, vDisplayCountdownTooltip gUpdateVars checked, Display Tooltip with Countdown
|
|
|
|
Gui, Font, s20
|
|
|
|
Gui, Add, Button,gPostPost w350, Schedule Post Time
|
|
|
|
gui, show, w370
|
|
|
|
Return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PostPost:
|
|
|
|
Gui, Submit, NoHide
|
|
|
|
|
|
|
|
; Get GUI window position for saving to settings file
|
|
|
|
WinGetPos, XPosition, YPosition, , , A
|
|
|
|
|
|
|
|
if(InStr(PostTags, "http")){
|
|
|
|
Message = Post Tags contain "http". Please edit and remove the url and try again.
|
|
|
|
Msgbox, 4096, Error, %Message%
|
|
|
|
; SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar")
|
|
|
|
Return
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Gui, Destroy
|
|
|
|
|
|
|
|
ScheduledTime := SubStr(ScheduledTime, 1, 12) ; pull out time date up to the minute and exclude seconds
|
|
|
|
; Msgbox % "ScheduledTime: " ScheduledTime
|
|
|
|
; clipboard := ScheduledTime
|
|
|
|
; Msgbox % "ScheduledTime: " ScheduledTime
|
|
|
|
|
|
|
|
; DevModeMsgBox("stop")
|
|
|
|
|
|
|
|
; if argument is passed to the script we want to do the following:
|
|
|
|
; If the argument is a template post, we want to create a new ErrorLogging directory for it
|
|
|
|
; if the argument is an error logging post, we want to continue where it left off and log to the same place
|
|
|
|
|
|
|
|
|
|
|
|
if(InStr(ErrorLoggingDirectory, "\Templates\") OR ErrorLoggingDirectory = "" OR InStr(ErrorLoggingDirectory, "VideoLinks.ini")){
|
|
|
|
; msgbox, creating new error logging files
|
|
|
|
CreateErrorLoggingFiles()
|
|
|
|
|
|
|
|
} ;
|
|
|
|
|
|
|
|
|
|
|
|
; Save Script Settings to File
|
|
|
|
; ------------------------------------------------
|
|
|
|
IniWrite, %XPosition%, %SettingsIniFilepath%, %ScriptSettingsSection%, XPosition
|
|
|
|
IniWrite, %YPosition%, %SettingsIniFilepath%, %ScriptSettingsSection%, YPosition
|
|
|
|
|
|
|
|
IniWrite, %BoldTitleWAPI%, %SettingsIniFilepath%, SocialMediaPoster, BoldTitleWAPI
|
|
|
|
IniWrite, %NewLineBetweenTitle%, %SettingsIniFilepath%, SocialMediaPoster, NewLineBetweenTitle
|
|
|
|
IniWrite, %ReuseTabs%, %SettingsIniFilepath%, SocialMediaPoster, ReuseTabs
|
|
|
|
IniWrite, %ShowTooltipProgress%, %SettingsIniFilepath%, SocialMediaPoster, ShowTooltipProgress
|
|
|
|
IniWrite, %AutoUpdateCheck%, %SettingsIniFilepath%, SocialMediaPoster, AutoUpdateCheck
|
|
|
|
IniWrite, %SaveTagsBetweenPosts%, %SettingsIniFilepath%, SocialMediaPoster, SaveTagsBetweenPosts
|
|
|
|
IniWrite, %PauseBetweenPosts%, %SettingsIniFilepath%, SocialMediaPoster, PauseBetweenPosts
|
|
|
|
IniWrite, %ErrorLoggingDirectory%, %SettingsIniFilepath%, %ScriptSettingsSection%, LastPost
|
|
|
|
|
|
|
|
IniWrite, %ConfirmBeforeSubmit%, %SettingsIniFilepath%, %ScriptSettingsSection%, ConfirmBeforeSubmit
|
|
|
|
; IniWrite, %SaveGUIPosition%, %SettingsIniFilepath%, %ScriptSettingsSection%, SaveGUIPosition
|
|
|
|
|
|
|
|
; Used by Post Scheduler, VU, Livestream Scheduler. Filepath changes between script updates
|
|
|
|
IniWrite, %A_ScriptFullPath%, %SettingsIniFilepath%, Filepaths, SocialMediaPosterFilepath
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; Combines two variables together so they can be used as needed later
|
|
|
|
if(NewLineBetweenTitle)
|
|
|
|
PostTitleAndBody := PostTitle . "`n`n" . PostBody
|
|
|
|
else,
|
|
|
|
PostTitleAndBody := PostTitle . "`n" . PostBody
|
|
|
|
|
|
|
|
|
|
|
|
if(PostBody = ""){
|
|
|
|
PostTitleAndBody := PostTitle
|
|
|
|
}
|
|
|
|
if(PostTitle = ""){
|
|
|
|
PostTitleAndBody := PostBody
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
; Format text to javascript
|
|
|
|
JSPostTitleAndBody := FormatTextToJSText(PostTitleAndBody)
|
|
|
|
JSPostTitle := FormatTextToJSText(PostTitle)
|
|
|
|
JSPostBody := FormatTextToJSText(PostBody)
|
|
|
|
|
|
|
|
FileAppend, %PostTitle%, %PostTitleFilePath% ; save post content to txt file
|
|
|
|
FileAppend, %PostBody%, %PostBodyFilePath% ; save post content to txt file
|
|
|
|
IniWrite, %ImageAttachmentFilepath%, %StatusFileFilePath%, General, ImageAttachmentFilepath
|
|
|
|
|
|
|
|
IniWrite, %PostTags%, %StatusFileFilePath%, General, PostTags
|
|
|
|
IniWrite, %PostTags%, %SettingsIniFilepath%, SocialMediaPoster, PostTags
|
|
|
|
IniWrite, %ShowTooltipProgress%, %SettingsIniFilepath%, SocialMediaPoster, ShowTooltipProgress
|
|
|
|
|
|
|
|
; TimeBetweenPosts := 5000 ; 5 seconds
|
|
|
|
; TimeBetweenpostsInSeconds := round(TimeBetweenPosts/1000)
|
|
|
|
; Msgbox % "TimeBetweenpostsInSeconds: " TimeBetweenpostsInSeconds
|
|
|
|
|
|
|
|
|
|
|
|
; Create a list of websites that are going to get psoted to for error logging purposes
|
|
|
|
(Discord = 1)?(PostedWebsites .= "Discord|") : ()
|
|
|
|
(Telegram = 1)?(PostedWebsites .= "Telegram|") : ()
|
|
|
|
(SubScribeStar = 1)?(PostedWebsites .= "SubScribeStar|") : ()
|
|
|
|
(Minds = 1)?(PostedWebsites .= "Minds|") : ()
|
|
|
|
(Gab = 1)?(PostedWebsites .= "Gab|") : ()
|
|
|
|
(MeWe = 1)?(PostedWebsites .= "MeWe|") : ()
|
|
|
|
(Locals = 1)?(PostedWebsites .= "Locals|") : ()
|
|
|
|
(LinkedIn = 1)?(PostedWebsites .= "LinkedIn|") : ()
|
|
|
|
(Twetch = 1)?(PostedWebsites .= "Twetch|") : ()
|
|
|
|
(PocketNet = 1)?(PostedWebsites .= "PocketNet|") : ()
|
|
|
|
(Gettr = 1)?(PostedWebsites .= "Gettr|") : ()
|
|
|
|
(Steemit = 1)?(PostedWebsites .= "Steemit|") : ()
|
|
|
|
(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%
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
|
|
|
|
|
|
|
|
if(InStr(PostBody, "www.dlive.tv") AND !InStr(PostBody, "https://www.dlive.tv")){ ; if posting Dlive link, turn it into hyperlink
|
|
|
|
PostBody := StrReplace(PostBody, "www.dlive.tv", "https://www.dlive.tv")
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(ScheduledPost){
|
|
|
|
; CheckSeleniumDriver()
|
|
|
|
; Menu, Tray, Icon, %A_ScriptDir%\Lib\FreedomainShare_Scheduled.ico
|
|
|
|
Loop, {
|
|
|
|
FormatTime, CurrentTime, YYYYMMDDHH24MISS, yyyyMMddhhmm
|
|
|
|
; FormatTime, TodayDate , YYYYMMDDHH24MISS, yyyyMMdd_hhmmss
|
|
|
|
|
|
|
|
EnvSub, CurrentTime, ScheduledTime, Minutes
|
|
|
|
TimeLeft := StrReplace(CurrentTime, "-", "")
|
|
|
|
|
|
|
|
if(TimeLeft = 0)
|
|
|
|
break
|
|
|
|
|
|
|
|
if(DisplayCountdownTooltip){
|
|
|
|
Message = Minutes Until SMP: %TimeLeft%
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip")
|
|
|
|
}
|
|
|
|
|
|
|
|
sleep, 15000 ; 15 seconds
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StartTime := A_TickCount
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(Discord)
|
|
|
|
Gosub, PostToDiscord
|
|
|
|
|
|
|
|
if(Telegram)
|
|
|
|
Gosub, PostToTelegram
|
|
|
|
|
|
|
|
if(SubscribeStar)
|
|
|
|
Gosub, PostToSubscribeStar
|
|
|
|
|
|
|
|
if(Minds)
|
|
|
|
Gosub, PostToMinds
|
|
|
|
|
|
|
|
if(Gab)
|
|
|
|
Gosub, PostToGab
|
|
|
|
|
|
|
|
if(LinkedIN)
|
|
|
|
Gosub, PostToLinkedIN
|
|
|
|
|
|
|
|
if(MeWe)
|
|
|
|
Gosub, PostToMeWe
|
|
|
|
|
|
|
|
if(Twetch)
|
|
|
|
Gosub, PostToTwetch
|
|
|
|
|
|
|
|
if(Tumblr)
|
|
|
|
Gosub, PostToTumblr
|
|
|
|
|
|
|
|
if(Locals)
|
|
|
|
Gosub, PostToLocals
|
|
|
|
|
|
|
|
if(Steemit)
|
|
|
|
Gosub, PostToSteemit
|
|
|
|
|
|
|
|
if(Pocketnet)
|
|
|
|
Gosub, PostToPocketNet
|
|
|
|
|
|
|
|
if(Gettr)
|
|
|
|
Gosub, PostToGettr
|
|
|
|
|
|
|
|
if(SubStack)
|
|
|
|
Gosub, PostToSubStack
|
|
|
|
|
|
|
|
|
|
|
|
CurrentSite :=
|
|
|
|
Message = Social Media Posting Complete
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
|
|
|
|
|
|
|
|
ScriptRunTime := round(((A_TickCount - StartTime) / 1000), 2)
|
|
|
|
|
|
|
|
|
|
|
|
; DevModeMsgBox(URLOfLastErrorPage)
|
|
|
|
|
|
|
|
if(URLOfLastErrorPage != ""){
|
|
|
|
Message = Activating Tab of last failed post.
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip")
|
|
|
|
; DevModeMsgBox("pause")
|
|
|
|
; message = URLOfLastErrorPage: %URLOfLastErrorPage%
|
|
|
|
; DevModeMsgBox(URLOfLastErrorPage)
|
|
|
|
; FindAndActivateTab(URLOfLastErrorPage)
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ReadWebsiteStatuses() ; Read .ini file of post statuses for each site
|
|
|
|
|
|
|
|
; Gui,Destroy
|
|
|
|
ToolTip
|
|
|
|
|
|
|
|
WebsiteButtonWidths = 115
|
|
|
|
WebsiteStatusEditWidths = 150
|
|
|
|
|
|
|
|
StatusTextWidth := (WebsiteButtonWidths + WebsiteStatusEditWidths) * 2
|
|
|
|
StatusTextSecondRowXPos := WebsiteStatusEditWidths + WebsiteButtonWidths + (MarginSize * 4)
|
|
|
|
ErrorSummaryLogXPos := StatusTextSecondRowXPos + WebsiteStatusEditWidths + WebsiteButtonWidths + (MarginSize * 2)
|
|
|
|
ErrorSummaryLogSplitLineXPos := ErrorSummaryLogXPos - (MarginSize)
|
|
|
|
ErrorLogSummaryWidth := 385
|
|
|
|
ErrorLogSummaryHeight := 480
|
|
|
|
ButtonHeights := 30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gui, Font, s%GUINormalFontSize%
|
|
|
|
Gui, Font, Bold
|
|
|
|
Gui, Add, Text,w%StatusTextWidth% y%MarginSize% Center, Status
|
|
|
|
|
|
|
|
|
|
|
|
Gui, Add, Button,x%MarginSize% y40 w%WebsiteButtonWidths% Center h%ButtonHeights%, Discord
|
|
|
|
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Discord%
|
|
|
|
|
|
|
|
|
|
|
|
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% Center h%ButtonHeights%, Telegram
|
|
|
|
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Telegram%
|
|
|
|
|
|
|
|
gui, font, s8
|
|
|
|
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% Center h%ButtonHeights%, SubScribeStar
|
|
|
|
Gui, Font, s%GUINormalFontSize%
|
|
|
|
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %SubscribeStar%
|
|
|
|
|
|
|
|
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, Minds
|
|
|
|
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Minds%
|
|
|
|
|
|
|
|
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, Gab
|
|
|
|
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Gab%
|
|
|
|
|
|
|
|
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, Locals
|
|
|
|
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Locals%
|
|
|
|
|
|
|
|
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, Gettr
|
|
|
|
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Gettr%
|
|
|
|
|
|
|
|
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths%Center h%ButtonHeights%, Twetch
|
|
|
|
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Twetch%
|
|
|
|
|
|
|
|
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, LinkedIn
|
|
|
|
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %LinkedIn%
|
|
|
|
|
|
|
|
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, MeWe
|
|
|
|
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %MeWe%
|
|
|
|
|
|
|
|
|
|
|
|
Gui, Font, s%GUINormalFontSize%
|
|
|
|
|
|
|
|
; gui, font, s8
|
|
|
|
; Gui, Add, Button,x%StatusTextSecondRowXPos% y40 w%WebsiteButtonWidths%Center h%ButtonHeights%, ThinkSpot
|
|
|
|
; Gui, Font, s%GUINormalFontSize%
|
|
|
|
; Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %ThinkSpot%
|
|
|
|
|
|
|
|
; Gui, Font, s%GUINormalFontSize%
|
|
|
|
|
|
|
|
; Gui, Add, Button,x%StatusTextSecondRowXPos% y+%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, Flote
|
|
|
|
; Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Flote%
|
|
|
|
|
|
|
|
; Gui, Add, Button,x%StatusTextSecondRowXPos% y+%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% gActivateParlerTab Center, Parler
|
|
|
|
; Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Parler%
|
|
|
|
|
|
|
|
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, Steemit
|
|
|
|
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Steemit%
|
|
|
|
|
|
|
|
; Gui, Add, Button,x%StatusTextSecondRowXPos% y+%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, Pintrest
|
|
|
|
; Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Pintrest%
|
|
|
|
|
|
|
|
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, Bastyon
|
|
|
|
Gui, Add, Edit, x+5 w%WebsiteStatusEditWidths% h%ButtonHeights%, %Bastyon%
|
|
|
|
|
|
|
|
Gui, Add, Button,x%MarginSize% w%WebsiteButtonWidths% h%ButtonHeights% Center, 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, Add, Button, x%MarginSize% y+20 w165 h50 gCancelPost, Close
|
|
|
|
Gui, Add, Button, x+%MarginSize% w215 h50 gSendErrorLoggingThroughTelegram, Telegram Detailed Errorlog
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gui, Font, s10
|
|
|
|
Gui, Add, Button, x%StatusTextSecondRowXPos% y40 w270 h40 Center gCopyPostToClipboard, Copy Post To Clipboard
|
|
|
|
Gui, Add, Button, x%StatusTextSecondRowXPos% y+%MarginSize% w270 h40 Center gCopyImageFilepathToClipboard, Copy Image Filepath To Clipboard
|
|
|
|
Gui, Font, s%GUINormalFontSize%
|
|
|
|
Gui, Add, Button, x%StatusTextSecondRowXPos% y+%MarginSize% w270 h40 gOpenGiteaPage, Report Bug
|
|
|
|
Gui, Add, Button, x%StatusTextSecondRowXPos% y+%MarginSize% w270 h80 gTryFailedAgain, Try Failed Again
|
|
|
|
|
|
|
|
|
|
|
|
Gui, Font, s%GUINormalFontSize%
|
|
|
|
Gui, Font, Bold
|
|
|
|
; gui, add, text, x%ErrorSummaryLogSplitLineXPos% y20 h200 0x11 ; 0x11 is a "line" ; refer to here: https://autohotkey.com/board/topic/50910-draw-line-gui/
|
|
|
|
Gui, Add, Text, x%ErrorSummaryLogXPos% y%MarginSize% w%ErrorLogSummaryWidth% Center, Error Log Summary
|
|
|
|
|
|
|
|
Gui, Font, Normal
|
|
|
|
Gui, Font, s10
|
|
|
|
Gui, Add, Edit, x%ErrorSummaryLogXPos% y+%MarginSize% w%ErrorLogSummaryWidth% h%ErrorLogSummaryHeight%, %ErrorLogVar%
|
|
|
|
Gui, Font, s%GUINormalFontSize%
|
|
|
|
|
|
|
|
gui, font, s6
|
|
|
|
Gui, Add, StatusBar,, Total Posts Posted: %TotalPostsPosted% | Run Time: %ScriptRunTime% Seconds
|
|
|
|
|
|
|
|
; if(SaveGUIPosition)
|
|
|
|
Gui, Show, x%XPosition% y%YPosition%, %FullScriptName% - Post Results
|
|
|
|
; else,
|
|
|
|
; Gui, Show,, %FullScriptName% - Post Results
|
|
|
|
|
|
|
|
|
|
|
|
SaveCurrentChromeVersionToIniFile()
|
|
|
|
AddToTotalRunTime()
|
|
|
|
|
|
|
|
Return
|
|
|
|
|
|
|
|
|
|
|
|
CopyErrorLoggingFilepath:
|
|
|
|
; Msgbox % "ErrorLoggingFilePath: " ErrorLoggingFilePath
|
|
|
|
Clipboard := ErrorLoggingFilePath
|
|
|
|
msgbox,,Copied to Clipboard, The Filepath for the errorlogging file was copied to your clipboard:`n`n%ErrorLoggingFilePath%
|
|
|
|
Return
|
|
|
|
|
|
|
|
SaveDriverTitle(){
|
|
|
|
Message := "Driver.Title: " . driver.title
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CopyPostToClipboard:
|
|
|
|
clipboard := PostTitleAndBody
|
|
|
|
Message = Post Title and Body Copied to Clipboard
|
|
|
|
; ToolTip, Post Title and Body Copied to Clipboard, 850, 0
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip")
|
|
|
|
sleep, 2000
|
|
|
|
Tooltip
|
|
|
|
Return
|
|
|
|
|
|
|
|
CopyImageFilepathToClipboard:
|
|
|
|
clipboard := ImageAttachmentFilepath
|
|
|
|
Message = Image Filepath Copied to Clipboard
|
|
|
|
; ToolTip, Post Title and Body Copied to Clipboard, 850, 0
|
|
|
|
SaveOrPostProgress(Message:=Message,PostType:="Tooltip")
|
|
|
|
sleep, 2000
|
|
|
|
Tooltip
|
|
|
|
Return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; Discord
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-Discord.ahk
|
|
|
|
|
|
|
|
; Telegram
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-Telegram.ahk
|
|
|
|
|
|
|
|
; Subscribestar
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-Subscribestar.ahk
|
|
|
|
|
|
|
|
; LinkedIn
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-LinkedIn.ahk
|
|
|
|
|
|
|
|
; Tumblr
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-Tumblr.ahk
|
|
|
|
|
|
|
|
; SubStack
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-Substack.ahk
|
|
|
|
|
|
|
|
|
|
|
|
; Minds
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-Minds.ahk
|
|
|
|
|
|
|
|
; Locals
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-Locals.ahk
|
|
|
|
|
|
|
|
; Bastyon
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-Bastyon.ahk
|
|
|
|
|
|
|
|
; Steemit
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-Steemit.ahk
|
|
|
|
|
|
|
|
; Gab
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-Gab.ahk
|
|
|
|
|
|
|
|
; Gettr
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-Gettr.ahk
|
|
|
|
|
|
|
|
; MeWe
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-MeWe.ahk
|
|
|
|
|
|
|
|
; Twetch
|
|
|
|
;------------------------------------------------
|
|
|
|
#include %A_ScriptDir%\Modules\Post-To-Twetch.ahk
|
|
|
|
|
|
|
|
; Thinkspot
|
|
|
|
;------------------------------------------------
|
|
|
|
; #include %A_ScriptDir%\Modules\Post-To-Thinkspot.ahk
|
|
|
|
|
|
|
|
; 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
|