Fix deadlock: get_group_member_info blocks receive loop

This commit is contained in:
LZDQ 2026-04-28 23:26:36 +08:00 committed by Xubin Ren
parent b1a3053ceb
commit 0c3063b78c

View File

@ -198,9 +198,9 @@ class NapcatChannel(BaseChannel):
post_type = payload.get("post_type") post_type = payload.get("post_type")
if post_type == "message": if post_type == "message":
await self._on_message(payload) asyncio.create_task(self._on_message(payload))
elif post_type == "notice": elif post_type == "notice":
await self._on_notice(payload) asyncio.create_task(self._on_notice(payload)) # avoid deadlock
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# Inbound: messages # Inbound: messages
@ -390,6 +390,7 @@ class NapcatChannel(BaseChannel):
{"group_id": group_id, "user_id": user_id, "no_cache": True}, {"group_id": group_id, "user_id": user_id, "no_cache": True},
) )
data = resp.get("data", {}) data = resp.get("data", {})
# logger.debug("get_group_member_info: {}", resp)
return data.get("card") or data.get("nickname") or str(user_id) return data.get("card") or data.get("nickname") or str(user_id)
except Exception as e: except Exception as e:
logger.warning("napcat: get_group_member_info failed: {}", e) logger.warning("napcat: get_group_member_info failed: {}", e)