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() }