INNER CODE UNIT · Python
_event_hook
GraiaProject/Ariadne · src/graia/ariadne/app.py:221
async def _event_hook(self, event: MiraiEvent):
with ExitStack() as stack:
stack.enter_context(enter_context(self, event))
sys.audit("AriadnePostRemoteEvent", event)
cache_set = self.launch_manager.get_interface(Memcache).set
if isinstance(event, (MessageEvent, ActiveMessage)):
await cache_set(f"account.{self.account}.message.{int(event)}", event, timedelta(seconds=120))
if not event.message_chain:
event.message_chain.append("<! 不支持的消息类型 !>")
if isinstance(event, FriendEvent):
stack.enter_context(enter_message_send_context(UploadMethod.Friend))
friend: Optional[Friend] = getattr(event, "sender", None) or getattr(event, "friend", None)
if friend:
await cache_set(
f"account.{self.account}.friend.{int(friend)}", friend, timedelta(seconds=120)