diff --git a/db/structs.go b/db/structs.go index 84fa9ab..e7796b8 100644 --- a/db/structs.go +++ b/db/structs.go @@ -15,4 +15,5 @@ type User struct { CaptchaMessage int `bson:"captcha_message"` IsBanned bool `bson:"is_banned"` DateJoined int64 `bson:"date_joined"` + JoinedMessage int `bson:"joined_message"` } diff --git a/kicker/handlers.go b/kicker/handlers.go index c9fe67d..738852b 100644 --- a/kicker/handlers.go +++ b/kicker/handlers.go @@ -24,6 +24,7 @@ func userJoined(c tb.Context) error { LastName: message.Sender.LastName, IsBanned: false, ChatId: message.Chat.ID, + JoinedMessage: message.ID, CorrectAnswer: int8(captcha.CorrectAnswer), DateJoined: time.Now().Unix(), } @@ -32,7 +33,7 @@ func userJoined(c tb.Context) error { ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second) defer cancel() log.Print(user) - msg := fmt.Sprintf("Приветствую тебя, %v!\nДля подтверждения, что ты человек, выбери логотип движка, которому посвящен данный чат, и отправь его номер сюда.\nЯ дам тебе минуту на это.", user.FirstName) + msg := fmt.Sprintf("Приветствую тебя, %v!\nДля подтверждения, что ты человек, выбери логотип движка, которому посвящен данный чат, и отправь его номер сюда.\nЯ дам тебе две минуты на это.", user.FirstName) photo := tb.Photo{File: tb.FromReader(reader), Caption: msg} result, err := bot.Send(tb.ChatID(message.Chat.ID), &photo, &tb.SendOptions{ReplyTo: message}) if err != nil { @@ -54,6 +55,7 @@ func userLeft(c tb.Context) error { if user, err := d.GetUser(ctx, db.User{Id: sender.ID, ChatId: message.Chat.ID}); err == nil { d.RemoveUser(ctx, user) bot.Delete(&tb.Message{Chat: message.Chat, ID: user.CaptchaMessage}) + bot.Delete(&tb.Message{Chat: message.Chat, ID: user.JoinedMessage}) } return nil } @@ -84,6 +86,7 @@ var HandlersV1 = []Handler{ if !solved { bot.Delete(message) bot.Delete(&tb.Message{Chat: message.Chat, ID: user.CaptchaMessage}) + bot.Delete(&tb.Message{Chat: message.Chat, ID: user.JoinedMessage}) bot.Ban(message.Chat, &tb.ChatMember{User: sender}) _ = d.RemoveUser(ctx, user) } diff --git a/kicker/tasks.go b/kicker/tasks.go index 95b9c0a..db7926d 100644 --- a/kicker/tasks.go +++ b/kicker/tasks.go @@ -17,7 +17,7 @@ func TaskKickOldUsers(b tb.Bot) { ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second) defer cancel() now := time.Now().Unix() - old := now - 60 + old := now - 120 filter := bson.D{ primitive.E{Key: "date_joined", Value: bson.D{bson.E{Key: "$lt", Value: old}}}, } @@ -30,8 +30,10 @@ func TaskKickOldUsers(b tb.Bot) { tbUser := tb.User{ID: user.Id} member := tb.ChatMember{User: &tbUser} message := tb.Message{Chat: &chat, ID: user.CaptchaMessage} + joinMessage := tb.Message{Chat: &chat, ID: user.JoinedMessage} b.Ban(&chat, &member) b.Delete(&message) + b.Delete(&joinMessage) d.RemoveUser(ctx, user) } }