COde updates
This commit is contained in:
parent
432ee62807
commit
03c5ec07c1
4 changed files with 125 additions and 3 deletions
104
handlers/admin.go
Normal file
104
handlers/admin.go
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
package handlers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
|
||||
utils "git.zio.sh/astra/telegram-approval-join/pkg/utils"
|
||||
api "github.com/OvyFlash/telegram-bot-api"
|
||||
)
|
||||
|
||||
func (bot *Bot) HandleAdminCommands(update *api.Update) {
|
||||
switch update.Message.Command() {
|
||||
case "setentrymessage":
|
||||
if update.Message.CommandArguments() == "" {
|
||||
utils.SendMessage(bot.API, update.Message.Chat.ID, update.Message.MessageThreadID,
|
||||
"Usage: /setentrymessage <entry_message>")
|
||||
return
|
||||
}
|
||||
|
||||
_, e := utils.SendMessage(bot.API, bot.API.Self.ID, 0, update.Message.CommandArguments())
|
||||
if e != nil {
|
||||
if strings.HasPrefix(e.Error(), "Bad Request:") {
|
||||
utils.SendMessage(bot.API, update.Message.Chat.ID, update.Message.MessageThreadID,
|
||||
fmt.Sprintf("Unable to set entry message: <code>%s</code>", e))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
bot.Config.EntryMessage = update.Message.CommandArguments()
|
||||
if err := bot.Config.SaveConfig(); err != nil {
|
||||
log.Printf("Failed to save config: %v", err)
|
||||
}
|
||||
utils.SendMessage(bot.API, update.Message.Chat.ID, update.Message.MessageThreadID,
|
||||
"Entry message updated.")
|
||||
|
||||
case "setadmintopic":
|
||||
if update.Message.CommandArguments() == "" {
|
||||
utils.SendMessage(bot.API, update.Message.Chat.ID, update.Message.MessageThreadID,
|
||||
"Usage: <code>/setadmintopic <topic_id/0></code>")
|
||||
return
|
||||
}
|
||||
|
||||
topicID, errMsg := utils.ParseIntArg(update.Message.CommandArguments())
|
||||
if errMsg != "" {
|
||||
utils.SendMessage(bot.API, update.Message.Chat.ID, update.Message.MessageThreadID,
|
||||
"Invalid topic ID")
|
||||
return
|
||||
}
|
||||
|
||||
bot.Config.AdminChatTopicId = &topicID
|
||||
if err := bot.Config.SaveConfig(); err != nil {
|
||||
log.Printf("Failed to save config: %v", err)
|
||||
}
|
||||
utils.SendMessage(bot.API, update.Message.Chat.ID, topicID,
|
||||
fmt.Sprintf("Topic ID for admin chat <b>%d</b> set to <b>%d</b>\n",
|
||||
update.Message.Chat.ID, topicID))
|
||||
|
||||
case "togglesendapproval":
|
||||
if bot.Config.ApprovalMessage != "" {
|
||||
switch bot.Config.SendApprovalMessage {
|
||||
case true:
|
||||
bot.Config.SendApprovalMessage = false
|
||||
case false:
|
||||
bot.Config.SendApprovalMessage = true
|
||||
}
|
||||
if err := bot.Config.SaveConfig(); err != nil {
|
||||
log.Printf("Failed to save config: %v", err)
|
||||
}
|
||||
utils.SendMessage(bot.API, update.Message.Chat.ID, update.Message.MessageThreadID,
|
||||
fmt.Sprintf("Send approval message: %v", bot.Config.SendApprovalMessage))
|
||||
} else {
|
||||
utils.SendMessage(bot.API, update.Message.Chat.ID, update.Message.MessageThreadID,
|
||||
"Please set an approval message with <code>/setapprovalmessage</code>")
|
||||
}
|
||||
|
||||
case "setapprovalmessage":
|
||||
if update.Message.CommandArguments() == "" {
|
||||
utils.SendMessage(bot.API, update.Message.Chat.ID, update.Message.MessageThreadID,
|
||||
"Usage: <code>/setapprovalmessage <message></code>")
|
||||
return
|
||||
}
|
||||
|
||||
bot.Config.ApprovalMessage = update.Message.CommandArguments()
|
||||
if err := bot.Config.SaveConfig(); err != nil {
|
||||
log.Printf("Failed to save config: %v", err)
|
||||
}
|
||||
utils.SendMessage(bot.API, update.Message.Chat.ID, update.Message.MessageThreadID,
|
||||
"Approval message set.")
|
||||
|
||||
case "info":
|
||||
targetChatID := "not set"
|
||||
if *bot.Config.TargetChatId != 0 {
|
||||
targetChatID = fmt.Sprintf("%d", *bot.Config.TargetChatId)
|
||||
}
|
||||
infoMsg := fmt.Sprintf("%s\n%s\n%s\n%s\n%s",
|
||||
fmt.Sprintf("Admin Chat ID: <b>%d</b>", update.Message.Chat.ID),
|
||||
fmt.Sprintf("Admin Topic ID: <b>%d</b>", *bot.Config.AdminChatTopicId),
|
||||
fmt.Sprintf("Target Chat ID: <b>%s</b>", targetChatID),
|
||||
fmt.Sprintf("Entry Message: %s", utils.EscapeHTML(bot.Config.EntryMessage)),
|
||||
fmt.Sprintf("Approval Message: %s", bot.Config.ApprovalMessage))
|
||||
utils.SendMessage(bot.API, update.Message.Chat.ID, update.Message.MessageThreadID, infoMsg)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue