Не могу понять как сделать разделение сообщения в telebot
Пользователь пишет боту Казино 1 и бот должен указать второй аргумент(сумму) 1 как сумму ставки, но у меня почему то не получается делить обычное сообщение. Если оно будет указано как команда - /casino 1, то все будет работать и бот будет видеть второй аргумент(сумму) в сообщении. Как я могу решить эту проблему, может что-то не так прописываю? Работаю с telebot на python, используя базу данных sqlite3
Коды:
Вызов функции:
@bot.message_handler(content_types=['text'])
def commands(message):
user_id = message.chat.id
conn = sqlite3.connect('database.db', check_same_thread=False)
cur = conn.cursor()
cur.execute('SELECT user_id FROM users WHERE user_id = ("%s")' % user_id)
users = cur.fetchall()
conn.commit()
if len(users) == 0:
bot.send_message(message.chat.id, 'Обманщик..\n\nНеобходимо зарегистрироваться - /start')
else:
if message.text == 'Казино':
casino(message)
Код написал не полностью, по этому закрытие соединения с базой данных есть, просто не указано здесь.
Обработка сообщения:
def casino(message):
user_id = message.chat.id
conn = sqlite3.connect('database.db', check_same_thread=False)
cur = conn.cursor()
cur.execute('SELECT balance FROM users WHERE user_id = ("%s")' % user_id)
users = cur.fetchall()
conn.commit()
for user in users:
duration = 0
args = message.text.split()[1]
if args:
try:
duration = int(args[0])
except ValueError:
bot.send_message(message.chat.id, text='Ошибка')
return
if duration > user[0]:
bot.send_message(message.chat.id, text='Превышен баланс')
return
bot.send_message(message.chat.id, text=f'{duration}')
cur.close()
conn.close()
Ответы (1 шт):
Автор решения: panickx
→ Ссылка
Оказалось нужно было использовать:
message.text.startswith('Казино') для определения иных аргументов, кроме 0 - Казино