Вы правы, объект `message` в библиотеке `python-telegram-bot` не обновляется самостоятельно, а обновляется только при каждом новом сообщении от пользователя. Таким образом, если пользователь не отправляет никаких новых сообщений, ваше время не будет обновляться.
Для решения вашей проблемы с уведомлениями, вы можете воспользоваться следующим подходом:
1. **Использование состояния пользователя**: Вместо попыток обновить объект `message`, вы можете хранить время последнего взаимодействия пользователя в памяти (например, в словаре) или в базе данных. Таким образом, каждая новая команда или сообщение от пользователя будет обновлять это значение.
2. **Хранение состояния без объектов**: В вашем коде создайте структуру данных для хранения времени взаимодействия, когда пользователь отправляет сообщение боту. Например:
```python
user_times = {} # Словарь для хранения времени последнего взаимодействия пользователей
```
При каждом сообщении обновляйте время:
```python
@bot.message_handler(func=lambda message: True)
def handle_message(message):
user_times[message.from_user.id] = message.date
# обработка сообщений
```
3. **Проверка времени в потоке уведомлений**: В вашем отдельном потоке вы можете проверять время в `user_times` и отправлять уведомления по мере необходимости:
```python
import time
def notification_thread():
while True:
current_time = int(time.time())
for user_id, last_interaction in user_times.items():
# Здесь вы можете сравнивать last_interaction с желаемым временем
# отправлять уведомления, если прошло достаточно времени
time.sleep(30) # ожидание 30 секунд
```
Таким образом, вы будете иметь актуальную информацию о времени последнего взаимодействия пользователя и сможете реализовать логику отправки уведомлений.
Этот подход не только упростит вашу логику, но и убережёт от лишнего обращения к объекту `message`, который обновляется только при новых сообщениях.