/
unmute.go
53 lines (44 loc) · 1.25 KB
/
unmute.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package commands
import (
"context"
"fmt"
"slices"
"time"
"github.com/go-telegram/bot"
"github.com/go-telegram/bot/models"
)
// // Unmute user on /unmute
func (c *Commands) Unmute(ctx context.Context, b *bot.Bot, update *models.Update) {
if !slices.Contains(c.config.AllowedChatIDsList, update.Message.Chat.ID) {
return
}
if update.Message.From.ID == c.config.TelegramAdminID {
userID := update.Message.ReplyToMessage.From.ID
chatID := update.Message.Chat.ID
fmt.Println("unmuting", userID, "::", chatID, "by", update.Message.From.ID)
_, errRestrictChatMember := b.RestrictChatMember(
context.Background(),
&bot.RestrictChatMemberParams{
ChatID: chatID,
UserID: userID,
Permissions: &models.ChatPermissions{
CanSendMessages: true,
},
UntilDate: int(time.Now().Add(1 * time.Second).Unix()),
},
)
if errRestrictChatMember != nil {
fmt.Printf("Error restricting member %d: %s\n", userID, errRestrictChatMember.Error())
}
}
_, err := b.DeleteMessage(
context.Background(),
&bot.DeleteMessageParams{
ChatID: update.Message.Chat.ID,
MessageID: update.Message.ID,
},
)
if err != nil {
fmt.Printf("Error deleting message %d, %d: %s\n", update.Message.Chat.ID, update.Message.ID, err.Error())
}
}