PostToTelegram:
;------------------------------------------------
CurrentSocialMediaPosting := "Telegram"

Message = Posting Video Links to Telegram
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")

IniRead, TelegramBotToken, %SettingsIniFilepath%, SocialMediaPoster, TelegramBotToken, %A_Space%
IniRead, TelegramBotChatID, %SettingsIniFilepath%, SocialMediaPoster, TelegramBotChatID, %A_Space%


LineBreakChar = `%0A ; Used for Telegram API

if(TelegramBotToken = "" Or TelegramBotChatID =""){
	Message = TelegramBotToken or TelegramBotChatID is missing from %SettingsIniFilepath%. `nPlease input them and click the button again.
	msgbox, 4096, Error!, %Message%
	SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")
	; Msgbox, 4096, Error!, TelegramBotToken or TelegramBotChatID is missing from %SettingsIniFilepath%. `nPlease input them and rerun the script.
	Return
}

/*
; If description is longer than 2k chars, then API will error out. goto section that will allow user to edit video description to shorten it for posting
if(StrLen(SocialMediaDescription) > 2000 AND VideoDescriptionForVideosChannel = ""){
	goto, CreateDescriptionForVideosPosting
}
*/
/*
if(SocialMediaDescription = ""){
	CreateDescriptionForSocialMedia()
}
if(SocialMediaDescription > 1000){	; Telegram has a 1024 char media caption capacity
	SocialMediaDescription := SubStr(SocialMediaDescription, 1, 500)
}
*/
; @todo: split telegram message into multiple posts


SubmitDescriptionForTelegramVideosChannel:
TelegramVideoTitle := ASCIISTRReplace(VideoTitle)
TelegramVideoTitle := "*" . TelegramVideoTitle . "*"

TelegramBodymessage := ASCIISTRReplace(VideoDescription)


LineBreakChar = `%0A ; Used for API

if(BitChuteURL != "")
VideoLinks .= "[BitChute](" . BitChuteURL . ") \| "

if(BrighteonURL != "")
VideoLinks .= "[Brighteon](" . BrighteonURL . ") \| "

if(OdyseeVideoURL != "")
VideoLinks .= "[Odysee](" . OdyseeVideoURL .  ") \| "

if(OdyseeAudioURL != "")
VideoLinks .= "[Odysee \(Audio\)](" . OdyseeAudioURL . ") \| "
/*
if(OdyseeVideoURL != "")
VideoLinks .= "[Odysee](" . OdyseeVideoURL .  ") \| "

if(OdyseeAudioURL != "")
VideoLinks .= "[Odysee Audio](" . OdyseeAudioURL . ") \| "

*/
if(RumbleURL != "")
VideoLinks .= "[Rumble](" . RumbleURL . ") \| "
/*
if(InStr(StreamanityURL, "https://streamanity.com/video/"))
VideoLinks .= "[Streamanity](" . StreamanityURL . ") \| "

*/
if(DailyMotionURL != "")
VideoLinks .= "[DailyMotion](" . DailyMotionURL . ") \| "


TelegramMessage := TelegramVideoTitle . "`n" . TelegramBodymessage . "`n" . VideoLinks



StrLenOfMessageAndVideoLinks := StrLen(TelegramVideoTitle) + StrLen(TelegramBodymessage) + StrLen(VideoLinks)
; DevModeMsgBox(StrLenOfMessageAndVideoLinks)


if(StrLenOfMessageAndVideoLinks > 1024){
	; Telegram SendMessage is limited to 4096 characters
	if(StrLenOfMessageAndVideoLinks < 4096){ ; split into sendphoto and 1 sendmessage
		; DevModeMsgBox("Less than 4096 chars")
		; Photo and Video Title go into SendPhoto
		TelegramVideoTitle := TelegramVideoTitle . "`n" . VideoLinks
		Status := SendTelegramPhoto(TelegramBotToken, TelegramBotChatID, VideoThumbFilepath, caption := TelegramVideoTitle )       ; you could add more options; compare the Telegram API docs
		
		; Video Description goes into TelegramMessage
		Status2 := SendTelegramMessage(TelegramBotToken, TelegramBotChatID, text := TelegramBodymessage)

		} ; split into 2 SendMessages
		else if (StrLenOfMessageAndVideoLinks > 4096 AND StrLenOfMessageAndVideoLinks < 8192){ ; Split into 2 parts
			TelegramVideoTitle := TelegramVideoTitle . "`n" . VideoLinks
			Status := SendTelegramPhoto(TelegramBotToken, TelegramBotChatID, VideoThumbFilepath, caption := TelegramVideoTitle )       ; you could add more options; compare the Telegram API docs

			TelegramBodymessagePiece := SubStr(TelegramBodymessage, 1, 4096)
			Status2 := SendTelegramMessage(TelegramBotToken, TelegramBotChatID, text := TelegramBodymessagePiece)

			TelegramBodymessagePiece := SubStr(TelegramBodymessage, 4097, 8192)
			Status3 := SendTelegramMessage(TelegramBotToken, TelegramBotChatID, text := TelegramBodymessagePiece)

			} ; split into 3 sendMessages
			else if (StrLenOfMessageAndVideoLinks > 8192 AND StrLenOfMessageAndVideoLinks < 12288){ ; Split into 3 parts
				TelegramVideoTitle := TelegramVideoTitle . "`n" . VideoLinks
				Status := SendTelegramPhoto(TelegramBotToken, TelegramBotChatID, VideoThumbFilepath, caption := TelegramVideoTitle )       ; you could add more options; compare the Telegram API docs

				TelegramBodymessagePiece := SubStr(TelegramBodymessage, 1, 4096)
				msgbox % StrLen(TelegramBodymessagePiece)
				Status2 := SendTelegramMessage(TelegramBotToken, TelegramBotChatID, text := TelegramBodymessagePiece)



				TelegramBodymessagePiece := SubStr(TelegramBodymessage, 4097, 8192)
				msgbox % StrLen(TelegramBodymessagePiece)
				DevModeMsgBox(TelegramBodymessagePiece)
				Status3 := SendTelegramMessage(TelegramBotToken, TelegramBotChatID, text := TelegramBodymessagePiece)

				; TelegramBodymessagePiece := SubStr(TelegramBodymessage, 8193, 12288)
				; Status3 := SendTelegramMessage(TelegramBotToken, TelegramBotChatID, text := TelegramBodymessagePiece)
			}


			} else, { ; if less than 1024 characters, send normally
				Status := SendTelegramPhoto(TelegramBotToken, TelegramBotChatID, VideoThumbFilepath, caption := TelegramMessage )       ; you could add more options; compare the Telegram API docs
				if(InStr(Status, "error_code")){
					Message = Telegram Post Failed due to an API Issue. Error was saved to ErrorLogging file. Please send it to Yuriy.
					SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")

					; SaveOrPostProgress(Message:=Status,PostType:=",ErrorLoggingTextFile")
					Message = Telegram Error: %Status%
					SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,ErrorSummaryVar,DiscordErrorLogging")

					ToolTip
					Return
				}

			}
			; Msgbox % "SizeOfCaption: " SizeOfCaption
			; SizeOfCaption := SizeOfCaption + 
			; Message .= VideoLinks
			; msgbox % StrLen(VideoLinks)

			; Message := StrReplace(Message, "`n", LineBreakChar) ; replace all new line characters with the global charater

			; msgbox % StrLen(Message)


			; SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile,DiscordVideos")

			; SaveOrPostProgress(Message:="Video Links posted to #Videos Successfully.",PostType:="Tooltip,ErrorLoggingTextFile")
			Message = Video Links Posted to Telegram Successfully
			SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile")
			GuiControl,, PostToTelegramButton, Telegram - Posted Successfully


			; sleep, 2000


			ToolTip
			CurrentSite := 
			Return
			; -------------------------------/Telegram-------------------------------
