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)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…