Files
2026-04-16 13:14:11 +00:00

25 lines
1.0 KiB
Python

from aiogram import Router
from aiogram.types import ChatMemberUpdated
from core.cache_config import BLOCKED_EVENTS_REDIS_KEY
from core.redis_cache import cache_rpush
from logger import logger
router = Router(name="chat_member_router")
@router.my_chat_member()
async def on_my_chat_member(event: ChatMemberUpdated):
tg_id = event.from_user.id
new_status = event.new_chat_member.status
if new_status == "kicked":
await cache_rpush(BLOCKED_EVENTS_REDIS_KEY, {"tg_id": tg_id, "action": "block"})
logger.info(f"[ChatMember] Пользователь {tg_id} заблокировал бота → событие в Redis")
elif new_status == "member":
old_status = event.old_chat_member.status if event.old_chat_member else None
if old_status in ("kicked", "left"):
await cache_rpush(BLOCKED_EVENTS_REDIS_KEY, {"tg_id": tg_id, "action": "unblock"})
logger.info(f"[ChatMember] Пользователь {tg_id} разблокировал бота → событие в Redis")