from typing import Any
from aiogram.filters import BaseFilter
from aiogram import types, Bot
from config import CHANNEL_ID
from database.db import DataBase
class ChatJoinFilter(BaseFilter):
async def __call__(self, message: types.Message, bot: Bot) -> Any:
chat_member = await bot.get_chat_member(chat_id=CHANNEL_ID,
user_id=message.from_user.id)
if (chat_member.status.value == "member" or
chat_member.status.value == "creator"):
return True
return False
class RegisteredFilter(BaseFilter):
async def __call__(self, callback: types.CallbackQuery) -> Any:
return not await DataBase.get_user(callback.from_user.id) is None
它给出了一个错误,请告诉我脚本中的问题在哪里?
check = await event_filter.call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/dist-packages/aiogram/dispatcher/event/handler.py", line 43, in call
return await wrapped()
^^^^^^^^^^^^^^^
File "/root/bot/other/filters.py", line 15, in __call__
if (chat_member.status.value == "member" or chat_member.status.value == "creator"):
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'str' object has no attribute 'value'
如果您打开文档,您可以阅读ChatMember
bot.get_chat_member对象返回的内容:这些对象中的每一个都有一个
status返回string的属性,而该字符串没有属性,value这就是错误的实际含义:更正: