You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
social-media-poster/Modules/Post-To-Telegram.ahk

110 lines
3.6 KiB
Plaintext

; -------------------------------Telegram-------------------------------
; API documentation
; https://core.telegram.org/bots/api#sendmessage
PostToTelegram:
CurrentSite := "Telegram"
; SaveOrPostProgress(Message:="Posting through API",PostType:="Tooltip,ErrorLoggingTextFile")
Message = Posting Through API
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
if(TelegramBotToken = "" Or TelegramBotChatID =""){
Message = TelegramBotToken or TelegramBotChatID is missing from %SettingsIniFilepath%. `nPlease input them and rerun the script.
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
}
LineBreakChar = `%0A ; Used for API
TelegramTitle := ASCIISTRReplace(PostTitle)
TelegramBody := ASCIISTRReplace(PostBody)
/* TelegramTitle := PostTitle
TelegramBody := PostBody
*/
; Msgbox % "TelegramBody: " TelegramBody
if(PostBody = ""){
if(BoldTitleWAPI)
Message := "*" . TelegramTitle . "*"
else,
Message := TelegramTitle
}
else, { ; if postbody is not blank
; MsgBox, we in post body
if(BoldTitleWAPI){
if(NewLineBetweenTitle)
Message := "*" . TelegramTitle . "*" . "`n`n" . TelegramBody
else,
Message := "*" . TelegramTitle . "*" . "`n" . TelegramBody
}
else, { ; NOT Bold Title
if(NewLineBetweenTitle)
Message := TelegramTitle . "`n`n" . TelegramBody
else,
Message := TelegramTitle . "`n" . TelegramBody
}
}
; Msgbox % "Message: " Message
; REMOVE
; Message := PostTitle . "`n" . PostBody
; Msgbox % "TelegramTitle: " TelegramTitle
; Msgbox % "TelegramBody: " TelegramBody
; Msgbox % "Message: " Message
if(ImageAttachmentFilepath != "" AND StrLen(Message) > 1020){ ; utilize function that converts image to MIME/multi form
; Telegram API character limit of 4096 for a basic message.
; @todo: add functionality to split messages longer than 4096 characters
; msgbox, 2
if(BoldTitleWAPI)
TelegramTitle := "*" . TelegramTitle . "*"
else,
TelegramTitle := TelegramTitle
Status := SendTelegramPhoto(TelegramBotToken, TelegramBotChatID, ImageAttachmentFilepath, caption := TelegramTitle ) ; you could add more options; compare the Telegram API docs
Status := SendTelegramMessage(TelegramBotToken, TelegramBotChatID, text := TelegramBody )
}
else if(ImageAttachmentFilepath != "" AND StrLen(Message) <= 1020){
Status := SendTelegramPhoto(TelegramBotToken, TelegramBotChatID, ImageAttachmentFilepath, caption := Message ) ; you could add more options; compare the Telegram API docs
}
else,
{ ; send just the text
; Msgbox % "Message: " Message
Status := SendTelegramMessage(TelegramBotToken, TelegramBotChatID, text := Message )
}
if(instr(Status, "error_code")){
Message = Upload Failed Due To API Issue. Please See Error Log For Details
SaveOrPostProgress(Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
Message = Telegram API Returned Data:`n %Status%
SaveOrPostProgress(Message:=Message,PostType:="ErrorLoggingTextFile")
Return
}
; SaveOrPostProgress(Message:=Message,PostType:=",ErrorLoggingTextFile,DiscordParler")
IniWrite, Successful, %StatusFileFilePath%, Status, Telegram
AddToTotalPostsPostedCount()
Message = Post Publish Successful
SaveOrPostProgress(Message:=Message,PostType:="Tooltip,ErrorLoggingTextFile,DiscordErrorLogging")
Return
; -------------------------------/Telegram-------------------------------