0 / 0 / 0
Регистрация: 20.07.2020
Сообщений: 1

Есть инлайн кнопки “лайк”, “дизлайк” Телеграм бот. Как изменить значение кнопки после нажатия на неё?

20.07.2020, 17:17. Показов 2175. Ответов 0

Студворк — интернет-сервис помощи студентам
Решил засунуть переменные quant1 и quant2 в строки кнопок. Но как их изменить по нажатию на кнопку не знаю. Смастерил вот такой код. Но по нажатию вылезает ошибка:

**File "bottwo.py", line 86, in callback_vote_action
quant1 += 1
TypeError: can only concatenate tuple (not "int") to tuple**

Вроде понятно что с числами в строке он работать не хочет, но как тогда сделать так чтобы он работал?


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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  # обновление количества лайков в хранилище
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.07.2020, 17:17
Ответы с готовыми решениями:

Как редактировать сообщение после нажатия инлайн кнопки?
Здравствуйте! Нужно чтоб после нажатия инлайн кнопки бот не отправлял новое сообщение, а редактировал старое Не получается сделать ...

WPF Datagrid Изменить цвет кнопки после нажатия на нее
Ребята помогите плиз, всю голову уже сломал. Суть в чем, есть Datagrid и в нем есть темплейт кнопок: &lt;DataGridTemplateColumn...

Как изменить текст после нажатия кнопки
$(document).on(&quot;click&quot;, &quot;#toggle-chat&quot;, function() { if($('#chat-main').is(':visible')) { ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.07.2020, 17:17
Помогаю со студенческими работами здесь

Рандомное появление кнопки после нажатия на неё
здравствуйте, я новичок в unity , если поможете буду рад , не могу написать скрипт на рандомное появление кнопки после нажатия на неё та...

Блокировка кнопки после 1-го нажатия на нее, параллельно выполние другой команды
Доброй ночи. Подскажите, пожалуйста, каким образом реализовать, чтобы при нажатии левой кнопкой мыши на кнопку выполнялись сразу 2...

Как оставить значение в поле после нажатия кнопки?
Помогите пожалуйста делаю лабу,нада написать мини калькулятор на php.сам калькулятор написал. но когда нажимаю на кнопку посчитать все...

Как изменить значение логического поля одновременно в двух таблицах путём нажатия кнопки?
Доброго времени суток. Заранее извиняюсь если похожий вопрос уже задавали а я его не заметил. К сути вопроса- Есть форма, на ней 2...

Как после нажатия кнопки присвоить SpinBox значение Maximum
Есть кнопка и поле текста, программа считает цифры в тексте. Если пользователь вводит значение больше количества цифр в тексте происходит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru