Николай Армоньев
Мыслитель
(6412)
2 месяца назад
import time
import telebot
# Инициализация бота с вашим токеном
bot = telebot.TeleBot('YOUR_TOKEN_HERE')
# Установка времени работы бота
start_time = time.time() # Запоминаем время начала работы
min = 2 # Минимальное количество минут
minutes = min * 60 # Превращаем минуты в секунды
# Цикл, который работает в течение указанного времени
while (time.time() - start_time) < minutes:
# Вывод оставшегося времени
remaining_time = minutes - (time.time() - start_time)
print(f"Осталось секунд: {int(remaining_time)}")
time.sleep(1) # Пауза в 1 секунду
# Функция-обработчик сообщений
@bot.message_handler(content_types=['text', 'document', 'audio'])
def get_text_messages(message):
# Отправляем сообщение пользователю
bot.send_message(message.chat.id, "Бот занят, пожалуйста, подождите.")
# Запуск бота
bot.polling(none_stop=True)
В этом коде бот не отвечает на сообщения в течение заданного времени (2 минуты). После завершения цикла, он готов обрабатывать сообщения. Важно заменить 'YOUR_TOKEN_HERE' на актуальный токен вашего бота.
Николай АрмоньевМыслитель (6412)
2 месяца назад
Для реализации таймера в цикле, который будет сообщать о времени, оставшемся до завершения, можно использовать потоки (threads) в Python. Это позволит нам создать отдельный поток для обновления времени, пока основной поток выполняет свои задачи. Вот пример решения:
import time
import threading
def countdown(t):
while t:
mins, secs = divmod(t, 60)
timer = '{:02d}:{:02d}'.format(mins, secs)
print(f'Оставшееся время: {timer}', end='\\r')
time.sleep(1)
t -= 1
print('Время вышло!')
def main_task():
# Имитация выполнения основной задачи (например, длительные вычисления)
time.sleep(10) # Замените это время на вашу задачу
# Устанавливаем время в секундах
total_time = 10
Николай АрмоньевМыслитель (6412)
2 месяца назад
# Запускаем таймер в отдельном потоке
timer_thread = threading.Thread(target=countdown, args=(total_time,))
timer_thread.start()
# Выполняем основную задачу
main_task()
# Ожидаем завершения потока с таймером
timer_thread.join()
В данном коде создана функция countdown, которая отсчитывает время и выводит его на экран. Основная задача выполняется в функции main_task. Таймер запущен в отдельном потоке, что позволяет ему обновляться параллельно с выполнением задачи.
min=2
minutes=min*60#количество секунд
while (start_time+(minutes)) - start_time != 0:
print((start_time+(minutes)) - start_time) time.sleep(1)#пауза в секундах
minutes-=1#уменьшаем количество минут
@bot.message_handler(content_types=['text', 'document', 'audio'])
def get_text_messages(message):
bot.send_message(message.chat.id, min)