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