Как обновить текущее время в telebot

Ребят, подскажите по поводу телеграм бота:

У меня есть несколько текстовых файлов, в которые я сохранил расписание автобусов и мне нужно, чтобы при нажатии на кнопку в чате происходило следующее:

  • в переменную сохраняется текущая дата и время (час)
  • далее идет условие, если сегодня выходно/будни и текущий час больше или меньше 16, то в переменную сохраняется содержимое соответствующего текстового файла
  • далее в ответе выводится содержимое нужного текстового файла

Никак не могу сделать, чтобы при нажатии на кнопку обновлялось текущее время, т.е. проблема в том, что после того, как я бота запустил, текущий час, который проверятся в условии, сохраняется один раз и навсегда дальше уже больше не обновляется.

Я попробовал добавить в конец кода перед самым выводом еще раз сохранение в переменную текущего часа, на выводе текущий час обновляется, а в условии все равно остается тот, который был при запуске бота, т.е. например я запустил бота в 15 часов, прошло 2 часа, я заново нажимаю кнопку, в ответе будет 17 часов, а в условии, там, где проверка, что текущий час меньше 16 все равно будет сравниваться с 15 часами, т.е. с тем временем, когда был запущен бот. Подскажите, как это время обновлять при нажатии кнопки?

Возможно я написал сумбурно, вы подскажите, что нужно понятнее описать, уже просто голова не варит, пробовал и так и эдак, и функцию добавлял, чтобы при нажатии кнопки запускалась, которая будет время обновлять таймер пробовал делать, чтобы текущий час сам обновлялся раз в 60 минут, ничего не получается, все равно при проверке час сравнивается с часом запуска бота, а не с текущим.

import time  # модуль для запуска раз в 5 секунд
import datetime  # модуль для работы с датой
from telebot import types

# сохраняем время и день недели
now = datetime.datetime.today().now()  # сохраняем в переменную текущее время, дату и день недели
weekday = datetime.datetime.today().weekday()  # сохраняем в переменную текущий день недели, отсчет с 0
current_hour = int(now.strftime("%H"))  # сохраняем в переменную текущий час в числовом формате

# Загружаем расписание автобусов в зависимости от дня недели и текущего времени
# выхи - утро
if (weekday == 5 or weekday == 6) and current_hour <= 16:
    temp1 = open('data/bus/weekend_morning_to_home.txt', 'r', encoding='UTF-8')
    bus_to_home = temp1.read()  # расписание автобусов домой
    temp1.close()

    temp2 = open('data/bus/weekend_morning_to_job.txt', 'r', encoding='UTF-8')
    bus_to_job = temp2.read()  # расписание автобусов на джоб
    temp2.close()

# выхи - вечер
elif (weekday == 5 or weekday == 6) and current_hour > 16:
    temp5 = open('data/bus/weekend_evening_to_home.txt', 'r', encoding='UTF-8')
    bus_to_home = temp5.read()  # расписание автобусов домой
    temp5.close()

    temp6 = open('data/bus/weekend_evening_to_job.txt', 'r', encoding='UTF-8')
    bus_to_job = temp6.read()  # расписание автобусов на джоб
    temp6.close()

# будни - утро
elif (weekday != 5 and weekday != 6) and current_hour <= 16:
    temp3 = open('data/bus/workday_morning_to_home.txt', 'r', encoding='UTF-8')
    bus_to_home = temp3.read()  # расписание автобусов домой
    temp3.close()

    temp4 = open('data/bus/workday_morning_to_job.txt', 'r', encoding='UTF-8')
    bus_to_job = temp4.read()  # расписание автобусов на джоб
    temp4.close()

# будни - вечер
elif (weekday != 5 and weekday != 6) and current_hour > 16:
    temp7 = open('data/bus/workday_evening_to_home.txt', 'r', encoding='UTF-8')
    bus_to_home = temp7.read()  # расписание автобусов домой
    temp7.close()

    temp8 = open('data/bus/workday_evening_to_job.txt', 'r', encoding='UTF-8')
    bus_to_job = temp8.read()  # расписание автобусов на джоб
    temp8.close()

else:
    bus_to_home = 'заглушка'
    bus_to_job = 'заглушка'


bot = telebot.TeleBot('1706338684:AAGojuK3Xw50cqr1osXwC6uvTRql0gQ-5cw')  # Создаем бота

@bot.message_handler(commands=["start"])  # Команда start
def start(m, res=False):
    # Добавляем кнопки
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    item1 = types.KeyboardButton("Автобусы на джоб")
    item2 = types.KeyboardButton("Автобусы домой")
    markup.add(item1)
    markup.add(item2)
    bot.send_message(m.chat.id,
                     'Нажми нужную кнопку',
                     reply_markup=markup)

@bot.message_handler(content_types=["text"])  # Получение сообщений от юзера
def handle_text(message):
    global answer  # костыль - делаем переменную глобальной, а то периодчески вылетает с ошибкой
    if message.text.strip() == 'Автобусы на джоб':  # Если юзер нажал на кнопку, выдаем ему расписание
        answer = bus_to_job
    elif message.text.strip() == 'Автобусы домой':  # Если юзер нажал на кнопку, выдаем ему расписание
        answer = bus_to_home

    # обновляем текущее время
    now = datetime.datetime.today().now()  # сохраняем в переменную текущее время, дату и день недели
    weekday = datetime.datetime.today().weekday()  # сохраняем в переменную текущий день недели, отсчет с 0
    current_hour = int(now.strftime("%H"))# сохраняем в переменную текущий час в числовом формате
    current_hour = 'Текущий час + 3 для расчетов: ' + str(current_hour + 3) + '\n' # добавляем к текущему часу 3
    current_time = 'Текущее время сервера: ' + now.strftime("%H:%M:%S") + '\n'  # текущее время

    answer += '\n' + current_hour + current_time  # добавление в вывод текущего времени и версии бота
    bot.send_message(message.chat.id, answer)  # Отсылаем юзеру сообщение в его чат

bot.polling(none_stop=True, interval=0)  # Запускаем бота


Ответы (0 шт):