diff --git a/main.go b/main.go index d3884ea..b96a9d0 100644 --- a/main.go +++ b/main.go @@ -15,6 +15,13 @@ import ( "valera/db" ) +var ( + workoutTypes = []string{ + "Отжимания", + "Пресс", + } +) + const ( version = "v1.3.0" ) @@ -152,27 +159,43 @@ func run() { log.Println(err) continue } + + isWorkout := false + for _, workoutType := range workoutTypes { + if userInfoDTO.GetStatus() == db.UserState(workoutType) { + count, err := strconv.Atoi(text) + if err != nil { + log.Println(err) + continue + } + if err := dataBase.AddWorkout(chatID, db.NewWorkout(workoutType, count, username)); err != nil { + log.Println(err) + continue + } + msgText := fmt.Sprintf("Отлично, %s, записал.", text) + if count <= 0 { + msgText = "Плохо, хочешь быть толстым и не красивым?" + } + _, _ = bot.Send(tgbot.NewMessage(chatID, msgText)) + if err := dataBase.SetStatusToChat(chatID, db.UserStateNone); err != nil { + log.Println(err) + } + isWorkout = true + break + } + } + if isWorkout { + continue + } + switch userInfoDTO.GetStatus() { case db.UserStateGo: - count, err := strconv.Atoi(text) - if err != nil { + if err := dataBase.SetStatusToChat(chatID, db.UserState(text)); err != nil { log.Println(err) - continue } - if err := dataBase.AddWorkout(chatID, db.NewWorkout("Отжимания", count, username)); err != nil { - log.Println(err) - continue - } - msgText := fmt.Sprintf("Отлично, %s, записал.", text) - if count <= 0 { - msgText = "Плохо, хочешь быть толстым и не красивым?" - } - msg := tgbot.NewMessage(chatID, msgText) + msg := tgbot.NewMessage(chatID, fmt.Sprintf("%s, отпишись сколько раз ты выполнил упражнение", text)) msg.ReplyMarkup = tgbot.NewRemoveKeyboard(false) _, _ = bot.Send(msg) - if err := dataBase.SetStatusToChat(chatID, db.UserStateNone); err != nil { - log.Println(err) - } continue case db.UserStateEat: count, err := strconv.Atoi(text) @@ -224,16 +247,12 @@ func run() { } func sendGoToChat(bot *tgbot.BotAPI, dataBase *db.DB, chatID int64) { - msg := tgbot.NewMessage(chatID, "Давай немного разомнемся, отжимания, отпишись сколько раз ты выполнил упражнение") - msg.ReplyMarkup = tgbot.NewReplyKeyboard( - tgbot.NewKeyboardButtonRow( - tgbot.NewKeyboardButton("1"), - tgbot.NewKeyboardButton("2"), - tgbot.NewKeyboardButton("3"), - tgbot.NewKeyboardButton("5"), - tgbot.NewKeyboardButton("8"), - ), - ) + msg := tgbot.NewMessage(chatID, "Давай немного разомнемся, выбирай:") + row := tgbot.NewKeyboardButtonRow() + for _, workoutType := range workoutTypes { + row = append(row, tgbot.NewKeyboardButton(workoutType)) + } + msg.ReplyMarkup = tgbot.NewReplyKeyboard(row) if _, err := bot.Send(msg); err == nil { if err := dataBase.SetStatusToChat(chatID, db.UserStateGo); err != nil { log.Println(err)