Как можно остановить цикл в боте по нажатию кнопки?
Для того чтобы остановить выполнение цикла while при нажатии на кнопку InlineKeyboardButton в телеграм-боте, можно использовать переменную-флаг, которая будет изменяться при нажатии на кнопку. Например: ```python flag = False def start(bot, update): global flag flag = True while flag: # ваш код цикла def stop(bot, update): global flag flag = False ``` В данном примере, при нажатии на кнопку "стоп" будет изменяться значение переменной flag на False, что приведет к остановке выполнения цикла while. Также, можно использовать другие способы для остановки цикла, например, использование функции break внутри цикла при определенном условии.
В while поменяйте OR на AND.
Начинайте думать асинхронно и в терминах потоков, которые выполняются паралельно.
Как подобное реализовать.
бот получил команду начать цикл.
быстро ответил сообщением и запомнил номер для последующего его редактирования.
апи телеграма получило свой ответ в установленное время.
Теперь запускается новый поток, который проверяет из главного флаг (надоПрерваться)
если прошло время ожидания и нет команды остановиться - послать апи команду редактирования сообщения
заснуть до следующего раза
Если пришла команда остановиться, то поставить флаг в Труе. Ответить апи формальным ответом, что команда принята.
Все это делать с учетом, что разные пользователи могут использовать бот одновременно. То есть все еще привязовать к тиду пользователя. У каждого свой тред и флаг.
В дальнейшем подумать как не плодить треды на каждого.