Решил засунуть переменные quant1 и quant2 в строки кнопок. Но как их изменить по нажатию на кнопку не знаю. Смастерил вот такой код. Но по нажатию вылезает ошибка:
**File "bottwo.py", line 86, in callback_vote_action
quant1 += 1
TypeError: can only concatenate tuple (not "int") to tuple**
Вроде понятно что с числами в строке он работать не хочет, но как тогда сделать так чтобы он работал?
vote_cb = CallbackData('vote', 'action') # vote:<action>
likes = {} # user_id: amount_of_likes
def get_keyboard():
quant1 = 0
quant2 = 0
butlike = types.InlineKeyboardButton(' ' + str(quant1), callback_data=vote_cb.new(action='up'))
butdilike = types.InlineKeyboardButton(' ' + str(quant2), callback_data=vote_cb.new(action='down'))
return types.InlineKeyboardMarkup().row(butlike, butdilike)
@dp.callback_query_handler(vote_cb.filter(action=['up', 'down']))
async def callback_vote_action(query: types.CallbackQuery, callback_data: dict):
logging.info('Получил данные обратного вызова: %r', callback_data) # callback_data содержит всю информацию из данных обратного вызова
await query.answer() # Не забудьте ответить на запрос обратного вызова как можно скорее
callback_data_action = callback_data['action']
likes_count = likes.get(query.from_user.id, 0)
if callback_data_action == 'up':
likes_count += 1
for quant1 in get_keyboard():
quant1 += 1
if likes_count == 1:
pass
else:
likes_count -= 1
for quant2 in get_keyboard():
quant2 += 1
if likes_count == 0:
pass
likes[query.from_user.id] = likes_count # обновление количества лайков в хранилище