diff --git a/olgram/settings.py b/olgram/settings.py
index 53761f4..1b30b34 100644
--- a/olgram/settings.py
+++ b/olgram/settings.py
@@ -2,8 +2,10 @@ from dotenv import load_dotenv
from abc import ABC
import os
import logging
-from olgram.utils.crypto import Cryptor
from functools import lru_cache
+from datetime import timedelta
+import typing as ty
+from olgram.utils.crypto import Cryptor
load_dotenv()
@@ -84,7 +86,13 @@ class ServerSettings(AbstractSettings):
def append_text(cls) -> str:
return "\n\nЭтот бот создан с помощью @OlgramBot"
- logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))
+ @classmethod
+ @lru_cache
+ def redis_timeout_ms(cls) -> ty.Optional[int]:
+ return int(timedelta(days=14).total_seconds() * 1000.0)
+
+
+logging.basicConfig(level=os.environ.get("LOGLEVEL", "WARNING"))
class BotSettings(AbstractSettings):
diff --git a/server/custom.py b/server/custom.py
index 540014b..b3dc473 100644
--- a/server/custom.py
+++ b/server/custom.py
@@ -52,7 +52,8 @@ async def message_handler(message: types.Message, *args, **kwargs):
# сообщение нужно переслать в супер-чат
new_message = await message.forward(super_chat_id)
- await _redis.set(_message_unique_id(bot.pk, new_message.message_id), message.chat.id)
+ await _redis.set(_message_unique_id(bot.pk, new_message.message_id), message.chat.id,
+ pexpire=ServerSettings.redis_timeout_ms())
# И отправить пользователю специальный текст, если он указан
if bot.second_text:
@@ -67,7 +68,8 @@ async def message_handler(message: types.Message, *args, **kwargs):
chat_id = message.reply_to_message.forward_from_chat
if not chat_id:
return SendMessage(chat_id=message.chat.id,
- text="Невозможно переслать сообщение: автор не найден",
+ text="Невозможно переслать сообщение: автор не найден "
+ "(сообщение слишком старое?)",
parse_mode="HTML")
chat_id = int(chat_id)