Вот проблема: бот не реагирует на клавиатуру или текст, например «1-7» или «х2», в режимах: «мистер» и «дабл». Он отвечает только в том случае, если я отправляю сообщение в ответ на сообщение бота, в котором была вызвана клавиатура. В режимах «колесо» и «кубики» я могу просто ввести «19-36» или «1», и ставка будет определена без ответа на сообщение. Почему это? Клавиатуры:
Я добавил логгер и заметил, что он вообще не видит текст в режимах «mr» и «double», только в ответ на сообщение. Для всего один текстовый обработчик, в других режимах он видит все ставки, даже предназначенные для других режимов - выдавая об этом ошибку.
Вот как это показано. В Wheel пишу или нажимаю кнопку не отвечая на сообщение и оно продолжается. В дубле пишу без ответа - игнорирую, с ответом - продолжайте.... Скриншот:
это колесо
двойное
Я пробовал удалить все, что работает в обработчике текста, и оставить только ['x2', 'x3'...] - не работает< /p>
В общем, я много чего перепробовал. Надеюсь на вашу помощь!
Вот проблема: бот не реагирует на клавиатуру или текст, например «1-7» или «х2», в режимах: «мистер» и «дабл». Он отвечает только в том случае, если я отправляю сообщение в ответ на сообщение бота, в котором была вызвана клавиатура. В режимах «колесо» и «кубики» я могу просто ввести «19-36» или «1», и ставка будет определена без ответа на сообщение. Почему это? [b]Клавиатуры:[/b] [code]def create_keyboard_wheel(): return types.ReplyKeyboardMarkup( keyboard=[ [types.KeyboardButton(text="1-18"), types.KeyboardButton(text="19-36")], [types.KeyboardButton(text="Черное"), types.KeyboardButton(text="Красное")], [types.KeyboardButton(text="Четное"), types.KeyboardButton(text="Нечетное")], [types.KeyboardButton(text="1-12"), types.KeyboardButton(text="13-22"), types.KeyboardButton(text="23-36")], [types.KeyboardButton(text="Число")], [types.KeyboardButton(text="Банк"), types.KeyboardButton(text="Профиль")] ], resize_keyboard=True, one_time_keyboard=False )
async with aiosqlite.connect("database/database.db") as db: await db.execute("UPDATE chats SET game_selected = ?, game = ? WHERE chat_id = ?", (True, game_choice, chat_id)) await db.commit()
await callback_query.message.answer(f"Вы выбрали игру: {game_choice}. Теперь вы можете начать делать ставки.\n\n", reply_markup=keyboard) [/code] [b]Обработчик текста:[/b]** [code]@dp.message_handler(lambda message: message.text in ["1-7", "8-14", "Четное", "Нечетное", "Число", "Черное", "Красное", "1-18", "19-36", "1-12", "13-22", "23-36", "1", "2", "3", "4", "5", "6", "2x", "3x", "5x", "40x"]) async def place_bet(message: types.Message): global betting_active, active_bets
bet_type = message.text user_id = message.from_user.id chat_id = message.chat.id await register_user(user_id, message.from_user.username) game_mode = await get_game_mode(chat_id) … [/code] [b]Функция регистрации работника в result.py:[/b] [code]def register_handlers_result(dp: Dispatcher): dp.register_message_handler(place_bet, lambda message: message.text in ["1-7", "8-14", "Четное", "Нечетное", "Число", "Черное", "Красное", "1-18", "19-36", "1-12", "13-22", "23-36", "1", "2", "3", "4", "5", "6"], state="*") [/code] [b]В main.py:[/b] [code]result.register_handlers_result(dp)[/code] Я добавил логгер и заметил, что он вообще не видит текст в режимах «mr» и «double», только в ответ на сообщение. Для всего один текстовый обработчик, в других режимах он видит все ставки, даже предназначенные для других режимов - выдавая об этом ошибку. Вот как это показано. В Wheel пишу или нажимаю кнопку не отвечая на сообщение и оно продолжается. В дубле пишу без ответа - игнорирую, с ответом - продолжайте.... [b]Скриншот:[/b] это колесо двойное Я пробовал удалить все, что работает в обработчике текста, и оставить только ['x2', 'x3'...] - не работает< /p> В общем, я много чего перепробовал. Надеюсь на вашу помощь!