74 lines
2.2 KiB
Go
74 lines
2.2 KiB
Go
package plugins
|
|
|
|
import (
|
|
"trbot/utils"
|
|
"trbot/utils/configs"
|
|
"trbot/utils/flaterr"
|
|
"trbot/utils/handler_params"
|
|
"trbot/utils/plugin_utils"
|
|
"trbot/utils/type/message_utils"
|
|
|
|
"github.com/go-telegram/bot"
|
|
"github.com/go-telegram/bot/models"
|
|
"github.com/rs/zerolog"
|
|
)
|
|
|
|
type unpinChatIDs struct {
|
|
ID int64 `yaml:"ID"`
|
|
Type models.ChatType `yaml:"Type"`
|
|
IsEnable bool `yaml:"IsEnable,omitempty"`
|
|
FailedIDs []int `yaml:"FailedIDs,omitempty"`
|
|
}
|
|
|
|
func init() {
|
|
plugin_utils.AddHandlerByMessageTypeHandlers(plugin_utils.ByMessageTypeHandler{
|
|
PluginName: "unpin_channel_message",
|
|
ChatType: models.ChatTypeSupergroup,
|
|
MessageType: message_utils.PinnedMessage,
|
|
})
|
|
}
|
|
|
|
func unPinMessageCommandHandler(opts *handler_params.Message) error {
|
|
logger := zerolog.Ctx(opts.Ctx).With().
|
|
Str("pluginName", "unPinChannelMessage").
|
|
Str(utils.GetCurrentFuncName()).
|
|
Logger()
|
|
|
|
var handlerErr flaterr.MultErr
|
|
|
|
if opts.Message.Chat.Type == models.ChatTypePrivate {
|
|
_, err := opts.Thebot.SendMessage(opts.Ctx, &bot.SendMessageParams{
|
|
ChatID: opts.Message.Chat.ID,
|
|
Text: "自动取消置顶消息的功能仅在群组中可用",
|
|
ReplyParameters: &models.ReplyParameters{ MessageID: opts.Message.ID },
|
|
})
|
|
if err != nil {
|
|
logger.Error().
|
|
Err(err).
|
|
Str("content", "not allow in private chat").
|
|
Msg(flaterr.SendMessage.Fmt())
|
|
handlerErr.Addt(flaterr.SendMessage, "not allow in private chat", err)
|
|
}
|
|
} else {
|
|
if utils.UserIsAdmin(opts.Ctx, opts.Thebot, opts.Message.Chat.ID, opts.Message.From.ID) {
|
|
if utils.UserIsAdmin(opts.Ctx, opts.Thebot, opts.Message.Chat.ID, configs.BotMe.ID) {
|
|
}
|
|
} else {
|
|
_, err := opts.Thebot.SendMessage(opts.Ctx, &bot.SendMessageParams{
|
|
ChatID: opts.Message.Chat.ID,
|
|
Text: "只有管理员才能为群组更改此功能",
|
|
ReplyParameters: &models.ReplyParameters{ MessageID: opts.Message.ID },
|
|
})
|
|
if err != nil {
|
|
logger.Error().
|
|
Err(err).
|
|
Str("content", "no permission to change this feature flag").
|
|
Msg(flaterr.SendMessage.Fmt())
|
|
handlerErr.Addt(flaterr.SendMessage, "no permission to change this feature flag", err)
|
|
}
|
|
}
|
|
}
|
|
|
|
return handlerErr.Flat()
|
|
}
|