Телеграм бот. Не срабатывает NEW_CHAT_MEMBER из-за других ботов

Рейтинг: 0Ответов: 1Опубликовано: 26.05.2023

Не срабатывает хендлер новых пользователей. Другие боты по типу ириса удаляют сообщение о том, что пользователь был приглашен из-за чего код не срабатывает (в беседах где сообщение не удаляется все работает), как-то можно это исправить?

@dp.message_handler(content_types=types.ContentType.NEW_CHAT_MEMBERS)
async def on_user_joined(message: types.Message, chat: types.Chat):
    who_invited = message.from_user.full_name
    chat_id = message.chat.id
    user_id_invited = message.from_user.id
    balance = botBd.getBalance(message.from_user.id)[0]
    balanceChat = botBd.getBalanceChat(message.chat.id)
    limit = botBd.getLimitChat(message.chat.id)
    if limit <= balanceChat:
        botBd.cursor.execute('UPDATE chat SET chat_balance = ? WHERE chat_id = ?',
                             ((balanceChat - limit), chat_id,))
        botBd.cursor.execute('UPDATE users SET balance = ? WHERE user_id = ?',
                             ((balance + limit), user_id_invited,))
        botBd.conn.commit()
        await message.answer(f"{who_invited} за приглашение получает бонус в размере {limit} руби!")
    else:
        pass

Ответы

▲ 0Принят

Решил. Проблема была не в ирисе, а в типе чата. Как оказалось, он не срабатывал в супергруппе.

@dp.message_handler(content_types=types.ContentType.NEW_CHAT_MEMBERS)
async def new_member(message: types.Message):
    if (message.chat.type == 'group' or message.chat.type == 'supergroup'): // вот и вся проблема