Skip to content

Commit 7fa365e

Browse files
committed
fix(afk): improve user retrieval logic in get_user_from_entity function
1 parent fea8939 commit 7fa365e

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

src/korone/modules/afk/handlers/check.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,22 @@ async def get_user_from_entity(
4545
) -> User | None:
4646
if entity.type == MessageEntityType.MENTION:
4747
username = message.text[entity.offset : entity.offset + entity.length]
48-
data = await get_user(username)
49-
if not data:
50-
return None
51-
52-
chat_id = data[0]["id"]
5348
try:
54-
return await client.get_chat(chat_id) # type: ignore
55-
except PeerIdInvalid:
56-
return None
57-
return entity.user if entity.type == MessageEntityType.TEXT_MENTION else None
49+
return await client.get_chat(username) # type: ignore
50+
except (PeerIdInvalid, BadRequest):
51+
data = await get_user(username)
52+
if not data:
53+
return None
54+
55+
chat_id = data[0]["id"]
56+
try:
57+
return await client.get_chat(chat_id) # type: ignore
58+
except PeerIdInvalid:
59+
return None
60+
elif entity.type == MessageEntityType.TEXT_MENTION:
61+
return entity.user
62+
63+
return None
5864

5965

6066
async def send_afk_message(user: User, message: Message) -> None:

0 commit comments

Comments
 (0)