Skip to content

Commit f86c2a7

Browse files
authored
fix(captcha): welcome message should omit cancel signal (#77)
1 parent 3ad9699 commit f86c2a7

File tree

5 files changed

+12
-9
lines changed

5 files changed

+12
-9
lines changed

captcha/answer.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ func (d *Dependencies) WaitForAnswer(ctx context.Context, m *tb.Message) {
138138
return
139139
}
140140

141-
err = d.removeUserFromCache(m.Sender.ID, m.Chat.ID)
141+
err = d.removeUserFromCache(ctx, m.Sender.ID, m.Chat.ID)
142142
if err != nil {
143143
shared.HandleBotError(ctx, err, d.Bot, m)
144144
return
@@ -201,7 +201,10 @@ func (d *Dependencies) WaitForAnswer(ctx context.Context, m *tb.Message) {
201201
}
202202

203203
// It... remove the user from cache. What else do you expect?
204-
func (d *Dependencies) removeUserFromCache(userID int64, groupID int64) error {
204+
func (d *Dependencies) removeUserFromCache(ctx context.Context, userID int64, groupID int64) error {
205+
span := sentry.StartSpan(ctx, "captcha.remove_user_from_cache")
206+
defer span.Finish()
207+
205208
err := d.DB.Update(func(txn *badger.Txn) error {
206209
item, err := txn.Get([]byte("captcha:users:" + strconv.FormatInt(groupID, 10)))
207210
if err != nil {

captcha/cleanup.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func (d *Dependencies) Cleanup() {
6363
sentry.CaptureException(err)
6464
}
6565

66-
err = d.removeUserFromCache(captcha.SenderID, captcha.ChatID)
66+
err = d.removeUserFromCache(context.Background(), captcha.SenderID, captcha.ChatID)
6767
if err != nil && !errors.Is(err, badger.ErrKeyNotFound) {
6868
sentry.CaptureException(err)
6969
}

captcha/leave.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ func (d *Dependencies) CaptchaUserLeave(ctx context.Context, m *tb.Message) {
8080
return
8181
}
8282

83-
err = d.removeUserFromCache(m.Sender.ID, m.Chat.ID)
83+
err = d.removeUserFromCache(ctx, m.Sender.ID, m.Chat.ID)
8484
if err != nil {
8585
shared.HandleBotError(ctx, err, d.Bot, m)
8686
return

captcha/welcome.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"context"
55
"errors"
66
"fmt"
7-
"math/rand"
7+
"math/rand/v2"
88
"strconv"
99
"strings"
1010
"time"
@@ -67,6 +67,7 @@ var regularWelcomeMessage = "Halo, {user}!\n\n" +
6767
// sendWelcomeMessage literally does what it's written.
6868
func (d *Dependencies) sendWelcomeMessage(ctx context.Context, m *tb.Message) error {
6969
span := sentry.StartSpan(ctx, "captcha.send_welcome_message")
70+
ctx = context.WithoutCancel(span.Context())
7071
defer span.Finish()
7172

7273
var msgToSend string = regularWelcomeMessage
@@ -117,13 +118,12 @@ func (d *Dependencies) sendWelcomeMessage(ctx context.Context, m *tb.Message) er
117118
ctx,
118119
[]tb.Editable{&tb.StoredMessage{MessageID: strconv.Itoa(msg.ID), ChatID: m.Chat.ID}},
119120
)
120-
121121
break
122122
}
123123

124124
return nil
125125
}
126126

127127
func randomNum() int {
128-
return rand.Intn(len(currentWelcomeMessages))
128+
return rand.IntN(len(currentWelcomeMessages))
129129
}

utils/random.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package utils
22

33
import (
4-
"math/rand"
4+
"math/rand/v2"
55
"strconv"
66
"strings"
77
)
@@ -10,7 +10,7 @@ import (
1010
func GenerateRandomNumber() string {
1111
var out strings.Builder
1212
for i := 0; i < 3; i++ {
13-
randomNumber := rand.Intn(14)
13+
randomNumber := rand.IntN(14)
1414
if randomNumber == 10 {
1515
out.WriteString("V")
1616
} else if randomNumber == 11 {

0 commit comments

Comments
 (0)