core/services/unread.py

17 lines
532 B
Python
Raw Normal View History

2023-10-23 14:47:11 +00:00
from services.rediscache import redis
2023-10-16 14:50:05 +00:00
2023-10-05 19:59:50 +00:00
2023-10-16 14:50:05 +00:00
async def get_unread_counter(chat_id: str, author_id: int) -> int:
2023-12-17 20:30:20 +00:00
unread: int = await redis.execute("LLEN", f"chats/{chat_id}/unread/{author_id}") or 0
return unread
2023-10-05 19:59:50 +00:00
2023-10-16 14:50:05 +00:00
async def get_total_unread_counter(author_id: int) -> int:
2023-10-16 16:00:18 +00:00
chats_set = await redis.execute("SMEMBERS", f"chats_by_author/{author_id}")
2023-10-05 19:59:50 +00:00
unread = 0
2023-12-17 20:30:20 +00:00
if chats_set:
for chat_id in list(chats_set):
n = await get_unread_counter(chat_id, author_id)
unread += n
2023-10-05 19:59:50 +00:00
return unread