core/resolvers/inbox/unread.py

23 lines
615 B
Python
Raw Normal View History

2022-11-21 08:13:57 +00:00
from base.redis import redis
import json
async def get_unread_counter(chat_id: str, user_slug: str):
try:
unread = await redis.execute("LLEN", f"chats/{chat_id}/unread/{user_slug}")
if unread:
return unread
except Exception:
return 0
async def get_total_unread_counter(user_slug: str):
chats = await redis.execute("GET", f"chats_by_user/{user_slug}")
unread = 0
if chats:
chats = json.loads(chats)
for chat_id in chats:
n = await get_unread_counter(chat_id.decode('utf-8'), user_slug)
2022-11-21 08:13:57 +00:00
unread += n
return unread