TamTamBot для питона ✔️
123 •
@pyBotApiFrm
Обсуждение, вопросы, предложения.
TamTamBot (TTB):
https://github.com/asvbkr/TamTamBot">https://github.com/asvbkr/TamTamBot
OpenAPI client (OAC):
https://github.com/asvbkr/openapi_client">https://github.com/asvbkr/openapi_client
* туториал - https://habr.com/ru/company/mailru/blog/466373/
* демобот - https://github.com/asvbkr/ttBotDemo">https://github.com/asvbkr/ttBotDemo
Его работающая инсталяция - @asvbkrTestBot1
* Другие примеры - https://github.com/asvbkr
(!) Здесь мы все на "ты"
RED
260
не критично
254
если так, как ты говоришь, то это бага скорее всего
RED
248
а.. ну тогда ладно
RED
247
это работает если юзеров руками добавляешь/выкидываешь. а если выходишь из чата или входишь по ссылке, болт
252
`def handle_user_added_to_chat_update(self, update): # type: (UserAddedToChatUpdate) -> bool pass def handle_user_removed_from_chat_update(self, update): # type: (UserRemovedFromChatUpdate) -> bool ...
По идее, перекрытие этих методов и даёт искомую реакцию
246
`def handle_user_added_to_chat_update(self, update):
# type: (UserAddedToChatUpdate) -> bool
pass
def handle_user_removed_from_chat_update(self, update):
# type: (UserRemovedFromChatUpdate) -> bool
pass
RED
249
нет никакого события от апи
RED
245
Сергей, как отловить самостоятельные входы/выходы пользователей в чат? принудительное добавление/удаление видно
254
Если во view_buttons передать апдейт от нажатия кнопки (MessageCallbackUpdate), и при этом вернуть обработчиком False, то получится так, что то, не удалённое, сообщение с кнопками будет редактироваться, а не генериться заново ...
Полезная информация, спасибо ;)
Иван
247
Спасибо, буду пробовать)
244
Но есть и с редактируемым меню
250
Мне кажется, что в основном, это дело вкусовых предпочтений разраба. Ну и уместности в конкретной реализации ...
У меня в основном используется меню с пересоздаваемыми кнопками
258
Мигает меньше)
Ну и, конечно, не двигается по истории чата
Мне кажется, что в основном, это дело вкусовых предпочтений разраба. Ну и уместности в конкретной реализации
263
Мигает меньше)
Ну и, конечно, не двигается по истории чата
Иван
246
Если во view_buttons передать апдейт от нажатия кнопки (MessageCallbackUpdate), и при этом вернуть обработчиком False, то получится так, что то, не удалённое, сообщение с кнопками будет редактироваться, а не генериться заново ...
Отличие для пользователей есть?
353
Кстати
Если во view_buttons передать апдейт от нажатия кнопки (MessageCallbackUpdate), и при этом вернуть обработчиком False, то получится так, что то, не удалённое, сообщение с кнопками будет редактироваться, а не генериться заново
Иван
250
Спасибо))
256
Да ты реализацию вью посмотри - там три строчки)
Иван
250
Ага, понял
249
вью само сообщение шлёт, а кнопки в атачи добавляет add_buttons_to_message_body
Иван
253
Внутри вызывается как раз add_buttons_to_message_body
View по сути сообщение шлёт с кнопками в attachments?
254
А если false вернуть, только сообщение перестанет удаляться или другое поведение поменяется?
Насколько помню, только удаляться перестанет)
252
Внутри вызывается как раз add_buttons_to_message_body
add_buttons_to_message_body формирует объект, а вью уже его показывает в чате
Иван
255
Если функция-обработчик кнопки возвращает True
А если false вернуть, только сообщение перестанет удаляться или другое поведение поменяется?
264
Внутри вызывается как раз add_buttons_to_message_body
Иван
246
Собственно показывает сообщение с кнопками
Не понял. Это используется отдельно от add_buttons_to_message?
Иван
261
Но этот метод только добавляет кнопки к месаге
Да, всё правильно. А потом сообщение исчезает, если на кнопку нажать
256
Может быть view_buttons ?
272
Использовал функцию add_buttons_to_message (вроде). На нажатие (по сути это вызов команды) отправлял стикер/сообщение. При этом сообщение с кнопкой удалялось ...
add_buttons_to_message_body видимо
Иван
267
Вот здесь поподробнее можно? Что используется?
Использовал функцию add_buttons_to_message (вроде). На нажатие (по сути это вызов команды) отправлял стикер/сообщение. При этом сообщение с кнопкой удалялось
Иван
246
Привет. Делается так:
1. В вызывающем коде с приглашением ко вводу явно указывается, что на текущее сообщение ожидается текстовый ответ:
`update.required_cmd_response = True`
2. Соответственно, любой ввод НЕ команды в этом случае будет восприниматься как ответ. В приходящем апдейте имеется признак, что это ...
Спасибо, попробую)
277
А, вот ещё вопрос. Это нормальное поведение, что при нажатии на кнопку сообщение удаляется?
Вот здесь поподробнее можно? Что используется?
379
Регистрация предыдущего шага есть
Привет. Делается так:
1. В вызывающем коде с приглашением ко вводу явно указывается, что на текущее сообщение ожидается текстовый ответ:
`update.required_cmd_response = True`
2. Соответственно, любой ввод НЕ команды в этом случае будет восприниматься как ответ. В приходящем апдейте имеется признак, что это именно ответ на предыдущую команду, а не новое сообщение:
`if update.this_cmd_response: ...
RED
246
тебе спасибо. обратил моё внимание на эту крутую фишку
Иван
251
Спасибо!
RED
248
т.е это особенность данной библиотеки. не баг, но фича
RED
247
это вызывается на каком то участке кода внутри TamTamBot. в моём боте своя система команд, поэтому я упразднил это всё в оригинальной библиотеке и выпиливание исчезло
Иван
249
Но в принципе норм. С этим можно жить, чтобы не редактировать сообщения. Мне важно было узнать, не баг ли я каким-то образом спровоцировал
Иван
249
Как я понял, каждая кнопка дёргает команду. Вот я в обработке команды ничего не удаляю. Видимо, пока до моего обработчика доходит, успевает где-то удалиться