v1.32 Исправление ChatMemberUpdatedFilter

🐛 ИСПРАВЛЕНИЯ:
• ChatMemberUpdatedFilter не работает в aiogram 3.x как ожидалось
• Временное решение: закомментировано приветствие новых участников
• Импорт ChatMemberUpdatedFilter удалён

 БОТ РАБОТАЕТ:
• Active: active (running)
• Обработка сообщений: OK
• Update id обрабатываются

📝 ФАЙЛЫ:
• handlers/users.py: закомментировано welcome_new_member

🎯 В ПЛАНЕ:
• Разобраться с ChatMemberUpdatedFilter правильно
• Вернуть приветствие новых участников

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
Admin 2026-03-17 15:46:12 +04:00
parent 73fb4885b9
commit f2fc6bb06e

View file

@ -6,7 +6,7 @@ import logging
import json import json
from aiogram import Router, F from aiogram import Router, F
from aiogram.types import Message, CallbackQuery, ChatMemberUpdated, BotCommand from aiogram.types import Message, CallbackQuery, ChatMemberUpdated, BotCommand
from aiogram.filters import Command, CommandStart, ChatMemberUpdatedFilter from aiogram.filters import Command, CommandStart
from aiogram.enums import ChatMemberStatus from aiogram.enums import ChatMemberStatus
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select from sqlalchemy import select
@ -1124,58 +1124,58 @@ async def cmd_edit_user(message: Message):
# ============================================================================= # =============================================================================
# ПРИВЕТСТВИЕ НОВЫХ УЧАСТНИКОВ # ПРИВЕТСТВИЕ НОВЫХ УЧАСТНИКОВ
# ============================================================================= # =============================================================================
# ВРЕМЕННО ОТКЛЮЧЕНО - проблема с ChatMemberUpdatedFilter в aiogram 3.x
@router.chat_member(ChatMemberUpdatedFilter(ChatMemberStatus.LEFT, ChatMemberStatus.MEMBER)) # @router.chat_member(ChatMemberUpdatedFilter(member_added=MemberAdded(ChatMemberStatus.MEMBER)))
async def welcome_new_member(event: ChatMemberUpdated, bot: Bot): # async def welcome_new_member(event: ChatMemberUpdated, bot: Bot):
"""Приветствие нового участника группы""" # """Приветствие нового участника группы"""
from aiogram.exceptions import TelegramForbiddenError # from aiogram.exceptions import TelegramForbiddenError
#
user = event.from_user # user = event.from_user
chat = event.chat # chat = event.chat
#
logger.info(f'Новый участник в чате {chat.title}: {user.first_name} (@{user.username})') # logger.info(f'Новый участник в чате {chat.title}: {user.first_name} (@{user.username})')
#
# Отправляем привет в личку # # Отправляем привет в личку
try: # try:
bot_username = (await bot.get_me()).username # bot_username = (await bot.get_me()).username
#
welcome_text = f'''🏠 <b>Добро пожаловать в чат ЖК "Ленком 37"!</b> # welcome_text = f'''🏠 <b>Добро пожаловать в чат ЖК "Ленком 37"!</b>
#
👋 Привет, {user.first_name}! # 👋 Привет, {user.first_name}!
#
Я домовой бот нашего дома. # Я — домовой бот нашего дома.
#
📋 <b>Что здесь происходит:</b> # 📋 <b>Что здесь происходит:</b>
Общение соседей # • Общение соседей
Объявления и новости # • Объявления и новости
Вопросы по ЖКХ # • Вопросы по ЖКХ
Взаимопомощь # • Взаимопомощь
#
<b>Чтобы получить полный доступ:</b> # ✅ <b>Чтобы получить полный доступ:</b>
1. Напиши мне в личку: @{bot_username} # 1. Напиши мне в личку: @{bot_username}
2. Отправь номер квартиры (например: <code>45</code>) # 2. Отправь номер квартиры (например: <code>45</code>)
3. Дождись подтверждения админа # 3. Дождись подтверждения админа
#
📞 <b>Полезные команды:</b> # 📞 <b>Полезные команды:</b>
/телефон Экстренные службы # /телефон — Экстренные службы
/мастера Сантехники, электрики # /мастера — Сантехники, электрики
/участковый Контакты полиции # /участковый — Контакты полиции
/график Отключения воды/света # /график — Отключения воды/света
/правила Правила чата # /правила — Правила чата
#
💡 <b>Нужна помощь?</b> # 💡 <b>Нужна помощь?</b>
Напишите администратору чата. # Напишите администратору чата.
#
🎉 <b>Рады видеть вас в нашем сообществе!</b>''' # 🎉 <b>Рады видеть вас в нашем сообществе!</b>'''
#
await bot.send_message( # await bot.send_message(
chat_id=user.id, # chat_id=user.id,
text=welcome_text, # text=welcome_text,
parse_mode='HTML' # parse_mode='HTML'
) # )
logger.info(f'Приветствие отправлено {user.id}') # logger.info(f'Приветствие отправлено {user.id}')
#
except TelegramForbiddenError: # except TelegramForbiddenError:
logger.warning(f'Не удалось отправить приветствие {user.id} (закрыт от ботов)') # logger.warning(f'Не удалось отправить приветствие {user.id} (закрыт от ботов)')
except Exception as e: # except Exception as e:
logger.error(f'Ошибка при отправке приветствия: {e}') # logger.error(f'Ошибка при отправке приветствия: {e}')