diff --git a/.buildinfo b/.buildinfo index efffe7f0..cb5e23d7 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: e8a73d4e7571c039e311dfb043fdab87 +config: d606eebf036f6e434f9db7d78a4c9e18 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/_modules/index.html b/_modules/index.html index 3e3a2cff..8b4a1803 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -6,7 +6,7 @@ - 概览:模块代码 - MeloBot 2.5.6 + 概览:模块代码 - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7
- + diff --git a/_modules/melobot/base/abc.html b/_modules/melobot/base/abc.html index cc58216a..3219d2d3 100644 --- a/_modules/melobot/base/abc.html +++ b/_modules/melobot/base/abc.html @@ -6,7 +6,7 @@ - melobot.base.abc - MeloBot 2.5.6 + melobot.base.abc - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -226,7 +226,13 @@

melobot.base.abc 源代码

 from abc import ABC, abstractmethod, abstractproperty
 from copy import deepcopy
 
-from .exceptions import BotActionError, BotCheckerError, BotMatcherError, TryFlagFailed
+from .exceptions import (
+    BotActionError,
+    BotCheckerError,
+    BotMatcherError,
+    TryFlagFailed,
+    get_better_exc,
+)
 from .typing import (
     TYPE_CHECKING,
     Any,
@@ -264,24 +270,21 @@ 

melobot.base.abc 源代码

        一般无需手动实例化该类,多数情况会直接使用本类对象,或将本类用作类型注解。
     """
 
-    def __init__(
-        self,
-        max_retry: int,
-        retry_delay: float,
-        cd_time: float,
-    ) -> None:
+    def __init__(self, cd_time: float) -> None:
         super().__init__()
+        #: 连接器的日志器
+        self.logger: "Logger"
         #: 是否在 slack 状态
         self.slack: bool = False
-        #: 连接失败最大重试次数
-        self.max_retry: int = max_retry
-        #: 连接失败重试间隔
-        self.retry_delay: float = retry_delay if retry_delay > 0 else 0
         #: 连接器发送行为操作的冷却时间
         self.cd_time = cd_time
 
         self._ref_flag: bool = False
         self._ready_signal = asyncio.Event()
+        self._event_builder: Type["BotEventBuilder"]
+        self._bot_bus: "BotHookBus"
+        self._common_dispatcher: "BotDispatcher"
+        self._resp_dispatcher: "BotResponder"
 
     @abstractmethod
     async def __aenter__(self):
@@ -291,12 +294,17 @@ 

melobot.base.abc 源代码

     async def __aexit__(
         self, exc_type: Type[Exception], exc_val: Exception, exc_tb: ModuleType
     ) -> bool:
-        pass
+        if exc_type is None:
+            return True
+        elif exc_type == asyncio.CancelledError:
+            return True
+        else:
+            self.logger.error("连接器出现预期外的异常:\n" + get_better_exc(exc_val))
+            return False
 
     def _set_ready(self) -> None:
         self._ready_signal.set()
 
-    @abstractmethod
     def _bind(
         self,
         dispatcher: "BotDispatcher",
@@ -305,10 +313,14 @@ 

melobot.base.abc 源代码

         bot_bus: "BotHookBus",
         logger: "Logger",
     ) -> None:
-        pass
+        self._event_builder = event_builder
+        self._bot_bus = bot_bus
+        self.logger = logger
+        self._common_dispatcher = dispatcher
+        self._resp_dispatcher = responder
 
     @abstractmethod
-    async def _start_tasks(self) -> list[asyncio.Task]:
+    async def _alive_tasks(self) -> list[asyncio.Task]:
         pass
 
     @abstractmethod
@@ -853,7 +865,7 @@ 

melobot.base.abc 源代码

       
     
   
-
+
diff --git a/_modules/melobot/base/exceptions.html b/_modules/melobot/base/exceptions.html index c02b9d33..06379844 100644 --- a/_modules/melobot/base/exceptions.html +++ b/_modules/melobot/base/exceptions.html @@ -6,7 +6,7 @@ - melobot.base.exceptions - MeloBot 2.5.6 + melobot.base.exceptions - MeloBot 2.5.7 @@ -124,7 +124,7 @@
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -401,7 +401,7 @@

melobot.base.exceptions 源代码

       
     
   
-
+
diff --git a/_modules/melobot/base/tools.html b/_modules/melobot/base/tools.html index 7f38af96..8e3aa96f 100644 --- a/_modules/melobot/base/tools.html +++ b/_modules/melobot/base/tools.html @@ -6,7 +6,7 @@ - melobot.base.tools - MeloBot 2.5.6 + melobot.base.tools - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -912,7 +912,7 @@

melobot.base.tools 源代码

       
     
   
-
+ diff --git a/_modules/melobot/base/typing.html b/_modules/melobot/base/typing.html index 14f33dea..878e22cc 100644 --- a/_modules/melobot/base/typing.html +++ b/_modules/melobot/base/typing.html @@ -6,7 +6,7 @@ - melobot.base.typing - MeloBot 2.5.6 + melobot.base.typing - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -383,10 +383,15 @@

melobot.base.typing 源代码

 
 
 
+#: 泛型 T,无约束
 T = TypeVar("T")
+#: 泛型 T,无约束
 T1 = TypeVar("T1")
+#: 泛型 T,无约束
 T2 = TypeVar("T2")
+#: 泛型 T,无约束
 T3 = TypeVar("T3")
+#: :obj:`typing.ParamSpec` 泛型 P,无约束
 P = ParamSpec("P")
 
 
@@ -445,7 +450,7 @@ 

melobot.base.typing 源代码

       
     
   
-
+
diff --git a/_modules/melobot/bot/init.html b/_modules/melobot/bot/init.html index 3a31c816..b30d6b01 100644 --- a/_modules/melobot/bot/init.html +++ b/_modules/melobot/bot/init.html @@ -6,7 +6,7 @@ - melobot.bot.init - MeloBot 2.5.6 + melobot.bot.init - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -229,7 +229,7 @@

melobot.bot.init 源代码

 
 from ..base.abc import AbstractConnector
 from ..base.exceptions import BotRuntimeError, DuplicateError, get_better_exc
-from ..base.tools import get_rich_str
+from ..base.tools import get_rich_str, to_task
 from ..base.typing import (
     TYPE_CHECKING,
     Any,
@@ -454,9 +454,12 @@ 

melobot.bot.init 源代码

                 self._dispatcher._set_ready()
                 self._responder._set_ready()
                 self.connector._set_ready()
-                self._life = await self.connector._start_tasks()
+                self._life = await self.connector._alive_tasks()
                 self.__run_flag__ = True
                 self.logger.info("bot 开始正常运行")
+                self.logger.debug(
+                    f"使用的连接器类型:{self.connector.__class__.__name__}"
+                )
                 await asyncio.wait(self._life)
         except Exception as e:
             self.logger.error(f"bot 核心无法继续运行。异常:{e}")
@@ -601,7 +604,7 @@ 

melobot.bot.init 源代码

         async def bots_run():
             tasks = []
             for bot in bots:
-                tasks.append(asyncio.create_task(bot._run()))
+                tasks.append(to_task(bot._run()))
             try:
                 await asyncio.wait(tasks)
             except asyncio.CancelledError:
@@ -683,7 +686,7 @@ 

melobot.bot.init 源代码

         tasks = []
         for name in _targets:
             tasks.append(
-                asyncio.create_task(
+                to_task(
                     cls.unicast(name, namespace, signal, *args, **kwargs, wait=wait)
                 )
             )
@@ -759,7 +762,7 @@ 

melobot.bot.init 源代码

       
     
   
-
+
diff --git a/_modules/melobot/context/action.html b/_modules/melobot/context/action.html index f5d910d5..827e1ef2 100644 --- a/_modules/melobot/context/action.html +++ b/_modules/melobot/context/action.html @@ -6,7 +6,7 @@ - melobot.context.action - MeloBot 2.5.6 + melobot.context.action - MeloBot 2.5.7 @@ -124,7 +124,7 @@
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -1799,7 +1799,7 @@

melobot.context.action 源代码

       
     
   
-
+
diff --git a/_modules/melobot/context/session.html b/_modules/melobot/context/session.html index c29d142f..4edc8a9f 100644 --- a/_modules/melobot/context/session.html +++ b/_modules/melobot/context/session.html @@ -6,7 +6,7 @@ - melobot.context.session - MeloBot 2.5.6 + melobot.context.session - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -840,7 +840,7 @@

melobot.context.session 源代码

       
     
   
-
+ diff --git a/_modules/melobot/io/forward_ws.html b/_modules/melobot/io/forward_ws.html index 6c7f78f7..450d1035 100644 --- a/_modules/melobot/io/forward_ws.html +++ b/_modules/melobot/io/forward_ws.html @@ -6,7 +6,7 @@ - melobot.io.forward_ws - MeloBot 2.5.6 + melobot.io.forward_ws - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -230,24 +230,27 @@

melobot.io.forward_ws 源代码

 
 from ..base.abc import AbstractConnector, BotLife
 from ..base.exceptions import BotConnectFailed, get_better_exc
-from ..base.tools import get_rich_str
+from ..base.tools import get_rich_str, to_task
 from ..base.typing import TYPE_CHECKING, ModuleType, Type
 
 if TYPE_CHECKING:
-    import websockets.legacy.client as wlc
+    import websockets.client
 
     from ..base.abc import BotAction
-    from ..bot.hook import BotHookBus
-    from ..controller.dispatcher import BotDispatcher
-    from ..controller.responder import BotResponder
-    from ..models.event import BotEventBuilder
-    from ..utils.logger import Logger
 
 
 
[文档] class ForwardWsConn(AbstractConnector): - """正向 websocket 连接器""" + """正向 websocket 连接器 + + .. admonition:: 注意 + :class: caution + + 注意:在 melobot 中,正向 websocket 连接器会开启一个 ws 客户端。这个客户端只能和一个服务端通信。 + + 正向 websocket 通信方式暂时不支持断连后尝试重连。断连后将会直接停止 bot + """
[文档] @@ -261,40 +264,26 @@

melobot.io.forward_ws 源代码

     ) -> None:
         """初始化一个正向 websocket 连接器
 
-        :param connect_host: 连接的 hostname
+        :param connect_host: 连接的 host
         :param connect_port: 连接的 port
-        :param max_retry: 最大重试次数,默认 -1 代表无限次重试
-        :param retry_delay: 重试间隔时间
-        :param cd_time: action 发送冷却时间(用于防止风控)
+        :param max_retry: 初始连接最大重试次数,默认 -1 代表无限次重试
+        :param retry_delay: 初始连接重试间隔时间
+        :param cd_time: 行为操作冷却时间(用于防止风控)
         """
-        super().__init__(max_retry, retry_delay, cd_time)
-        self.logger: "Logger"
+        super().__init__(cd_time)
+        #: 连接失败最大重试次数
+        self.max_retry: int = max_retry
+        #: 连接失败重试间隔
+        self.retry_delay: float = retry_delay if retry_delay > 0 else 0
+        #: ws 连接的 url(形如:ws://xxx:xxx)
         self.url = f"ws://{connect_host}:{connect_port}"
-        self.conn: "wlc.Connect"
+        #: 连接对象
+        self.conn: "websockets.client.WebSocketClientProtocol"
 
-        self._event_builder: Type["BotEventBuilder"]
-        self._bot_bus: "BotHookBus"
         self._send_queue: asyncio.Queue["BotAction"] = asyncio.Queue()
-        self._pre_send_time = time.time()
-        self._common_dispatcher: "BotDispatcher"
-        self._resp_dispatcher: "BotResponder"
+ self._pre_send_time = time.time()
- def _bind( - self, - common_dispatcher: "BotDispatcher", - resp_dispatcher: "BotResponder", - event_builder: Type["BotEventBuilder"], - bot_bus: "BotHookBus", - logger: "Logger", - ) -> None: - """绑定其他核心组件的方法。""" - self._event_builder = event_builder - self._bot_bus = bot_bus - self.logger = logger - self._common_dispatcher = common_dispatcher - self._resp_dispatcher = resp_dispatcher - async def _start(self) -> None: """启动连接.""" iterator = count(0) if self.max_retry < 0 else range(self.max_retry + 1) @@ -317,6 +306,7 @@

melobot.io.forward_ws 源代码

     async def _close(self) -> None:
         """关闭连接."""
         await self.conn.close()
+        await self.conn.wait_closed()
         self.logger.info("连接器与前端的连接已安全关闭")
 
     async def __aenter__(self) -> "ForwardWsConn":
@@ -327,13 +317,7 @@ 

melobot.io.forward_ws 源代码

         self, exc_type: Type[Exception], exc_val: Exception, exc_tb: ModuleType
     ) -> bool:
         await self._close()
-        if exc_type is None:
-            return True
-        elif exc_type == asyncio.CancelledError:
-            return True
-        else:
-            self.logger.error("连接器出现预期外的异常:\n" + get_better_exc(exc_val))
-            return False
+        return await super().__aexit__(exc_type, exc_val, exc_tb)
 
     async def _send(self, action: "BotAction") -> None:
         """发送一个 action 给连接器。实际上是先提交到 send_queue."""
@@ -368,10 +352,10 @@ 

melobot.io.forward_ws 源代码

         except asyncio.CancelledError:
             self.logger.debug("连接器发送队列监视任务已被结束")
         except wse.ConnectionClosed:
-            self.logger.error("连接器与前端的通信已经断开,无法再执行行为操作")
+            self.logger.error("连接器与前端的通信已经停止,无法再执行行为操作")
 
     async def _listen(self) -> None:
-        """从连接器接收一个事件,并转化为 BotEvent 对象传递给 dispatcher 处理."""
+        """从前端接收一个事件,并处理"""
         await self._ready_signal.wait()
 
         try:
@@ -387,24 +371,24 @@ 

melobot.io.forward_ws 源代码

                         + get_rich_str(event.raw)
                     )
                     if event.is_resp_event():
-                        asyncio.create_task(self._resp_dispatcher.respond(event))  # type: ignore
+                        to_task(self._resp_dispatcher.respond(event))  # type: ignore
                     else:
-                        asyncio.create_task(self._common_dispatcher.dispatch(event))  # type: ignore
+                        to_task(self._common_dispatcher.dispatch(event))  # type: ignore
                 except wse.ConnectionClosed:
                     raise
                 except Exception as e:
-                    self.logger.error("bot life_task 抛出异常")
+                    self.logger.error("bot 连接器监听任务抛出异常")
                     self.logger.error(f"异常点 raw_event:{raw_event}")
                     self.logger.error("异常回溯栈:\n" + get_better_exc(e))
                     self.logger.error("异常点局部变量:\n" + get_rich_str(locals()))
         except asyncio.CancelledError:
             self.logger.debug("连接器监听任务已停止")
         except wse.ConnectionClosed:
-            self.logger.debug("连接器与前端的通信已经断开")
+            self.logger.debug("连接器与前端的通信已经停止")
 
-    async def _start_tasks(self) -> list[asyncio.Task]:
-        asyncio.create_task(self._send_queue_watch())
-        return [asyncio.create_task(self._listen())]
+ async def _alive_tasks(self) -> list[asyncio.Task]: + to_task(self._send_queue_watch()) + return [to_task(self._listen())]
@@ -445,7 +429,7 @@

melobot.io.forward_ws 源代码

       
     
   
-
+
diff --git a/_modules/melobot/io/full_duplex_http.html b/_modules/melobot/io/full_duplex_http.html new file mode 100644 index 00000000..32dab3fa --- /dev/null +++ b/_modules/melobot/io/full_duplex_http.html @@ -0,0 +1,469 @@ + + + + + + + + + melobot.io.full_duplex_http - MeloBot 2.5.7 + + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+ +
+
+ +
+ +
+
+ +
+
+
+ + + + + Back to top + +
+
+ +
+ +
+
+

melobot.io.full_duplex_http 源代码

+import asyncio
+import time
+
+import aiohttp
+import aiohttp.web
+from aiohttp.client_exceptions import ClientConnectorError
+
+from ..base.abc import AbstractConnector, BotLife
+from ..base.exceptions import get_better_exc
+from ..base.tools import get_rich_str, to_task
+from ..base.typing import TYPE_CHECKING, ModuleType
+
+if TYPE_CHECKING:
+    from ..base.abc import BotAction
+    from ..models.event import ResponseEvent
+
+
+
+[文档] +class HttpConn(AbstractConnector): + """HTTP 全双工连接器 + + HTTP 全双工连接器将会同时开启 HTTP 服务端和客户端。 + + 客户端将会向 OneBot 实现程序发起 HTTP POST 请求用于传递行为操作, + OneBot 实现程序将会向服务端发起 HTTP POST 请求用于事件上报。 + + .. admonition:: 注意 + :class: caution + + HTTP 连接是无状态的,因此本连接器无法及时察觉 OneBot 实现程序掉线。只有在后续执行行为操作失败时,才会发现 OneBot 实现程序掉线。 + """ + +
+[文档] + def __init__( + self, + onebot_host: str, + onebot_port: int, + listen_host: str, + listen_port: int, + cd_time: float = 0.2, + allow_reconnect: bool = False, + ) -> None: + """初始化一个 HTTP 全双工连接器 + + :param onebot_host: onebot 实现程序 HTTP 服务的 host + :param onebot_port: onebot 实现程序 HTTP 服务的 port + :param listen_host: 此连接器服务端监听的 host + :param listen_port: 此连接器服务端监听的 port + :param allow_reconnect: 是否等待 OneBot 实现程序重新上线。默认为 `False`,即检测到 OneBot 实现程序掉线,将直接停止 bot;若为 `True`,则会等待 OneBot 实现程序重新上线,等待时所有行为操作将阻塞 + :param cd_time: 行为操作冷却时间(用于防止风控) + """ + super().__init__(cd_time) + #: onebot 实现程序提供服务的 base_url(形如:http://xxx:xxx) + self.onebot_url = f"http://{onebot_host}:{onebot_port}" + #: 本连接器服务端的 host + self.host: str = listen_host + #: 本连接器服务端的 port + self.port: int = listen_port + #: 本连接器服务端的站点对象 + self.serve_site: aiohttp.web.TCPSite + #: 本连接器客户端的 HTTP 会话 + self.client_session: aiohttp.ClientSession + + self._send_queue: asyncio.Queue["BotAction"] = asyncio.Queue() + self._pre_send_time = time.time() + self._closed = asyncio.Event() + self._close_lock = asyncio.Lock() + self._onebot_onlined = asyncio.Event() + self._allow_reconn = allow_reconnect
+ + + async def _start(self) -> None: + """启动连接器""" + # 打开一个会话用于与 onebot 实现程序建立连接 + self.client_session = aiohttp.ClientSession() + # 开启 HTTP 服务端 + app = aiohttp.web.Application() + app.add_routes([aiohttp.web.post("/", self._listen)]) + runner = aiohttp.web.AppRunner(app) + await runner.setup() + self.serve_site = aiohttp.web.TCPSite(runner, self.host, self.port) + await self.serve_site.start() + self.logger.info("HTTP 通信就绪,等待 OneBot 实现程序上线中") + await self._onebot_onlined.wait() + self.logger.info("HTTP 双向通信已建立") + await self._bot_bus.emit(BotLife.CONNECTED) + self.logger.debug("CONNECTED hook 已完成") + + async def _close(self) -> None: + """关闭连接器""" + if self._closed.is_set(): + return + async with self._close_lock: + if self._closed.is_set(): + return + # 关闭 HTTP 服务端 + await self.serve_site.stop() + # 关闭与 onebot 实现程序的连接会话 + await self.client_session.close() + self._closed.set() + self.logger.info("HTTP 双向通信已停止") + + async def __aenter__(self) -> "HttpConn": + to_task(self._start()) + return self + + async def __aexit__( + self, exc_type: type[Exception], exc_val: Exception, exc_tb: ModuleType + ) -> bool: + await self._close() + return await super().__aexit__(exc_type, exc_val, exc_tb) + + async def _listen(self, request: aiohttp.web.Request) -> None: + """从前端接收一个事件,并处理""" + await self._ready_signal.wait() + if not self._onebot_onlined.is_set(): + self._onebot_onlined.set() + + try: + data: dict = await request.json() + self.logger.debug("收到事件,未格式化的字典对象:\n" + get_rich_str(data)) + event = self._event_builder.build(data) + self.logger.debug( + f"event {id(event)} 构建完成,结构:\n" + get_rich_str(event.raw) + ) + to_task(self._common_dispatcher.dispatch(event)) # type: ignore + except Exception as e: + self.logger.error("bot 连接器监听任务抛出异常") + self.logger.error(f"异常点 raw_event:{data}") + self.logger.error("异常回溯栈:\n" + get_better_exc(e)) + self.logger.error("异常点局部变量:\n" + get_rich_str(locals())) + + async def _send(self, action: "BotAction") -> None: + """发送一个 action 给连接器,实际上是先提交到 send_queue""" + await self._ready_signal.wait() + + if self.slack: + self.logger.debug(f"action {id(action)} 因 slack 状态被丢弃") + return + await self._send_queue.put(action) + self.logger.debug(f"action {id(action)} 已成功加入发送队列") + + async def _send_queue_watch(self) -> None: + """真正的发送方法。从 send_queue 提取 action 并按照一些处理步骤操作.""" + + async def take_action(action: "BotAction") -> None: + try: + _ = await self.client_session.post( + self.onebot_url + f"/{action.type}", json=action.params + ) + if action.resp_id is None: + return + raw_resp: dict = await _.json() + resp: "ResponseEvent" = self._event_builder.build(raw_resp) # type: ignore + resp.id = action.resp_id + to_task(self._resp_dispatcher.respond(resp)) # type: ignore + except (RuntimeError, ClientConnectorError): + if not self._allow_reconn: + self.logger.error("OneBot 实现程序已掉线,无法再执行行为操作") + await self._close() + else: + self.logger.warning( + "OneBot 实现程序已掉线,正在等待 OneBot 实现程序重新上线" + ) + self._onebot_onlined.clear() + + await self._ready_signal.wait() + try: + while True: + action = await self._send_queue.get() + await self._onebot_onlined.wait() + self.logger.debug( + f"action {id(action)} 准备发送,结构如下:\n" + + get_rich_str(action.__dict__) + ) + await self._bot_bus.emit(BotLife.ACTION_PRESEND, action, wait=True) + self.logger.debug(f"action {id(action)} presend hook 已完成") + wait_time = self.cd_time - (time.time() - self._pre_send_time) + self.logger.debug(f"action {id(action)} 冷却等待:{wait_time}") + await asyncio.sleep(wait_time) + to_task(take_action(action)) + self.logger.debug(f"action {id(action)} 已发送") + self._pre_send_time = time.time() + except asyncio.CancelledError: + self.logger.debug("连接器发送队列监视任务已被结束") + + async def _alive_tasks(self) -> list[asyncio.Task]: + async def alive() -> None: + try: + await self._closed.wait() + except asyncio.CancelledError: + await self._close() + + to_task(self._send_queue_watch()) + return [to_task(alive())]
+ +
+
+
+ +
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/_modules/melobot/io/reverse_ws.html b/_modules/melobot/io/reverse_ws.html new file mode 100644 index 00000000..4883e26c --- /dev/null +++ b/_modules/melobot/io/reverse_ws.html @@ -0,0 +1,476 @@ + + + + + + + + + melobot.io.reverse_ws - MeloBot 2.5.7 + + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+ +
+
+ +
+ +
+
+ +
+
+
+ + + + + Back to top + +
+
+ +
+ +
+
+

melobot.io.reverse_ws 源代码

+import asyncio
+import http
+import time
+
+import websockets
+import websockets.exceptions as wse
+
+from ..base.abc import AbstractConnector, BotLife
+from ..base.exceptions import get_better_exc
+from ..base.tools import get_rich_str, to_task
+from ..base.typing import TYPE_CHECKING, Any, ModuleType
+
+if TYPE_CHECKING:
+    import websockets.server
+
+    from ..base.abc import BotAction
+
+
+
+[文档] +class ReverseWsConn(AbstractConnector): + """反向 websocket 连接器 + + .. admonition:: 注意 + :class: caution + + 注意:在 melobot 中,反向 websocket 连接器会开启一个 ws 服务端。但是这个服务端只接受一个客户端连接,后续其他连接将被拒绝。 + """ + +
+[文档] + def __init__( + self, + listen_host: str, + listen_port: int, + cd_time: float = 0.2, + allow_reconnect: bool = False, + ) -> None: + """初始化一个反向 websocket连接器 + + :param listen_host: 监听的 host + :param listen_port: 监听的 port + :param cd_time: 行为操作冷却时间(用于防止风控) + :param allow_reconnect: 是否允许客户端重新连接。默认为 `False`,即客户端连接后如果断连,将直接停止 bot;若为 `True`,则会等待客户端重连,等待时所有行为操作将阻塞 + """ + super().__init__(cd_time) + #: 监听的 host + self.host: str = listen_host + #: 监听的 port + self.port: int = listen_port + #: 服务端对象 + self.server: "websockets.server.WebSocketServer" + + self._send_queue: asyncio.Queue["BotAction"] = asyncio.Queue() + self._pre_send_time = time.time() + self._server_close: asyncio.Future[Any] + self._conn: "websockets.server.WebSocketServerProtocol" + self._conn_requested = False + self._request_lock = asyncio.Lock() + self._conn_ready = asyncio.Event() + self._allow_reconn = allow_reconnect + self._reconn_flag = False
+ + + async def _req_check(self, *args: Any, **kwargs: Any): + """拦截握手请求,只允许一个客户端连接""" + if not self._conn_requested: + async with self._request_lock: + if not self._conn_requested: + self._conn_requested = True + return None + return ( + http.HTTPStatus.FORBIDDEN, + [], + b"Melobot already accepted the unique connection.\n", + ) + + async def _start(self) -> None: + """启动服务""" + self._server_close = asyncio.Future() + async with websockets.serve( + self._listen, self.host, self.port, process_request=self._req_check + ) as server: + self.server = server + self.logger.info("连接器启动了 ws 服务,等待 ws 连接中") + await self._server_close + self.logger.info("ws 服务已关闭") + + def _close(self) -> None: + """关闭服务""" + if self._server_close.done(): + return + else: + self._server_close.set_result(True) + + def _restore_wait(self) -> None: + """在客户端主动断开连接后,重置到可以接受新连接的状态""" + self.logger.warning("前端主动断开连接,等待其重连中") + self._conn_ready.clear() + self._conn_requested = False + del self._conn + self._reconn_flag = True + + async def __aenter__(self) -> "ReverseWsConn": + to_task(self._start()) + return self + + async def __aexit__( + self, exc_type: type[Exception], exc_val: Exception, exc_tb: ModuleType + ) -> bool: + self._close() + return await super().__aexit__(exc_type, exc_val, exc_tb) + + async def _send(self, action: "BotAction") -> None: + """发送一个 action 给连接器,实际上是先提交到 send_queue""" + await self._ready_signal.wait() + await self._conn_ready.wait() + + if self.slack: + self.logger.debug(f"action {id(action)} 因 slack 状态被丢弃") + return + await self._send_queue.put(action) + self.logger.debug(f"action {id(action)} 已成功加入发送队列") + + async def _send_queue_watch(self) -> None: + """真正的发送方法。从 send_queue 提取 action 并按照一些处理步骤操作.""" + await self._ready_signal.wait() + + try: + while True: + action = await self._send_queue.get() + await self._conn_ready.wait() + self.logger.debug( + f"action {id(action)} 准备发送,结构如下:\n" + + get_rich_str(action.__dict__) + ) + await self._bot_bus.emit(BotLife.ACTION_PRESEND, action, wait=True) + self.logger.debug(f"action {id(action)} presend hook 已完成") + action_str = action.flatten() + wait_time = self.cd_time - (time.time() - self._pre_send_time) + self.logger.debug(f"action {id(action)} 冷却等待:{wait_time}") + await asyncio.sleep(wait_time) + await self._conn.send(action_str) + self.logger.debug(f"action {id(action)} 已发送") + self._pre_send_time = time.time() + except asyncio.CancelledError: + self.logger.debug("连接器发送队列监视任务已被结束") + except wse.ConnectionClosed: + self.logger.error("连接器与前端的通信已经停止,无法再执行行为操作") + + async def _listen(self, ws: "websockets.server.WebSocketServerProtocol") -> None: + """从前端接收一个事件,并处理""" + self._conn = ws + self.logger.info("连接器与前端建立了 ws 连接") + await self._ready_signal.wait() + self._conn_ready.set() + if not self._reconn_flag: + await self._bot_bus.emit(BotLife.CONNECTED) + self.logger.debug("CONNECTED hook 已完成") + + try: + while True: + try: + raw_event = await self._conn.recv() + self.logger.debug(f"收到事件,未格式化的字符串:\n{raw_event}") + if raw_event == "": + continue + event = self._event_builder.build(raw_event) + self.logger.debug( + f"event {id(event)} 构建完成,结构:\n" + + get_rich_str(event.raw) + ) + if event.is_resp_event(): + to_task(self._resp_dispatcher.respond(event)) # type: ignore + else: + to_task(self._common_dispatcher.dispatch(event)) # type: ignore + except wse.ConnectionClosed: + raise + except Exception as e: + self.logger.error("bot 连接器监听任务抛出异常") + self.logger.error(f"异常点 raw_event:{raw_event}") + self.logger.error("异常回溯栈:\n" + get_better_exc(e)) + self.logger.error("异常点局部变量:\n" + get_rich_str(locals())) + except asyncio.CancelledError: + self.logger.debug("连接器监听任务已停止") + except wse.ConnectionClosed: + self.logger.debug("连接器与前端的通信已经停止") + finally: + if self._server_close.done(): + return + if not self._allow_reconn: + self._close() + return + self._restore_wait() + + async def _alive_tasks(self) -> list[asyncio.Task]: + async def alive(): + try: + await self._server_close + except asyncio.CancelledError: + self._close() + + to_task(self._send_queue_watch()) + return [to_task(alive())]
+ +
+
+
+ +
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/_modules/melobot/meta.html b/_modules/melobot/meta.html index d935fb81..088d7080 100644 --- a/_modules/melobot/meta.html +++ b/_modules/melobot/meta.html @@ -6,7 +6,7 @@ - melobot.meta - MeloBot 2.5.6 + melobot.meta - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7
diff --git a/_modules/melobot/models/cq.html b/_modules/melobot/models/cq.html index 78cf236c..809366f1 100644 --- a/_modules/melobot/models/cq.html +++ b/_modules/melobot/models/cq.html @@ -6,7 +6,7 @@ - melobot.models.cq - MeloBot 2.5.6 + melobot.models.cq - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -813,7 +813,7 @@

melobot.models.cq 源代码

       
     
   
-
+ diff --git a/_modules/melobot/models/event.html b/_modules/melobot/models/event.html index 78f759cb..2f54c076 100644 --- a/_modules/melobot/models/event.html +++ b/_modules/melobot/models/event.html @@ -6,7 +6,7 @@ - melobot.models.event - MeloBot 2.5.6 + melobot.models.event - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -235,6 +235,8 @@

melobot.models.event 源代码

     def build(rawEvent: dict | str) -> BotEvent:
         if isinstance(rawEvent, str):
             raw: dict[str, str | float | int] = json.loads(rawEvent)
+        else:
+            raw = rawEvent
 
         etype = raw.get("post_type")
         if etype in ("message_sent", "message"):
@@ -1164,7 +1166,7 @@ 

melobot.models.event 源代码

       
     
   
-
+
diff --git a/_modules/melobot/plugin/init.html b/_modules/melobot/plugin/init.html index bb227102..72a47c40 100644 --- a/_modules/melobot/plugin/init.html +++ b/_modules/melobot/plugin/init.html @@ -6,7 +6,7 @@ - melobot.plugin.init - MeloBot 2.5.6 + melobot.plugin.init - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -1498,7 +1498,7 @@

melobot.plugin.init 源代码

       
     
   
-
+ diff --git a/_modules/melobot/utils/checker.html b/_modules/melobot/utils/checker.html index 63df2685..89765ac0 100644 --- a/_modules/melobot/utils/checker.html +++ b/_modules/melobot/utils/checker.html @@ -6,7 +6,7 @@ - melobot.utils.checker - MeloBot 2.5.6 + melobot.utils.checker - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -694,7 +694,7 @@

melobot.utils.checker 源代码

       
     
   
-
+ diff --git a/_modules/melobot/utils/formatter.html b/_modules/melobot/utils/formatter.html index 9483937b..4fad2f5c 100644 --- a/_modules/melobot/utils/formatter.html +++ b/_modules/melobot/utils/formatter.html @@ -6,7 +6,7 @@ - melobot.utils.formatter - MeloBot 2.5.6 + melobot.utils.formatter - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -465,7 +465,7 @@

melobot.utils.formatter 源代码

       
     
   
-
+ diff --git a/_modules/melobot/utils/logger.html b/_modules/melobot/utils/logger.html index 2f11bcfa..749bcd2a 100644 --- a/_modules/melobot/utils/logger.html +++ b/_modules/melobot/utils/logger.html @@ -6,7 +6,7 @@ - melobot.utils.logger - MeloBot 2.5.6 + melobot.utils.logger - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -542,7 +542,7 @@

melobot.utils.logger 源代码

       
     
   
-
+ diff --git a/_modules/melobot/utils/matcher.html b/_modules/melobot/utils/matcher.html index 3259e700..de074960 100644 --- a/_modules/melobot/utils/matcher.html +++ b/_modules/melobot/utils/matcher.html @@ -6,7 +6,7 @@ - melobot.utils.matcher - MeloBot 2.5.6 + melobot.utils.matcher - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -419,7 +419,7 @@

melobot.utils.matcher 源代码

       
     
   
-
+ diff --git a/_modules/melobot/utils/parser.html b/_modules/melobot/utils/parser.html index 581d81cc..69092b79 100644 --- a/_modules/melobot/utils/parser.html +++ b/_modules/melobot/utils/parser.html @@ -6,7 +6,7 @@ - melobot.utils.parser - MeloBot 2.5.6 + melobot.utils.parser - MeloBot 2.5.7 @@ -124,7 +124,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -150,7 +150,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -439,7 +439,7 @@

melobot.utils.parser 源代码

       
     
   
-
+ diff --git a/_sources/api/index.rst.txt b/_sources/api/index.rst.txt index 3d908a2d..9cb0c96e 100644 --- a/_sources/api/index.rst.txt +++ b/_sources/api/index.rst.txt @@ -12,6 +12,9 @@ melobot API 参考 - :class:`.MeloBot` - :obj:`.thisbot` - :class:`.ForwardWsConn` +- :class:`.ReverseWsConn` +- :class:`.HttpConn` +- :class:`.ForwardWsConn` - :class:`.AttrSessionRule` - :func:`.msg_event` - :func:`.msg_text` diff --git a/_sources/api/melobot.base.rst.txt b/_sources/api/melobot.base.rst.txt index a7a7b6b4..5361013e 100644 --- a/_sources/api/melobot.base.rst.txt +++ b/_sources/api/melobot.base.rst.txt @@ -134,3 +134,24 @@ typing 模块 .. code:: python VoidType: TypeAlias = Type[Void] + +.. data:: melobot.base.typing.T + + 泛型 T,无约束 + +.. data:: melobot.base.typing.T1 + + 泛型 T1,无约束 + +.. data:: melobot.base.typing.T2 + + 泛型 T2,无约束 + +.. data:: melobot.base.typing.T3 + + 泛型 T3,无约束 + +.. data:: melobot.base.typing.P + + :obj:`~typing.ParamSpec` 泛型 P,无约束 + diff --git a/_sources/api/melobot.io.rst.txt b/_sources/api/melobot.io.rst.txt index f232e871..37f93afc 100644 --- a/_sources/api/melobot.io.rst.txt +++ b/_sources/api/melobot.io.rst.txt @@ -5,3 +5,4 @@ melobot.io ---------- .. automodule:: melobot.io + :show-inheritance: diff --git a/_sources/references/onebot.md.txt b/_sources/references/onebot.md.txt index 552ae613..acea4c23 100644 --- a/_sources/references/onebot.md.txt +++ b/_sources/references/onebot.md.txt @@ -15,8 +15,8 @@ melobot 目前版本与“媒介”的数据交换,必须遵循一种特定的 配置好其中一种 OneBot 实现后,melobot 就可以与它通信了,从而也就可以间接与 qq 服务器交互,完成各类复杂的功能了。通信的建立,在 melobot 中需要实例化[连接器对象](../api/melobot.io)。melobot 中连接器主要分为三种: -- `正向 websocket`(melobot 作 ws 客户端,OneBot 实现程序作 ws 服务端) -- `反向 websocket`(melobot 作 ws 服务端,OneBot 实现程序作 ws 客户端) -- `http`(OneBot 实现程序开启一个 http GET 服务供 melobot 调用,而 melobot 开启一个 http POST 服务供 OneBot 实现程序调用) +- {class}`.ForwardWsConn`:正向 websocket(melobot 作 ws 客户端,OneBot 实现程序作 ws 服务端) +- {class}`.ReverseWsConn`:反向 websocket(melobot 作 ws 服务端,OneBot 实现程序作 ws 客户端) +- {class}`.HttpConn`:HTTP 全双工(OneBot 实现程序开启一个 HTTP GET/POST 服务供 melobot 调用,而 melobot 开启一个 HTTP POST 服务供 OneBot 实现程序调用) 就功能上来说,三种方式都能完整地支持 melobot 与 OneBot 实现程序的所有通信需求。但是 websocket 的通信方式显然效率会更高一些。 diff --git a/_static/documentation_options.js b/_static/documentation_options.js index 690031f8..c04623ed 100644 --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '2.5.6', + VERSION: '2.5.7', LANGUAGE: 'zh-CN', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/api/index.html b/api/index.html index 6cdcbacf..d913e342 100644 --- a/api/index.html +++ b/api/index.html @@ -7,7 +7,7 @@ - melobot API 参考 - MeloBot 2.5.6 + melobot API 参考 - MeloBot 2.5.7 @@ -125,7 +125,7 @@
-
MeloBot 2.5.6
+
MeloBot 2.5.7
@@ -151,7 +151,7 @@
- MeloBot 2.5.6 + MeloBot 2.5.7 @@ -242,6 +242,9 @@

melobot API 参考MeloBot

  • thisbot

  • ForwardWsConn

  • +
  • ReverseWsConn

  • +
  • HttpConn

  • +
  • ForwardWsConn

  • AttrSessionRule

  • msg_event()

  • msg_text()

  • @@ -376,7 +379,7 @@

    melobot API 参考 +

    diff --git a/api/melobot.base.html b/api/melobot.base.html index 7e742b6b..775421c4 100644 --- a/api/melobot.base.html +++ b/api/melobot.base.html @@ -7,7 +7,7 @@ - melobot.base - MeloBot 2.5.6 + melobot.base - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -244,21 +244,15 @@

    abc 模块#一般无需手动实例化该类,多数情况会直接使用本类对象,或将本类用作类型注解。

    -
    -slack: bool#
    -

    是否在 slack 状态

    -
    - -
    -
    -max_retry: int#
    -

    连接失败最大重试次数

    +
    +logger: Logger#
    +

    连接器的日志器

    -
    -retry_delay: float#
    -

    连接失败重试间隔

    +
    +slack: bool#
    +

    是否在 slack 状态

    @@ -1015,6 +1009,36 @@

    typing 模块 +
    +melobot.base.typing.T#
    +

    泛型 T,无约束

    +

    + +
    +
    +melobot.base.typing.T1#
    +

    泛型 T1,无约束

    +
    + +
    +
    +melobot.base.typing.T2#
    +

    泛型 T2,无约束

    +
    + +
    +
    +melobot.base.typing.T3#
    +

    泛型 T3,无约束

    +
    + +
    +
    +melobot.base.typing.P#
    +

    ParamSpec 泛型 P,无约束

    +
    + @@ -1126,6 +1150,11 @@

    typing 模块BotLife
  • Void
  • melobot.base.typing.VoidType
  • +
  • melobot.base.typing.T
  • +
  • melobot.base.typing.T1
  • +
  • melobot.base.typing.T2
  • +
  • melobot.base.typing.T3
  • +
  • melobot.base.typing.P
  • @@ -1139,7 +1168,7 @@

    typing 模块 + diff --git a/api/melobot.bot.html b/api/melobot.bot.html index 7bfb85a2..6f11e157 100644 --- a/api/melobot.bot.html +++ b/api/melobot.bot.html @@ -7,7 +7,7 @@ - melobot.bot - MeloBot 2.5.6 + melobot.bot - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -578,7 +578,7 @@

    melobot.bot +

    diff --git a/api/melobot.context.html b/api/melobot.context.html index e2647939..67bb0396 100644 --- a/api/melobot.context.html +++ b/api/melobot.context.html @@ -7,7 +7,7 @@ - melobot.context - MeloBot 2.5.6 + melobot.context - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -1446,7 +1446,7 @@

    手动行为操作 +

    diff --git a/api/melobot.io.html b/api/melobot.io.html index 833c9135..b21177dc 100644 --- a/api/melobot.io.html +++ b/api/melobot.io.html @@ -7,7 +7,7 @@ - melobot.io - MeloBot 2.5.6 + melobot.io - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -237,7 +237,13 @@

    melobot.io
    class melobot.io.ForwardWsConn[源代码]#
    -

    正向 websocket 连接器

    +

    基类:AbstractConnector

    +

    正向 websocket 连接器

    +
    +

    注意

    +

    注意:在 melobot 中,正向 websocket 连接器会开启一个 ws 客户端。这个客户端只能和一个服务端通信。

    +
    +

    正向 websocket 通信方式暂时不支持断连后尝试重连。断连后将会直接停止 bot

    __init__(connect_host: str, connect_port: int, max_retry: int = -1, retry_delay: float = 5.0, cd_time: float = 0.2) None[源代码]#
    @@ -245,16 +251,147 @@

    melobot.io
    参数:
      -
    • connect_host – 连接的 hostname

    • +
    • connect_host – 连接的 host

    • connect_port – 连接的 port

    • -
    • max_retry – 最大重试次数,默认 -1 代表无限次重试

    • -
    • retry_delay – 重试间隔时间

    • -
    • cd_time – action 发送冷却时间(用于防止风控)

    • +
    • max_retry – 初始连接最大重试次数,默认 -1 代表无限次重试

    • +
    • retry_delay – 初始连接重试间隔时间

    • +
    • cd_time – 行为操作冷却时间(用于防止风控)

    • +
    +
    +

    +
    + +
    +
    +max_retry: int#
    +

    连接失败最大重试次数

    +
    + +
    +
    +retry_delay: float#
    +

    连接失败重试间隔

    +
    + +
    +
    +url#
    +

    ws 连接的 url(形如:ws://xxx:xxx)

    +
    + +
    +
    +conn: websockets.client.WebSocketClientProtocol#
    +

    连接对象

    +
    + + + +
    +
    +class melobot.io.ReverseWsConn[源代码]#
    +

    基类:AbstractConnector

    +

    反向 websocket 连接器

    +
    +

    注意

    +

    注意:在 melobot 中,反向 websocket 连接器会开启一个 ws 服务端。但是这个服务端只接受一个客户端连接,后续其他连接将被拒绝。

    +
    +
    +
    +__init__(listen_host: str, listen_port: int, cd_time: float = 0.2, allow_reconnect: bool = False) None[源代码]#
    +

    初始化一个反向 websocket连接器

    +
    +
    参数:
    +
      +
    • listen_host – 监听的 host

    • +
    • listen_port – 监听的 port

    • +
    • cd_time – 行为操作冷却时间(用于防止风控)

    • +
    • allow_reconnect – 是否允许客户端重新连接。默认为 False,即客户端连接后如果断连,将直接停止 bot;若为 True,则会等待客户端重连,等待时所有行为操作将阻塞

    +
    +
    +host: str#
    +

    监听的 host

    +
    + +
    +
    +port: int#
    +

    监听的 port

    +
    + +
    +
    +server: websockets.server.WebSocketServer#
    +

    服务端对象

    +
    + +
    + +
    +
    +class melobot.io.HttpConn[源代码]#
    +

    基类:AbstractConnector

    +

    HTTP 全双工连接器

    +

    HTTP 全双工连接器将会同时开启 HTTP 服务端和客户端。

    +

    客户端将会向 OneBot 实现程序发起 HTTP POST 请求用于传递行为操作, +OneBot 实现程序将会向服务端发起 HTTP POST 请求用于事件上报。

    +
    +

    注意

    +

    HTTP 连接是无状态的,因此本连接器无法及时察觉 OneBot 实现程序掉线。只有在后续执行行为操作失败时,才会发现 OneBot 实现程序掉线。

    +
    +
    +
    +__init__(onebot_host: str, onebot_port: int, listen_host: str, listen_port: int, cd_time: float = 0.2, allow_reconnect: bool = False) None[源代码]#
    +

    初始化一个 HTTP 全双工连接器

    +
    +
    参数:
    +
      +
    • onebot_host – onebot 实现程序 HTTP 服务的 host

    • +
    • onebot_port – onebot 实现程序 HTTP 服务的 port

    • +
    • listen_host – 此连接器服务端监听的 host

    • +
    • listen_port – 此连接器服务端监听的 port

    • +
    • allow_reconnect – 是否等待 OneBot 实现程序重新上线。默认为 False,即检测到 OneBot 实现程序掉线,将直接停止 bot;若为 True,则会等待 OneBot 实现程序重新上线,等待时所有行为操作将阻塞

    • +
    • cd_time – 行为操作冷却时间(用于防止风控)

    • +
    +
    +
    +
    + +
    +
    +onebot_url#
    +

    onebot 实现程序提供服务的 base_url(形如:http://xxx:xxx

    +
    + +
    +
    +host: str#
    +

    本连接器服务端的 host

    +
    + +
    +
    +port: int#
    +

    本连接器服务端的 port

    +
    + +
    +
    +serve_site: aiohttp.web.TCPSite#
    +

    本连接器服务端的站点对象

    +
    + +
    +
    +client_session: aiohttp.ClientSession#
    +

    本连接器客户端的 HTTP 会话

    +
    +
    @@ -326,6 +463,26 @@

    melobot.io连接器 @@ -341,7 +498,7 @@

    melobot.io +

    diff --git a/api/melobot.meta.html b/api/melobot.meta.html index b9a8693e..11067c18 100644 --- a/api/melobot.meta.html +++ b/api/melobot.meta.html @@ -7,7 +7,7 @@ - melobot.meta - MeloBot 2.5.6 + melobot.meta - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -438,7 +438,7 @@

    元信息#

    - + diff --git a/api/melobot.models.html b/api/melobot.models.html index 1ca5eb3d..126a7854 100644 --- a/api/melobot.models.html +++ b/api/melobot.models.html @@ -7,7 +7,7 @@ - melobot.models - MeloBot 2.5.6 + melobot.models - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -1441,7 +1441,7 @@

    事件类型#

    - + diff --git a/api/melobot.plugin.html b/api/melobot.plugin.html index 5bd21612..b0d1ae39 100644 --- a/api/melobot.plugin.html +++ b/api/melobot.plugin.html @@ -7,7 +7,7 @@ - melobot.plugin - MeloBot 2.5.6 + melobot.plugin - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -852,7 +852,7 @@

    插件#

    - + diff --git a/api/melobot.utils.html b/api/melobot.utils.html index 5066b0b9..77bb8a93 100644 --- a/api/melobot.utils.html +++ b/api/melobot.utils.html @@ -7,7 +7,7 @@ - melobot.utils - MeloBot 2.5.6 + melobot.utils - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -899,7 +899,7 @@

    格式化器#

    - + diff --git a/genindex.html b/genindex.html index 1cc969b9..b3ab100d 100644 --- a/genindex.html +++ b/genindex.html @@ -5,7 +5,7 @@ - 索引 - MeloBot 2.5.6 + 索引 - MeloBot 2.5.7 @@ -123,7 +123,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -149,7 +149,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -241,6 +241,10 @@

    _

  • __init__() (melobot.context.AttrSessionRule 方法)
  • __init__() (melobot.io.ForwardWsConn 方法) +
  • +
  • __init__() (melobot.io.HttpConn 方法) +
  • +
  • __init__() (melobot.io.ReverseWsConn 方法)
  • __init__() (melobot.plugin.BotPlugin 方法)
  • @@ -249,11 +253,11 @@

    _

  • __init__() (melobot.utils.AtChecker 方法)
  • __init__() (melobot.utils.BotLogger 方法) -
  • -
  • __init__() (melobot.utils.CmdParser 方法)
  • MeloBot(melobot.bot 中的类)
  • + + - - +
    - + diff --git a/index.html b/index.html index cd17c6fb..957e7680 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -243,35 +243,17 @@

    MeloBot

    插件化管理、基于异步会话机制的 qbot 开发框架

    - - license - - - MeloBot docs - - - GitHub Repo stars - - - cqhttp - + license + MeloBot docs + GitHub Repo stars + cqhttp

    - - Made with Python - - - PDM - Managed - - - PyPI - - - Code style: black - - - Checked with mypy - + Made with Python + PDM - Managed + PyPI + Code style: black + Checked with mypy

    郑重承诺和提示: @@ -402,7 +384,7 @@

    ❤️ 致谢

    - + diff --git a/intro/first-bot.html b/intro/first-bot.html index 75d0ae2f..bac307da 100644 --- a/intro/first-bot.html +++ b/intro/first-bot.html @@ -7,7 +7,7 @@ - 创建第一个机器人 - MeloBot 2.5.6 + 创建第一个机器人 - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -377,7 +377,7 @@

    小 demo 讲解 +

    diff --git a/intro/index.html b/intro/index.html index 27570e4f..f1a0aee2 100644 --- a/intro/index.html +++ b/intro/index.html @@ -7,7 +7,7 @@ - 开始使用 - MeloBot 2.5.6 + 开始使用 - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -298,7 +298,7 @@

    开始使用#

    - + diff --git a/intro/more-events.html b/intro/more-events.html index cc1a18d0..89297a07 100644 --- a/intro/more-events.html +++ b/intro/more-events.html @@ -7,7 +7,7 @@ - 处理更多事件 - MeloBot 2.5.6 + 处理更多事件 - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -291,7 +291,7 @@

    处理更多事件 +

    diff --git a/melobot-next.html b/melobot-next.html index 1275a060..1ea23a1e 100644 --- a/melobot-next.html +++ b/melobot-next.html @@ -7,7 +7,7 @@ - 下一代 melobot - MeloBot 2.5.6 + 下一代 melobot - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -318,7 +318,7 @@

    melobot v3 +

    diff --git a/objects.inv b/objects.inv index 2917c033..9d8504b5 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/prompt.html b/prompt.html index 3897b2e9..027a8ed4 100644 --- a/prompt.html +++ b/prompt.html @@ -7,7 +7,7 @@ - melobot 形象 - MeloBot 2.5.6 + melobot 形象 - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -337,7 +337,7 @@

    生成参数#

    - + diff --git a/py-modindex.html b/py-modindex.html index 4d2c1e80..6d5b1bb0 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -5,7 +5,7 @@ - Python 模块索引 - MeloBot 2.5.6 + Python 模块索引 - MeloBot 2.5.7 @@ -123,7 +123,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -149,7 +149,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -302,7 +302,7 @@

    Python 模块索引

    - + diff --git a/references/event-action.html b/references/event-action.html index 19aba3f4..ef7aef05 100644 --- a/references/event-action.html +++ b/references/event-action.html @@ -7,7 +7,7 @@ - 事件和行为 - MeloBot 2.5.6 + 事件和行为 - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -337,7 +337,7 @@

    行为类型#

    - + diff --git a/references/forward-msg.html b/references/forward-msg.html index e9c1d996..71566f6b 100644 --- a/references/forward-msg.html +++ b/references/forward-msg.html @@ -7,7 +7,7 @@ - 转发消息与消息结点 - MeloBot 2.5.6 + 转发消息与消息结点 - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -425,7 +425,7 @@

    合并转发自定义结点 +

    diff --git a/references/index.html b/references/index.html index 31056354..9ce602ab 100644 --- a/references/index.html +++ b/references/index.html @@ -7,7 +7,7 @@ - 相关参考 - MeloBot 2.5.6 + 相关参考 - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -299,7 +299,7 @@

    相关参考#

    - + diff --git a/references/msg.html b/references/msg.html index 73b82c85..a0348a30 100644 --- a/references/msg.html +++ b/references/msg.html @@ -7,7 +7,7 @@ - 消息内容的数据结构 - MeloBot 2.5.6 + 消息内容的数据结构 - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -479,7 +479,7 @@

    消息段数组 +

    diff --git a/references/onebot.html b/references/onebot.html index 8ead4b8f..8b3b8790 100644 --- a/references/onebot.html +++ b/references/onebot.html @@ -7,7 +7,7 @@ - OneBot 协议和实现 - MeloBot 2.5.6 + OneBot 协议和实现 - MeloBot 2.5.7 @@ -125,7 +125,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -151,7 +151,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -244,9 +244,9 @@

    OneBot 协议和实现连接器对象。melobot 中连接器主要分为三种:

      -
    • 正向 websocket(melobot 作 ws 客户端,OneBot 实现程序作 ws 服务端)

    • -
    • 反向 websocket(melobot 作 ws 服务端,OneBot 实现程序作 ws 客户端)

    • -
    • http(OneBot 实现程序开启一个 http GET 服务供 melobot 调用,而 melobot 开启一个 http POST 服务供 OneBot 实现程序调用)

    • +
    • ForwardWsConn:正向 websocket(melobot 作 ws 客户端,OneBot 实现程序作 ws 服务端)

    • +
    • ReverseWsConn:反向 websocket(melobot 作 ws 服务端,OneBot 实现程序作 ws 客户端)

    • +
    • HttpConn:HTTP 全双工(OneBot 实现程序开启一个 HTTP GET/POST 服务供 melobot 调用,而 melobot 开启一个 HTTP POST 服务供 OneBot 实现程序调用)

    就功能上来说,三种方式都能完整地支持 melobot 与 OneBot 实现程序的所有通信需求。但是 websocket 的通信方式显然效率会更高一些。

    @@ -307,7 +307,7 @@

    OneBot 协议和实现 +

    diff --git a/search.html b/search.html index 9555515d..040f88c4 100644 --- a/search.html +++ b/search.html @@ -5,7 +5,7 @@ - 搜索 - MeloBot 2.5.6 + 搜索 - MeloBot 2.5.7 @@ -122,7 +122,7 @@
    -
    MeloBot 2.5.6
    +
    MeloBot 2.5.7
    @@ -148,7 +148,7 @@
    - MeloBot 2.5.6 + MeloBot 2.5.7 @@ -268,7 +268,7 @@
    - + diff --git a/searchindex.js b/searchindex.js index d7a222cf..e2cf361a 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/index", "api/melobot.base", "api/melobot.bot", "api/melobot.context", "api/melobot.io", "api/melobot.meta", "api/melobot.models", "api/melobot.plugin", "api/melobot.utils", "index", "intro/first-bot", "intro/index", "intro/more-events", "melobot-next", "prompt", "references/event-action", "references/forward-msg", "references/index", "references/msg", "references/onebot"], "filenames": ["api/index.rst", "api/melobot.base.rst", "api/melobot.bot.rst", "api/melobot.context.rst", "api/melobot.io.rst", "api/melobot.meta.rst", "api/melobot.models.rst", "api/melobot.plugin.rst", "api/melobot.utils.rst", "index.md", "intro/first-bot.md", "intro/index.md", "intro/more-events.md", "melobot-next.md", "prompt.md", "references/event-action.md", "references/forward-msg.md", "references/index.md", "references/msg.md", "references/onebot.md"], "titles": ["melobot API \u53c2\u8003", "melobot.base", "melobot.bot", "melobot.context", "melobot.io", "melobot.meta", "melobot.models", "melobot.plugin", "melobot.utils", "melobot \u6587\u6863", "\u521b\u5efa\u7b2c\u4e00\u4e2a\u673a\u5668\u4eba", "\u5f00\u59cb\u4f7f\u7528", "\u5904\u7406\u66f4\u591a\u4e8b\u4ef6", "\u4e0b\u4e00\u4ee3 melobot", "melobot \u5f62\u8c61", "\u4e8b\u4ef6\u548c\u884c\u4e3a", "\u8f6c\u53d1\u6d88\u606f\u4e0e\u6d88\u606f\u7ed3\u70b9", "\u76f8\u5173\u53c2\u8003", "\u6d88\u606f\u5185\u5bb9\u7684\u6570\u636e\u7ed3\u6784", "OneBot \u534f\u8bae\u548c\u5b9e\u73b0"], "terms": {"metainfo": [0, 2, 5], "thisbot": [0, 2, 8], "forwardwsconn": [0, 4, 10], "attrsessionrul": [0, 3], "msg_event": [0, 3], "msg_text": [0, 3], "msg_arg": [0, 3], "send": [0, 3, 10, 18], "send_wait": [0, 3], "send_repli": [0, 3], "finish": [0, 3], "reply_finish": [0, 3], "get_stor": [0, 3], "paus": [0, 3], "botplugin": [0, 2, 7, 10], "groupmsglvlcheck": [0, 8], "privatemsglvlcheck": [0, 8], "msgcheckergen": [0, 8], "atcheck": [0, 8], "cmdparser": [0, 8], "cmdparsergen": [0, 8], "argformatt": [0, 8], "lock": [0, 1], "cooldown": [0, 1], "timelimit": [0, 1], "this_dir": [0, 1], "user": [0, 1, 8], "priorlevel": [0, 1, 7], "sessionrul": [0, 1, 3, 7], "logicmod": [0, 1, 7, 8], "meta": [0, 1, 6], "bot": [0, 1, 3, 6, 7, 8, 9, 10, 15], "io": 0, "model": [0, 14], "context": 0, "plugin": 0, "util": 0, "base": 0, "abc": 0, "except": 0, "tool": 0, "type": [0, 3, 6, 7, 16, 18], "class": [1, 2, 3, 4, 5, 6, 7, 8], "abstractconnector": [1, 2], "slack": [1, 2], "bool": [1, 2, 3, 6, 7, 8], "max_retri": [1, 4], "int": [1, 3, 4, 6, 7, 8], "retry_delay": [1, 4], "float": [1, 4], "cd_time": [1, 4], "botev": [1, 3, 6], "raw": 1, "onebot": [1, 3, 6, 9, 10, 15, 16, 17, 18], "abstract": 1, "properti": [1, 6, 7], "time": [1, 3, 6], "liter": [1, 2, 3, 6, 7, 8], "messag": [1, 6], "request": [1, 6], "notic": [1, 6], "respons": [1, 6], "is_msg_ev": 1, "is_req_ev": 1, "is_notice_ev": 1, "is_meta_ev": 1, "is_resp_ev": 1, "botact": [1, 3, 6], "resp_id": [1, 6], "id": [1, 2, 3, 6, 7, 16, 18], "api": [1, 3, 6], "param": [1, 3, 6], "trigger": [1, 3], "__init__": [1, 2, 3, 4, 7, 8], "none": [1, 2, 3, 4, 6, 7, 8, 10], "compar": 1, "e1": 1, "e2": 1, "botcheck": [1, 7, 8], "ok_cb": [1, 8], "callabl": [1, 7, 8], "coroutin": [1, 7, 8], "ani": [1, 2, 3, 5, 6, 7, 8], "fail_cb": [1, 8], "async": [1, 2, 3, 7, 10], "check": 1, "event": [1, 3, 6], "wrappedcheck": 1, "botmatch": [1, 7, 8], "match": 1, "text": [1, 3, 6, 7, 14, 16, 18], "str": [1, 2, 3, 4, 5, 6, 7, 8], "wrappedmatch": 1, "botexcept": 1, "sessionhuptimeout": [1, 3], "rwcontrol": 1, "rwc": 1, "with": [1, 14], "safe_read": 1, "safe_writ": 1, "read_limit": 1, "get_id": 1, "relative_path": 1, "py": 1, "env": [1, 5], "toml": 1, "as": 1, "from": [1, 10], "import": [1, 10], "foo": 1, "dir": 1, "lambda_dir": 1, "lambda": [1, 7], "get_dir": 1, "outer_dir": 1, "ok": 1, "error": [1, 2, 8], "to_async": 1, "func": 1, "partial": 1, "to_coro": 1, "to_task": 1, "obj": 1, "task": 1, "callback": 1, "t1": 1, "busy_callback": 1, "cd_callback": 1, "t2": 1, "interv": 1, "cd": 1, "semaphor": 1, "valu": 1, "timeout": [1, 6], "default": [1, 8], "to": 1, "call_lat": 1, "delay": 1, "asyncio": [1, 9, 11], "timerhandl": 1, "call_at": 1, "timestamp": 1, "async_lat": 1, "futur": 1, "cancellederror": 1, "async_at": 1, "async_interv": 1, "javascript": 1, "setinterv": 1, "cqmsgdict": [1, 3, 6], "data": [1, 3, 6, 16, 18], "dict": [1, 2, 3, 5, 6], "customnodedata": 1, "name": [1, 2, 3, 6, 8], "uin": 1, "content": [1, 3, 6, 16], "list": [1, 2, 3, 5, 6, 7, 8], "seq": [1, 6], "refernodedata": 1, "msgnodedict": [1, 3, 6], "node": [1, 16], "and": [1, 14], "or": [1, 7, 8, 14], "not": 1, "xor": 1, "owner": [1, 6, 8], "10000": 1, "su": 1, "1000": 1, "white": [1, 14], "100": 1, "10": [1, 3, 9], "black": 1, "min": 1, "max": 1, "mean": [1, 7], "500": 1, "botlif": [1, 7], "load": [1, 7], "connect": [1, 7], "before_clos": [1, 7], "before_stop": [1, 7], "event_built": [1, 7], "action_presend": [1, 7], "void": [1, 8], "voidtyp": 1, "typealia": 1, "init": [2, 10], "botloc": 2, "object": [2, 6], "info": [2, 8], "logger": [2, 8], "connector": 2, "enable_log": 2, "true": [2, 3, 7, 8], "logger_nam": 2, "log_level": 2, "debug": [2, 8], "warn": [2, 8], "critic": [2, 8], "log_to_consol": 2, "log_to_dir": 2, "custom_logg": 2, "load_plugin": [2, 10], "plugin_target": 2, "python": [2, 5, 9, 11], "packag": 2, "plugins_dir": 2, "run": [2, 10], "close": 2, "is_activ": 2, "activ": 2, "get_plugin": 2, "pluginproxi": 2, "emit_sign": 2, "namespac": [2, 7], "signal": [2, 7], "arg": 2, "wait": [2, 3], "fals": [2, 3, 6, 7, 8], "kwarg": 2, "get_shar": 2, "shareobject": 2, "classmethod": 2, "start": 2, "unicast": 2, "target": [2, 7, 8], "multicast": 2, "all": [2, 3, 6, 7, 8, 9], "self_exclud": 2, "attr": 3, "rule": 3, "event1": 3, "event2": 3, "qq": [3, 6, 7, 8, 9, 10, 13, 16, 19], "sender": [3, 6], "messageev": [3, 6, 15], "any_ev": 3, "requestev": [3, 6, 15], "metaev": [3, 6, 15], "noticeev": [3, 6, 15], "req_evnt": 3, "notice_ev": 3, "meta_ev": 3, "overtim": 3, "dispos": 3, "session_hold": [3, 7], "cq_str": 3, "auto": 3, "responseev": [3, 6, 15], "cq": [3, 6, 16], "send_forward": [3, 16], "msgnode": 3, "set_group_anonymous_ban": 3, "set_group_anonym": 3, "get_cooki": 3, "cooki": 3, "get_csrf_token": 3, "csrf": 3, "token": 3, "get_credenti": 3, "set_restart": 3, "clean_cach": 3, "send_custom_msg": [3, 7, 18], "ispriv": [3, 7], "userid": [3, 7], "groupid": 3, "send_custom_forward": [3, 16], "msg_recal": 3, "msgid": 3, "get_msg": 3, "get_forward_msg": [3, 16], "forwardid": 3, "get_imag": 3, "filenam": 3, "send_lik": 3, "group_kick": 3, "laterreject": 3, "group_ban": [3, 7, 8], "durat": 3, "group_whole_ban": 3, "enabl": 3, "set_group_admin": 3, "set_group_card": 3, "card": 3, "set_group_nam": 3, "group_leav": 3, "isdismiss": 3, "set_group_titl": 3, "titl": [3, 6, 7, 8, 18], "set_friend_add": 3, "addflag": 3, "approv": [3, 6], "remark": 3, "flag": [3, 6, 8], "req_flag": [3, 6], "set_group_add": 3, "addtyp": 3, "add": [3, 6], "invit": [3, 6], "rejectreason": 3, "group_req_typ": [3, 6], "get_login_info": 3, "get_stranger_info": 3, "nocach": 3, "get_friend_list": 3, "get_group_info": 3, "get_group_list": 3, "get_group_member_info": 3, "get_group_member_list": 3, "get_group_honor": 3, "talkat": 3, "perform": [3, 6], "legend": 3, "strong_newbi": 3, "emot": [3, 6], "check_send_imag": 3, "check_send_record": 3, "get_onebot_vers": 3, "get_onebot_status": 3, "take_custom_act": 3, "action": [3, 4], "make_act": 3, "need_resp": 3, "websocket": [4, 19], "connect_host": 4, "connect_port": 4, "hostnam": 4, "port": [4, 10], "ver": 5, "proj_nam": 5, "proj_desc": 5, "proj_src": 5, "author": 5, "author_email": 5, "argv": 5, "platform": [5, 9], "py_ver": 5, "py_info": 5, "sys": 5, "_version_info": 5, "os_sep": 5, "win": 5, "path_sep": 5, "line_sep": 5, "os": 5, "_environ": 5, "get_al": 5, "bot_id": 6, "group_id": 6, "raw_cont": 6, "font": 6, "temp_src": 6, "get_cq": 6, "cq_type": 6, "get_cq_param": 6, "at": 6, "is_priv": 6, "is_friend": 6, "is_group": 6, "is_group_norm": 6, "is_group_anonym": 6, "is_group_self": 6, "is_group_temp": 6, "is_temp": 6, "is_group_notic": 6, "nicknam": [6, 16], "sex": 6, "age": 6, "anonym_id": 6, "anonym_nam": 6, "anonym_flag": 6, "group_card": [6, 7, 8], "group_area": 6, "group_level": 6, "group_rol": 6, "admin": 6, "member": 6, "anonym": 6, "group_titl": 6, "is_group_own": 6, "is_group_admin": 6, "only_group_memb": 6, "is_anonym_memb": 6, "is_bot": 6, "from_id": 6, "from_group_id": 6, "req_com": 6, "is_friend_req": 6, "is_group_req": 6, "notice_user_id": 6, "notice_group_id": 6, "notice_operator_id": 6, "notice_msg_id": 6, "join_group_typ": 6, "leave_group_typ": 6, "leav": [6, 14], "kick": 6, "kick_m": 6, "admin_change_typ": 6, "set": [6, 8], "unset": 6, "file": [6, 18], "group_ban_typ": 6, "ban": 6, "lift_ban": 6, "ban_tim": 6, "honor_change_typ": 6, "talkact": 6, "new_titl": 6, "old_card": 6, "new_card": 6, "client": 6, "essence_change_typ": 6, "delet": 6, "is_group_upload": 6, "is_group_decreas": 6, "is_group_increas": 6, "is_group_ban": 6, "is_friend_add": 6, "is_group_recal": 6, "is_friend_recal": 6, "is_group_card": 6, "is_offline_fil": 6, "is_client_status": 6, "is_ess": 6, "is_notifi": 6, "is_honor": 6, "is_pok": 6, "is_lucky_k": 6, "is_titl": 6, "size": [6, 14], "busid": 6, "url": [6, 7, 18], "onlin": 6, "kind": 6, "status": 6, "is_ok": 6, "is_process": 6, "is_fail": 6, "is_lifecycl": 6, "is_heartbeat": 6, "text_msg": 6, "face_msg": 6, "record_msg": 6, "magic": 6, "cach": 6, "proxi": 6, "at_msg": 6, "share_msg": 6, "imag": [6, 18], "music_msg": 6, "163": 6, "xm": 6, "custom_music_msg": 6, "audio": 6, "image_msg": 6, "flash": 6, "base64": 6, "reply_msg": 6, "poke_msg": 6, "xml_msg": 6, "xml": 6, "json_msg": 6, "json": 6, "custom_msg_nod": [6, 16], "sendnam": 6, "sendid": 6, "usestd": 6, "go": [6, 19], "refer_msg_nod": [6, 16], "cq_filter_text": 6, "cq_escap": 6, "amp": [6, 18], "cq_anti_escap": 6, "to_cq_arr": 6, "to_cq_str": 6, "version": [7, 14], "desc": 7, "doc": 7, "keyword": 7, "on_ev": 7, "checker": 7, "prioriti": 7, "block": 7, "temp": 7, "session_rul": 7, "direct_rous": 7, "conflict_wait": 7, "conflict_cb": 7, "on_messag": 7, "matcher": 7, "parser": 7, "botpars": 7, "on_every_messag": 7, "on_at_qq": 7, "qid": [7, 8], "on_start_match": [7, 10], "logic_mod": 7, "on_contain_match": 7, "on_full_match": 7, "on_end_match": 7, "on_regex_match": 7, "re": 7, "findal": 7, "on_request": 7, "on_friend_request": 7, "on_group_request": 7, "on_notic": 7, "group_upload": [7, 8], "group_admin": [7, 8], "group_decreas": [7, 8], "group_increas": [7, 8], "friend_add": [7, 8], "group_recal": [7, 8], "friend_recal": [7, 8], "offline_fil": [7, 8], "client_status": [7, 8], "essenc": [7, 8], "notifi": [7, 8], "honor": [7, 8], "poke": [7, 8], "lucky_k": [7, 8], "on_meta_ev": 7, "on_sign": 7, "baseutil": 7, "txt2img": 7, "def": [7, 10], "get_img_of_txt": 7, "format": 7, "byte": 7, "on_shar": 7, "reflector": 7, "helputil": 7, "all_help": 7, "get_all_help": 7, "return": 7, "all_helps_info_str": 7, "on_share_affect": 7, "add_a_help": 7, "on_bot_lif": 7, "hook": [7, 9], "say_hi": 7, "await": [7, 10], "hello": [7, 10], "xxxxx": 7, "on_plugins_load": 7, "on_connect": 7, "on_before_clos": 7, "on_before_stop": 7, "on_event_built": 7, "on_action_presend": 7, "botlogg": 8, "level": 8, "to_consol": 8, "to_dir": 8, "no_tag": 8, "consol": 8, "setlevel": 8, "the": 8, "log": 8, "of": 8, "this": 8, "must": 8, "be": 8, "an": [8, 14], "startmatch": 8, "mode": 8, "containmatch": 8, "endmatch": 8, "fullmatch": 8, "regexmatch": 8, "regex_pattern": 8, "regex_flag": 8, "pattern": 8, "msglvlchecker": 8, "super_us": 8, "white_us": 8, "black_us": 8, "white_group": 8, "gen_bas": 8, "gen_group": 8, "gen_priv": 8, "friendreqcheck": 8, "groupreqcheck": 8, "noticetypecheck": 8, "sub_typ": 8, "cmd_start": 8, "cmd_sep": 8, "formatt": 8, "gen": 8, "convert": 8, "verifi": 8, "src_desc": 8, "src_expect": 8, "default_replace_flag": 8, "convert_fail": 8, "formatinfo": 8, "verify_fail": 8, "arg_lack": 8, "src": 8, "idx": 8, "exc_typ": 8, "exc_tb": 8, "cmd_name": 8, "qbot": 9, "meloinf": 9, "pr": 9, "pip": 9, "instal": 9, "pdm": 9, "11": 9, "flask": 9, "nonebot": 9, "nonebot2": 9, "melobot": [10, 11, 15, 16, 17, 18, 19], "the_plugin": 10, "__name__": 10, "echo": 10, "if": 10, "__main__": 10, "host": 10, "127": 10, "8080": 10, "ws": [10, 19], "next": 11, "v2": 13, "535705163": 13, "aigc": 14, "stabl": 14, "diffus": 14, "masterpiec": 14, "best": 14, "qualiti": 14, "extrem": 14, "delic": 14, "beauti": 14, "deta": 14, "ile": 14, "8k": 14, "wallpap": 14, "sunni": 14, "day": 14, "head": 14, "portrait": 14, "stand": 14, "on": 14, "grassland": 14, "detail": 14, "rass": 14, "onli": 14, "one": 14, "girl": 14, "long": 14, "hair": 14, "over": 14, "shoulder": 14, "aqua": 14, "gradient": 14, "cross": 14, "ba": 14, "ngs": 14, "between": 14, "eye": 14, "flower": 14, "green": 14, "face": [14, 16, 18], "mouth": 14, "nose": 14, "cute": 14, "smile": 14, "light": 14, "blush": 14, "sera": 14, "fuku": 14, "bow": 14, "skirt": 14, "warm": 14, "nsfw": 14, "lowr": 14, "bad": 14, "anatomi": 14, "hand": 14, "leg": 14, "three": 14, "four": 14, "feet": 14, "rror": 14, "miss": 14, "finger": 14, "extra": 14, "digit": 14, "fewer": 14, "crop": 14, "worst": 14, "low": 14, "normal": 14, "jpeg": 14, "artifact": 14, "signatur": 14, "watermark": 14, "usernam": 14, "blurri": 14, "two": 14, "step": 14, "42": 14, "sampler": 14, "dpm": 14, "3m": 14, "sde": 14, "karra": 14, "cfg": 14, "scale": 14, "seed": 14, "1586538230": 14, "512x512": 14, "hash": 14, "d1facd9a2b": 14, "anyth": 14, "v3": 14, "variat": 14, "1795324066": 14, "strength": 14, "05": 14, "clip": 14, "skip": 14, "eta": 14, "68": 14, "v1": 14, "123456": 16, "user_id": 16, "10001000": 16, "123": [16, 18], "91": [16, 18], "44": [16, 18], "93": [16, 18], "string": 18, "array": 18, "ckyu": 18, "178": 18, "jpg": 18, "shake": 18, "share": 18, "http": [18, 19], "baidu": 18, "com": 18, "null": 18, "v11": 19, "cqhttp": 19, "openshamrock": 19, "lagrang": 19, "core": 19, "get": 19, "post": 19}, "objects": {"melobot.base.abc": [[1, 0, 1, "", "AbstractConnector"], [1, 0, 1, "", "BotAction"], [1, 0, 1, "", "BotChecker"], [1, 0, 1, "", "BotEvent"], [1, 0, 1, "", "BotMatcher"], [1, 0, 1, "", "SessionRule"], [1, 0, 1, "", "WrappedChecker"], [1, 0, 1, "", "WrappedMatcher"]], "melobot.base.abc.AbstractConnector": [[1, 1, 1, "", "cd_time"], [1, 1, 1, "", "max_retry"], [1, 1, 1, "", "retry_delay"], [1, 1, 1, "", "slack"]], "melobot.base.abc.BotAction": [[1, 1, 1, "", "params"], [1, 1, 1, "", "resp_id"], [1, 1, 1, "", "trigger"], [1, 1, 1, "", "type"]], "melobot.base.abc.BotChecker": [[1, 2, 1, "", "__init__"], [1, 2, 1, "", "check"]], "melobot.base.abc.BotEvent": [[1, 2, 1, "", "is_meta_event"], [1, 2, 1, "", "is_msg_event"], [1, 2, 1, "", "is_notice_event"], [1, 2, 1, "", "is_req_event"], [1, 2, 1, "", "is_resp_event"], [1, 1, 1, "", "raw"], [1, 3, 1, "", "time"], [1, 3, 1, "", "type"]], "melobot.base.abc.BotMatcher": [[1, 2, 1, "", "__init__"], [1, 2, 1, "", "match"]], "melobot.base.abc.SessionRule": [[1, 2, 1, "", "__init__"], [1, 2, 1, "", "compare"]], "melobot.base.exceptions": [[1, 0, 1, "", "BotException"], [1, 0, 1, "", "SessionHupTimeout"]], "melobot.base.tools": [[1, 0, 1, "", "RWController"], [1, 4, 1, "", "async_at"], [1, 4, 1, "", "async_interval"], [1, 4, 1, "", "async_later"], [1, 4, 1, "", "call_at"], [1, 4, 1, "", "call_later"], [1, 4, 1, "", "cooldown"], [1, 4, 1, "", "get_id"], [1, 4, 1, "", "lock"], [1, 4, 1, "", "semaphore"], [1, 4, 1, "", "this_dir"], [1, 4, 1, "", "timelimit"], [1, 4, 1, "", "to_async"], [1, 4, 1, "", "to_coro"], [1, 4, 1, "", "to_task"]], "melobot.base.tools.RWController": [[1, 2, 1, "", "__init__"]], "melobot.base.typing": [[1, 0, 1, "", "BotLife"], [1, 0, 1, "", "CQMsgDict"], [1, 0, 1, "", "CustomNodeData"], [1, 0, 1, "", "LogicMode"], [1, 0, 1, "", "MsgNodeDict"], [1, 0, 1, "", "PriorLevel"], [1, 0, 1, "", "ReferNodeData"], [1, 0, 1, "", "User"], [1, 0, 1, "", "Void"], [1, 5, 1, "", "VoidType"]], "melobot.base.typing.BotLife": [[1, 1, 1, "", "ACTION_PRESEND"], [1, 1, 1, "", "BEFORE_CLOSE"], [1, 1, 1, "", "BEFORE_STOP"], [1, 1, 1, "", "CONNECTED"], [1, 1, 1, "", "EVENT_BUILT"], [1, 1, 1, "", "LOADED"]], "melobot.base.typing.CQMsgDict": [[1, 1, 1, "", "data"], [1, 1, 1, "", "type"]], "melobot.base.typing.CustomNodeData": [[1, 1, 1, "", "content"], [1, 1, 1, "", "name"], [1, 1, 1, "", "seq"], [1, 1, 1, "", "uin"]], "melobot.base.typing.LogicMode": [[1, 1, 1, "", "AND"], [1, 1, 1, "", "NOT"], [1, 1, 1, "", "OR"], [1, 1, 1, "", "XOR"]], "melobot.base.typing.MsgNodeDict": [[1, 1, 1, "", "data"], [1, 1, 1, "", "type"]], "melobot.base.typing.PriorLevel": [[1, 1, 1, "", "MAX"], [1, 1, 1, "", "MEAN"], [1, 1, 1, "", "MIN"]], "melobot.base.typing.ReferNodeData": [[1, 1, 1, "", "id"]], "melobot.base.typing.User": [[1, 1, 1, "", "BLACK"], [1, 1, 1, "", "OWNER"], [1, 1, 1, "", "SU"], [1, 1, 1, "", "USER"], [1, 1, 1, "", "WHITE"]], "melobot": [[2, 6, 0, "-", "bot"], [4, 6, 0, "-", "io"], [5, 6, 0, "-", "meta"], [7, 6, 0, "-", "plugin"]], "melobot.bot": [[2, 0, 1, "", "MeloBot"], [2, 5, 1, "", "thisbot"]], "melobot.bot.MeloBot": [[2, 2, 1, "", "__init__"], [2, 2, 1, "", "activate"], [2, 2, 1, "", "close"], [2, 1, 1, "", "connector"], [2, 2, 1, "", "emit_signal"], [2, 2, 1, "", "get_plugins"], [2, 2, 1, "", "get_share"], [2, 1, 1, "", "info"], [2, 2, 1, "", "init"], [2, 2, 1, "", "is_activate"], [2, 2, 1, "", "load_plugin"], [2, 2, 1, "", "load_plugins"], [2, 1, 1, "", "logger"], [2, 2, 1, "", "multicast"], [2, 1, 1, "", "name"], [2, 2, 1, "", "run"], [2, 2, 1, "", "slack"], [2, 2, 1, "", "start"], [2, 2, 1, "", "unicast"]], "melobot.context": [[3, 0, 1, "", "AttrSessionRule"], [3, 4, 1, "", "any_event"], [3, 4, 1, "", "check_send_image"], [3, 4, 1, "", "check_send_record"], [3, 4, 1, "", "dispose"], [3, 4, 1, "", "finish"], [3, 4, 1, "", "get_forward_msg"], [3, 4, 1, "", "get_friend_list"], [3, 4, 1, "", "get_group_honor"], [3, 4, 1, "", "get_group_info"], [3, 4, 1, "", "get_group_list"], [3, 4, 1, "", "get_group_member_info"], [3, 4, 1, "", "get_group_member_list"], [3, 4, 1, "", "get_image"], [3, 4, 1, "", "get_login_info"], [3, 4, 1, "", "get_msg"], [3, 4, 1, "", "get_onebot_status"], [3, 4, 1, "", "get_onebot_version"], [3, 4, 1, "", "get_store"], [3, 4, 1, "", "get_stranger_info"], [3, 4, 1, "", "group_ban"], [3, 4, 1, "", "group_kick"], [3, 4, 1, "", "group_leave"], [3, 4, 1, "", "group_whole_ban"], [3, 4, 1, "", "make_action"], [3, 4, 1, "", "meta_event"], [3, 4, 1, "", "msg_args"], [3, 4, 1, "", "msg_event"], [3, 4, 1, "", "msg_recall"], [3, 4, 1, "", "msg_text"], [3, 4, 1, "", "notice_event"], [3, 4, 1, "", "pause"], [3, 4, 1, "", "reply_finish"], [3, 4, 1, "", "req_evnt"], [3, 4, 1, "", "send"], [3, 4, 1, "", "send_custom_forward"], [3, 4, 1, "", "send_custom_msg"], [3, 4, 1, "", "send_forward"], [3, 4, 1, "", "send_like"], [3, 4, 1, "", "send_reply"], [3, 4, 1, "", "send_wait"], [3, 4, 1, "", "set_friend_add"], [3, 4, 1, "", "set_group_add"], [3, 4, 1, "", "set_group_admin"], [3, 4, 1, "", "set_group_card"], [3, 4, 1, "", "set_group_name"], [3, 4, 1, "", "set_group_title"], [3, 4, 1, "", "take_custom_action"]], "melobot.context.AttrSessionRule": [[3, 2, 1, "", "__init__"]], "melobot.io": [[4, 0, 1, "", "ForwardWsConn"]], "melobot.io.ForwardWsConn": [[4, 2, 1, "", "__init__"]], "melobot.meta": [[5, 0, 1, "", "MetaInfo"]], "melobot.meta.MetaInfo": [[5, 1, 1, "", "ARGV"], [5, 1, 1, "", "AUTHOR"], [5, 1, 1, "", "AUTHOR_EMAIL"], [5, 1, 1, "", "ENV"], [5, 1, 1, "", "LINE_SEP"], [5, 1, 1, "", "OS_SEP"], [5, 1, 1, "", "PATH_SEP"], [5, 1, 1, "", "PLATFORM"], [5, 1, 1, "", "PROJ_DESC"], [5, 1, 1, "", "PROJ_NAME"], [5, 1, 1, "", "PROJ_SRC"], [5, 1, 1, "", "PY_INFO"], [5, 1, 1, "", "PY_VER"], [5, 1, 1, "", "VER"], [5, 2, 1, "", "get_all"]], "melobot.models": [[6, 0, 1, "", "MessageEvent"], [6, 0, 1, "", "MetaEvent"], [6, 0, 1, "", "NoticeEvent"], [6, 0, 1, "", "RequestEvent"], [6, 0, 1, "", "ResponseEvent"], [6, 4, 1, "", "at_msg"], [6, 4, 1, "", "cq_anti_escape"], [6, 4, 1, "", "cq_escape"], [6, 4, 1, "", "cq_filter_text"], [6, 4, 1, "", "custom_msg_node"], [6, 4, 1, "", "custom_music_msg"], [6, 4, 1, "", "face_msg"], [6, 4, 1, "", "image_msg"], [6, 4, 1, "", "json_msg"], [6, 4, 1, "", "music_msg"], [6, 4, 1, "", "poke_msg"], [6, 4, 1, "", "record_msg"], [6, 4, 1, "", "refer_msg_node"], [6, 4, 1, "", "reply_msg"], [6, 4, 1, "", "share_msg"], [6, 4, 1, "", "text_msg"], [6, 4, 1, "", "to_cq_arr"], [6, 4, 1, "", "to_cq_str"], [6, 4, 1, "", "xml_msg"]], "melobot.models.MessageEvent": [[6, 0, 1, "", "Sender"], [6, 1, 1, "", "bot_id"], [6, 1, 1, "", "content"], [6, 1, 1, "", "font"], [6, 2, 1, "", "get_cq"], [6, 2, 1, "", "get_cq_params"], [6, 1, 1, "", "group_id"], [6, 1, 1, "", "id"], [6, 2, 1, "", "is_friend"], [6, 2, 1, "", "is_group"], [6, 2, 1, "", "is_group_anonym"], [6, 2, 1, "", "is_group_normal"], [6, 2, 1, "", "is_group_notice"], [6, 2, 1, "", "is_group_self"], [6, 2, 1, "", "is_group_temp"], [6, 2, 1, "", "is_private"], [6, 2, 1, "", "is_temp"], [6, 1, 1, "", "raw_content"], [6, 1, 1, "", "sender"], [6, 1, 1, "", "temp_src"], [6, 1, 1, "", "text"], [6, 3, 1, "", "time"], [6, 3, 1, "", "type"]], "melobot.models.MessageEvent.Sender": [[6, 1, 1, "", "age"], [6, 1, 1, "", "anonym_flag"], [6, 1, 1, "", "anonym_id"], [6, 1, 1, "", "anonym_name"], [6, 1, 1, "", "group_area"], [6, 1, 1, "", "group_card"], [6, 1, 1, "", "group_level"], [6, 1, 1, "", "group_role"], [6, 1, 1, "", "group_title"], [6, 1, 1, "", "id"], [6, 2, 1, "", "is_anonym_member"], [6, 2, 1, "", "is_bot"], [6, 2, 1, "", "is_group_admin"], [6, 2, 1, "", "is_group_owner"], [6, 1, 1, "", "nickname"], [6, 2, 1, "", "only_group_member"], [6, 1, 1, "", "sex"]], "melobot.models.MetaEvent": [[6, 1, 1, "", "bot_id"], [6, 2, 1, "", "is_heartbeat"], [6, 2, 1, "", "is_lifecycle"], [6, 3, 1, "", "time"], [6, 3, 1, "", "type"]], "melobot.models.NoticeEvent": [[6, 0, 1, "", "Client"], [6, 0, 1, "", "File"], [6, 1, 1, "", "admin_change_type"], [6, 1, 1, "", "ban_time"], [6, 1, 1, "", "client"], [6, 1, 1, "", "essence_change_type"], [6, 1, 1, "", "file"], [6, 1, 1, "", "group_ban_type"], [6, 1, 1, "", "honor_change_type"], [6, 2, 1, "", "is_client_status"], [6, 2, 1, "", "is_essence"], [6, 2, 1, "", "is_friend_add"], [6, 2, 1, "", "is_friend_recall"], [6, 2, 1, "", "is_group"], [6, 2, 1, "", "is_group_admin"], [6, 2, 1, "", "is_group_ban"], [6, 2, 1, "", "is_group_card"], [6, 2, 1, "", "is_group_decrease"], [6, 2, 1, "", "is_group_increase"], [6, 2, 1, "", "is_group_recall"], [6, 2, 1, "", "is_group_upload"], [6, 2, 1, "", "is_honor"], [6, 2, 1, "", "is_lucky_king"], [6, 2, 1, "", "is_notify"], [6, 2, 1, "", "is_offline_file"], [6, 2, 1, "", "is_poke"], [6, 2, 1, "", "is_title"], [6, 1, 1, "", "join_group_type"], [6, 1, 1, "", "leave_group_type"], [6, 1, 1, "", "new_card"], [6, 1, 1, "", "new_title"], [6, 1, 1, "", "notice_group_id"], [6, 1, 1, "", "notice_msg_id"], [6, 1, 1, "", "notice_operator_id"], [6, 1, 1, "", "notice_user_id"], [6, 1, 1, "", "old_card"], [6, 3, 1, "", "time"], [6, 3, 1, "", "type"]], "melobot.models.NoticeEvent.Client": [[6, 1, 1, "", "id"], [6, 1, 1, "", "kind"], [6, 1, 1, "", "name"], [6, 1, 1, "", "online"]], "melobot.models.NoticeEvent.File": [[6, 1, 1, "", "busid"], [6, 1, 1, "", "id"], [6, 1, 1, "", "name"], [6, 1, 1, "", "size"], [6, 1, 1, "", "url"]], "melobot.models.RequestEvent": [[6, 1, 1, "", "bot_id"], [6, 1, 1, "", "from_group_id"], [6, 1, 1, "", "from_id"], [6, 1, 1, "", "group_req_type"], [6, 2, 1, "", "is_friend_req"], [6, 2, 1, "", "is_group_req"], [6, 1, 1, "", "req_comment"], [6, 1, 1, "", "req_flag"], [6, 3, 1, "", "time"], [6, 3, 1, "", "type"]], "melobot.models.ResponseEvent": [[6, 1, 1, "", "data"], [6, 1, 1, "", "id"], [6, 2, 1, "", "is_failed"], [6, 2, 1, "", "is_ok"], [6, 2, 1, "", "is_processing"], [6, 1, 1, "", "status"], [6, 3, 1, "", "time"], [6, 3, 1, "", "type"]], "melobot.plugin": [[7, 0, 1, "", "BotPlugin"]], "melobot.plugin.BotPlugin": [[7, 2, 1, "", "__init__"], [7, 3, 1, "", "on_action_presend"], [7, 2, 1, "", "on_at_qq"], [7, 3, 1, "", "on_before_close"], [7, 3, 1, "", "on_before_stop"], [7, 2, 1, "", "on_bot_life"], [7, 3, 1, "", "on_connected"], [7, 2, 1, "", "on_contain_match"], [7, 2, 1, "", "on_end_match"], [7, 2, 1, "", "on_event"], [7, 3, 1, "", "on_event_built"], [7, 2, 1, "", "on_every_message"], [7, 2, 1, "", "on_friend_request"], [7, 2, 1, "", "on_full_match"], [7, 2, 1, "", "on_group_request"], [7, 2, 1, "", "on_message"], [7, 2, 1, "", "on_meta_event"], [7, 2, 1, "", "on_notice"], [7, 3, 1, "", "on_plugins_loaded"], [7, 2, 1, "", "on_regex_match"], [7, 2, 1, "", "on_request"], [7, 2, 1, "", "on_share"], [7, 2, 1, "", "on_share_affected"], [7, 2, 1, "", "on_signal"], [7, 2, 1, "", "on_start_match"]], "melobot.utils": [[8, 0, 1, "", "ArgFormatter"], [8, 0, 1, "", "AtChecker"], [8, 0, 1, "", "BotLogger"], [8, 0, 1, "", "CmdParser"], [8, 0, 1, "", "CmdParserGen"], [8, 0, 1, "", "ContainMatcher"], [8, 0, 1, "", "EndMatcher"], [8, 0, 1, "", "FormatInfo"], [8, 0, 1, "", "FriendReqChecker"], [8, 0, 1, "", "FullMatcher"], [8, 0, 1, "", "GroupMsgLvlChecker"], [8, 0, 1, "", "GroupReqChecker"], [8, 0, 1, "", "MsgCheckerGen"], [8, 0, 1, "", "MsgLvlChecker"], [8, 0, 1, "", "NoticeTypeChecker"], [8, 0, 1, "", "PrivateMsgLvlChecker"], [8, 0, 1, "", "RegexMatcher"], [8, 0, 1, "", "StartMatcher"]], "melobot.utils.ArgFormatter": [[8, 2, 1, "", "__init__"]], "melobot.utils.AtChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.BotLogger": [[8, 2, 1, "", "__init__"], [8, 2, 1, "", "setLevel"]], "melobot.utils.CmdParser": [[8, 2, 1, "", "__init__"]], "melobot.utils.CmdParserGen": [[8, 2, 1, "", "__init__"], [8, 2, 1, "", "gen"]], "melobot.utils.ContainMatcher": [[8, 2, 1, "", "__init__"]], "melobot.utils.EndMatcher": [[8, 2, 1, "", "__init__"]], "melobot.utils.FormatInfo": [[8, 1, 1, "", "cmd_name"], [8, 1, 1, "", "exc_tb"], [8, 1, 1, "", "exc_type"], [8, 1, 1, "", "idx"], [8, 1, 1, "", "src"], [8, 1, 1, "", "src_desc"], [8, 1, 1, "", "src_expect"]], "melobot.utils.FriendReqChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.FullMatcher": [[8, 2, 1, "", "__init__"]], "melobot.utils.GroupMsgLvlChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.GroupReqChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.MsgCheckerGen": [[8, 2, 1, "", "__init__"], [8, 2, 1, "", "gen_base"], [8, 2, 1, "", "gen_group"], [8, 2, 1, "", "gen_private"]], "melobot.utils.MsgLvlChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.NoticeTypeChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.PrivateMsgLvlChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.RegexMatcher": [[8, 2, 1, "", "__init__"]], "melobot.utils.StartMatcher": [[8, 2, 1, "", "__init__"]]}, "objtypes": {"0": "py:class", "1": "py:attribute", "2": "py:method", "3": "py:property", "4": "py:function", "5": "py:data", "6": "py:module"}, "objnames": {"0": ["py", "class", "Python \u7c7b"], "1": ["py", "attribute", "Python \u5c5e\u6027"], "2": ["py", "method", "Python \u65b9\u6cd5"], "3": ["py", "property", "Python \u6258\u7ba1\u5c5e\u6027"], "4": ["py", "function", "Python \u51fd\u6570"], "5": ["py", "data", "Python \u6570\u636e"], "6": ["py", "module", "Python \u6a21\u5757"]}, "titleterms": {"melobot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 14], "api": 0, "base": 1, "abc": 1, "except": 1, "tool": 1, "type": 1, "bot": 2, "context": 3, "io": 4, "meta": 5, "model": 6, "plugin": 7, "util": 8, "demo": 10, "v3": 13, "cq": 18, "onebot": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"melobot API \u53c2\u8003": [[0, "melobot-api"]], "\u63d0\u793a": [[0, null], [1, null], [1, null], [1, null], [1, null], [1, null], [5, null], [6, null], [6, null], [6, null], [6, null], [6, null], [6, null], [6, null], [6, null], [6, null], [6, null], [6, null], [8, null], [16, null]], "melobot.base": [[1, "melobot-base"]], "abc \u6a21\u5757": [[1, "abc"]], "exceptions \u6a21\u5757": [[1, "exceptions"]], "tools \u6a21\u5757": [[1, "tools"]], "typing \u6a21\u5757": [[1, "typing"]], "melobot.bot": [[2, "melobot-bot"]], "bot \u7c7b": [[2, "module-melobot.bot"]], "melobot.context": [[3, "melobot-context"]], "\u4f1a\u8bdd": [[3, "id1"]], "\u9ad8\u7ea7\u884c\u4e3a\u64cd\u4f5c": [[3, "id2"]], "\u5c0f\u6280\u5de7": [[3, null], [3, null], [3, null], [3, null], [3, null], [3, null], [3, null], [3, null]], "\u8b66\u544a": [[3, null], [3, null], [3, null], [3, null], [3, null], [3, null], [3, null], [3, null]], "\u57fa\u672c\u884c\u4e3a\u64cd\u4f5c": [[3, "action-operations"]], "\u6ce8\u610f": [[3, null], [6, null], [7, null], [7, null], [7, null], [8, null], [8, null], [18, null], [18, null]], "\u624b\u52a8\u884c\u4e3a\u64cd\u4f5c": [[3, "id5"]], "melobot.io": [[4, "melobot-io"]], "\u8fde\u63a5\u5668": [[4, "module-melobot.io"]], "melobot.meta": [[5, "melobot-meta"]], "\u5143\u4fe1\u606f": [[5, "id1"]], "melobot.models": [[6, "melobot-models"]], "\u4e8b\u4ef6\u7c7b\u578b": [[6, "id1"], [15, "id2"]], "\u6d88\u606f\u6784\u9020": [[6, "cq-msgs"]], "melobot.plugin": [[7, "melobot-plugin"]], "\u63d2\u4ef6": [[7, "id1"]], "melobot.utils": [[8, "melobot-utils"]], "\u65e5\u5fd7\u5668": [[8, "id1"]], "\u5339\u914d\u5668": [[8, "id2"]], "\u76f8\u5173\u77e5\u8bc6": [[8, null], [8, null], [8, null], [8, null], [10, null], [10, null], [16, null], [18, null]], "\u68c0\u67e5\u5668": [[8, "id3"]], "\u89e3\u6790\u5668": [[8, "id4"]], "\u683c\u5f0f\u5316\u5668": [[8, "id5"]], "melobot \u6587\u6863": [[9, "melobot"]], "\ud83c\udf89 \u7b80\u4ecb": [[9, "id1"]], "\u2728 \u7279\u8272": [[9, "id2"]], "\ud83d\udce6\ufe0f \u5b89\u88c5\u4f7f\u7528": [[9, "id3"]], "\ud83e\ude84 \u7248\u672c\u652f\u6301": [[9, "id4"]], "\u2764\ufe0f \u81f4\u8c22": [[9, "id5"]], "\u521b\u5efa\u7b2c\u4e00\u4e2a\u673a\u5668\u4eba": [[10, "id1"]], "\u9884\u5148\u914d\u7f6e": [[10, "id2"]], "\u4e00\u4e2a\u5c0f demo": [[10, "demo"]], "\u5c0f demo \u8bb2\u89e3": [[10, "id3"]], "\u5f00\u59cb\u4f7f\u7528": [[11, "id1"]], "\u5907\u6ce8": [[11, null]], "\u5904\u7406\u66f4\u591a\u4e8b\u4ef6": [[12, "id1"]], "\u4e0b\u4e00\u4ee3 melobot": [[13, "melobot"]], "melobot v3": [[13, "melobot-v3"]], "melobot \u5f62\u8c61": [[14, "melobot"]], "\u751f\u6210\u53c2\u6570": [[14, "id1"]], "\u4e8b\u4ef6\u548c\u884c\u4e3a": [[15, "id1"]], "\u884c\u4e3a\u7c7b\u578b": [[15, "id3"]], "\u8f6c\u53d1\u6d88\u606f\u4e0e\u6d88\u606f\u7ed3\u70b9": [[16, "id1"]], "\u5408\u5e76\u8f6c\u53d1\u7ed3\u70b9": [[16, "id2"]], "\u5408\u5e76\u8f6c\u53d1\u81ea\u5b9a\u4e49\u7ed3\u70b9": [[16, "id3"]], "\u76f8\u5173\u53c2\u8003": [[17, "id1"]], "\u6d88\u606f\u5185\u5bb9\u7684\u6570\u636e\u7ed3\u6784": [[18, "id1"]], "\u5b57\u7b26\u4e32\u683c\u5f0f": [[18, "id2"]], "CQ \u7801\u683c\u5f0f": [[18, "cq"]], "CQ \u7801\u8f6c\u4e49": [[18, "id3"]], "\u6570\u7ec4\u683c\u5f0f": [[18, "id4"]], "\u6d88\u606f\u6bb5": [[18, "id5"]], "\u6d88\u606f\u6bb5\u6570\u7ec4": [[18, "id6"]], "OneBot \u534f\u8bae\u548c\u5b9e\u73b0": [[19, "onebot"]]}, "indexentries": {"action_presend\uff08melobot.base.typing.botlife \u5c5e\u6027\uff09": [[1, "melobot.base.typing.BotLife.ACTION_PRESEND"]], "and\uff08melobot.base.typing.logicmode \u5c5e\u6027\uff09": [[1, "melobot.base.typing.LogicMode.AND"]], "abstractconnector\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.AbstractConnector"]], "before_close\uff08melobot.base.typing.botlife \u5c5e\u6027\uff09": [[1, "melobot.base.typing.BotLife.BEFORE_CLOSE"]], "before_stop\uff08melobot.base.typing.botlife \u5c5e\u6027\uff09": [[1, "melobot.base.typing.BotLife.BEFORE_STOP"]], "black\uff08melobot.base.typing.user \u5c5e\u6027\uff09": [[1, "melobot.base.typing.User.BLACK"]], "botaction\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.BotAction"]], "botchecker\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.BotChecker"]], "botevent\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.BotEvent"]], "botexception\uff08melobot.base.exceptions \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.exceptions.BotException"]], "botlife\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.BotLife"]], "botmatcher\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.BotMatcher"]], "connected\uff08melobot.base.typing.botlife \u5c5e\u6027\uff09": [[1, "melobot.base.typing.BotLife.CONNECTED"]], "cqmsgdict\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.CQMsgDict"]], "customnodedata\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.CustomNodeData"]], "event_built\uff08melobot.base.typing.botlife \u5c5e\u6027\uff09": [[1, "melobot.base.typing.BotLife.EVENT_BUILT"]], "loaded\uff08melobot.base.typing.botlife \u5c5e\u6027\uff09": [[1, "melobot.base.typing.BotLife.LOADED"]], "logicmode\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.LogicMode"]], "max\uff08melobot.base.typing.priorlevel \u5c5e\u6027\uff09": [[1, "melobot.base.typing.PriorLevel.MAX"]], "mean\uff08melobot.base.typing.priorlevel \u5c5e\u6027\uff09": [[1, "melobot.base.typing.PriorLevel.MEAN"]], "min\uff08melobot.base.typing.priorlevel \u5c5e\u6027\uff09": [[1, "melobot.base.typing.PriorLevel.MIN"]], "msgnodedict\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.MsgNodeDict"]], "not\uff08melobot.base.typing.logicmode \u5c5e\u6027\uff09": [[1, "melobot.base.typing.LogicMode.NOT"]], "or\uff08melobot.base.typing.logicmode \u5c5e\u6027\uff09": [[1, "melobot.base.typing.LogicMode.OR"]], "owner\uff08melobot.base.typing.user \u5c5e\u6027\uff09": [[1, "melobot.base.typing.User.OWNER"]], "priorlevel\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.PriorLevel"]], "rwcontroller\uff08melobot.base.tools \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.tools.RWController"]], "refernodedata\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.ReferNodeData"]], "su\uff08melobot.base.typing.user \u5c5e\u6027\uff09": [[1, "melobot.base.typing.User.SU"]], "sessionhuptimeout\uff08melobot.base.exceptions \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.exceptions.SessionHupTimeout"]], "sessionrule\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.SessionRule"]], "user\uff08melobot.base.typing.user \u5c5e\u6027\uff09": [[1, "melobot.base.typing.User.USER"]], "user\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.User"]], "void\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.Void"]], "white\uff08melobot.base.typing.user \u5c5e\u6027\uff09": [[1, "melobot.base.typing.User.WHITE"]], "wrappedchecker\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.WrappedChecker"]], "wrappedmatcher\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.WrappedMatcher"]], "xor\uff08melobot.base.typing.logicmode \u5c5e\u6027\uff09": [[1, "melobot.base.typing.LogicMode.XOR"]], "__init__() \uff08melobot.base.abc.botchecker \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotChecker.__init__"]], "__init__() \uff08melobot.base.abc.botmatcher \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotMatcher.__init__"]], "__init__() \uff08melobot.base.abc.sessionrule \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.SessionRule.__init__"]], "__init__() \uff08melobot.base.tools.rwcontroller \u65b9\u6cd5\uff09": [[1, "melobot.base.tools.RWController.__init__"]], "async_at()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.async_at"]], "async_interval()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.async_interval"]], "async_later()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.async_later"]], "call_at()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.call_at"]], "call_later()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.call_later"]], "cd_time\uff08melobot.base.abc.abstractconnector \u5c5e\u6027\uff09": [[1, "melobot.base.abc.AbstractConnector.cd_time"]], "check() \uff08melobot.base.abc.botchecker \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotChecker.check"]], "compare() \uff08melobot.base.abc.sessionrule \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.SessionRule.compare"]], "content\uff08melobot.base.typing.customnodedata \u5c5e\u6027\uff09": [[1, "melobot.base.typing.CustomNodeData.content"]], "cooldown()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.cooldown"]], "data\uff08melobot.base.typing.cqmsgdict \u5c5e\u6027\uff09": [[1, "melobot.base.typing.CQMsgDict.data"]], "data\uff08melobot.base.typing.msgnodedict \u5c5e\u6027\uff09": [[1, "melobot.base.typing.MsgNodeDict.data"]], "get_id()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.get_id"]], "id\uff08melobot.base.typing.refernodedata \u5c5e\u6027\uff09": [[1, "melobot.base.typing.ReferNodeData.id"]], "is_meta_event() \uff08melobot.base.abc.botevent \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotEvent.is_meta_event"]], "is_msg_event() \uff08melobot.base.abc.botevent \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotEvent.is_msg_event"]], "is_notice_event() \uff08melobot.base.abc.botevent \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotEvent.is_notice_event"]], "is_req_event() \uff08melobot.base.abc.botevent \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotEvent.is_req_event"]], "is_resp_event() \uff08melobot.base.abc.botevent \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotEvent.is_resp_event"]], "lock()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.lock"]], "match() \uff08melobot.base.abc.botmatcher \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotMatcher.match"]], "max_retry\uff08melobot.base.abc.abstractconnector \u5c5e\u6027\uff09": [[1, "melobot.base.abc.AbstractConnector.max_retry"]], "melobot.base.typing.voidtype\uff08\u5185\u7f6e\u53d8\u91cf\uff09": [[1, "melobot.base.typing.VoidType"]], "name\uff08melobot.base.typing.customnodedata \u5c5e\u6027\uff09": [[1, "melobot.base.typing.CustomNodeData.name"]], "params\uff08melobot.base.abc.botaction \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotAction.params"]], "raw\uff08melobot.base.abc.botevent \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotEvent.raw"]], "resp_id\uff08melobot.base.abc.botaction \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotAction.resp_id"]], "retry_delay\uff08melobot.base.abc.abstractconnector \u5c5e\u6027\uff09": [[1, "melobot.base.abc.AbstractConnector.retry_delay"]], "semaphore()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.semaphore"]], "seq\uff08melobot.base.typing.customnodedata \u5c5e\u6027\uff09": [[1, "melobot.base.typing.CustomNodeData.seq"]], "slack\uff08melobot.base.abc.abstractconnector \u5c5e\u6027\uff09": [[1, "melobot.base.abc.AbstractConnector.slack"]], "this_dir()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.this_dir"]], "timelimit()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.timelimit"]], "time\uff08melobot.base.abc.botevent \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotEvent.time"]], "to_async()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.to_async"]], "to_coro()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.to_coro"]], "to_task()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.to_task"]], "trigger\uff08melobot.base.abc.botaction \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotAction.trigger"]], "type\uff08melobot.base.abc.botaction \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotAction.type"]], "type\uff08melobot.base.abc.botevent \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotEvent.type"]], "type\uff08melobot.base.typing.cqmsgdict \u5c5e\u6027\uff09": [[1, "melobot.base.typing.CQMsgDict.type"]], "type\uff08melobot.base.typing.msgnodedict \u5c5e\u6027\uff09": [[1, "melobot.base.typing.MsgNodeDict.type"]], "uin\uff08melobot.base.typing.customnodedata \u5c5e\u6027\uff09": [[1, "melobot.base.typing.CustomNodeData.uin"]], "melobot\uff08melobot.bot \u4e2d\u7684\u7c7b\uff09": [[2, "melobot.bot.MeloBot"]], "__init__() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.__init__"]], "activate() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.activate"]], "close() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.close"]], "connector\uff08melobot.bot.melobot \u5c5e\u6027\uff09": [[2, "melobot.bot.MeloBot.connector"]], "emit_signal() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.emit_signal"]], "get_plugins() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.get_plugins"]], "get_share() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.get_share"]], "info\uff08melobot.bot.melobot \u5c5e\u6027\uff09": [[2, "melobot.bot.MeloBot.info"]], "init() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.init"]], "is_activate() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.is_activate"]], "load_plugin() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.load_plugin"]], "load_plugins() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.load_plugins"]], "logger\uff08melobot.bot.melobot \u5c5e\u6027\uff09": [[2, "melobot.bot.MeloBot.logger"]], "melobot.bot": [[2, "module-melobot.bot"]], "module": [[2, "module-melobot.bot"], [4, "module-melobot.io"], [5, "module-melobot.meta"], [7, "module-melobot.plugin"]], "multicast()\uff08melobot.bot.melobot \u7c7b\u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.multicast"]], "name\uff08melobot.bot.melobot \u5c5e\u6027\uff09": [[2, "melobot.bot.MeloBot.name"]], "run() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.run"]], "slack() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.slack"]], "start()\uff08melobot.bot.melobot \u7c7b\u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.start"]], "thisbot()\uff08\u5728 melobot.bot \u6a21\u5757\u4e2d\uff09": [[2, "melobot.bot.thisbot"]], "unicast()\uff08melobot.bot.melobot \u7c7b\u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.unicast"]], "attrsessionrule\uff08melobot.context \u4e2d\u7684\u7c7b\uff09": [[3, "melobot.context.AttrSessionRule"]], "__init__() \uff08melobot.context.attrsessionrule \u65b9\u6cd5\uff09": [[3, "melobot.context.AttrSessionRule.__init__"]], "any_event()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.any_event"]], "check_send_image()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.check_send_image"]], "check_send_record()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.check_send_record"]], "dispose()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.dispose"]], "finish()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.finish"]], "get_forward_msg()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_forward_msg"]], "get_friend_list()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_friend_list"]], "get_group_honor()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_group_honor"]], "get_group_info()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_group_info"]], "get_group_list()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_group_list"]], "get_group_member_info()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_group_member_info"]], "get_group_member_list()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_group_member_list"]], "get_image()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_image"]], "get_login_info()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_login_info"]], "get_msg()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_msg"]], "get_onebot_status()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_onebot_status"]], "get_onebot_version()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_onebot_version"]], "get_store()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_store"]], "get_stranger_info()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_stranger_info"]], "group_ban()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.group_ban"]], "group_kick()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.group_kick"]], "group_leave()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.group_leave"]], "group_whole_ban()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.group_whole_ban"]], "make_action()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.make_action"]], "meta_event()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.meta_event"]], "msg_args()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.msg_args"]], "msg_event()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.msg_event"]], "msg_recall()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.msg_recall"]], "msg_text()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.msg_text"]], "notice_event()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.notice_event"]], "pause()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.pause"]], "reply_finish()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.reply_finish"]], "req_evnt()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.req_evnt"]], "send()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send"]], "send_custom_forward()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send_custom_forward"]], "send_custom_msg()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send_custom_msg"]], "send_forward()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send_forward"]], "send_like()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send_like"]], "send_reply()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send_reply"]], "send_wait()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send_wait"]], "set_friend_add()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.set_friend_add"]], "set_group_add()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.set_group_add"]], "set_group_admin()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.set_group_admin"]], "set_group_card()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.set_group_card"]], "set_group_name()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.set_group_name"]], "set_group_title()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.set_group_title"]], "take_custom_action()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.take_custom_action"]], "forwardwsconn\uff08melobot.io \u4e2d\u7684\u7c7b\uff09": [[4, "melobot.io.ForwardWsConn"]], "__init__() \uff08melobot.io.forwardwsconn \u65b9\u6cd5\uff09": [[4, "melobot.io.ForwardWsConn.__init__"]], "melobot.io": [[4, "module-melobot.io"]], "argv\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.ARGV"]], "author_email\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.AUTHOR_EMAIL"]], "author\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.AUTHOR"]], "env\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.ENV"]], "line_sep\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.LINE_SEP"]], "metainfo\uff08melobot.meta \u4e2d\u7684\u7c7b\uff09": [[5, "melobot.meta.MetaInfo"]], "os_sep\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.OS_SEP"]], "path_sep\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PATH_SEP"]], "platform\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PLATFORM"]], "proj_desc\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PROJ_DESC"]], "proj_name\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PROJ_NAME"]], "proj_src\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PROJ_SRC"]], "py_info\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PY_INFO"]], "py_ver\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PY_VER"]], "ver\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.VER"]], "get_all() \uff08melobot.meta.metainfo \u65b9\u6cd5\uff09": [[5, "melobot.meta.MetaInfo.get_all"]], "melobot.meta": [[5, "module-melobot.meta"]], "messageevent.sender\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.MessageEvent.Sender"]], "messageevent\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.MessageEvent"]], "metaevent\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.MetaEvent"]], "noticeevent.client\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.NoticeEvent.Client"]], "noticeevent.file\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.NoticeEvent.File"]], "noticeevent\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.NoticeEvent"]], "requestevent\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.RequestEvent"]], "responseevent\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.ResponseEvent"]], "admin_change_type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.admin_change_type"]], "age\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.age"]], "anonym_flag\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.anonym_flag"]], "anonym_id\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.anonym_id"]], "anonym_name\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.anonym_name"]], "at_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.at_msg"]], "ban_time\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.ban_time"]], "bot_id\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.bot_id"]], "bot_id\uff08melobot.models.metaevent \u5c5e\u6027\uff09": [[6, "melobot.models.MetaEvent.bot_id"]], "bot_id\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.bot_id"]], "busid\uff08melobot.models.noticeevent.file \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.File.busid"]], "client\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.client"]], "content\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.content"]], "cq_anti_escape()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.cq_anti_escape"]], "cq_escape()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.cq_escape"]], "cq_filter_text()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.cq_filter_text"]], "custom_msg_node()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.custom_msg_node"]], "custom_music_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.custom_music_msg"]], "data\uff08melobot.models.responseevent \u5c5e\u6027\uff09": [[6, "melobot.models.ResponseEvent.data"]], "essence_change_type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.essence_change_type"]], "face_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.face_msg"]], "file\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.file"]], "font\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.font"]], "from_group_id\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.from_group_id"]], "from_id\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.from_id"]], "get_cq() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.get_cq"]], "get_cq_params() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.get_cq_params"]], "group_area\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.group_area"]], "group_ban_type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.group_ban_type"]], "group_card\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.group_card"]], "group_id\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.group_id"]], "group_level\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.group_level"]], "group_req_type\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.group_req_type"]], "group_role\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.group_role"]], "group_title\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.group_title"]], "honor_change_type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.honor_change_type"]], "id\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.id"]], "id\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.id"]], "id\uff08melobot.models.noticeevent.client \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.Client.id"]], "id\uff08melobot.models.noticeevent.file \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.File.id"]], "id\uff08melobot.models.responseevent \u5c5e\u6027\uff09": [[6, "melobot.models.ResponseEvent.id"]], "image_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.image_msg"]], "is_anonym_member() \uff08melobot.models.messageevent.sender \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.Sender.is_anonym_member"]], "is_bot() \uff08melobot.models.messageevent.sender \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.Sender.is_bot"]], "is_client_status() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_client_status"]], "is_essence() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_essence"]], "is_failed() \uff08melobot.models.responseevent \u65b9\u6cd5\uff09": [[6, "melobot.models.ResponseEvent.is_failed"]], "is_friend() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_friend"]], "is_friend_add() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_friend_add"]], "is_friend_recall() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_friend_recall"]], "is_friend_req() \uff08melobot.models.requestevent \u65b9\u6cd5\uff09": [[6, "melobot.models.RequestEvent.is_friend_req"]], "is_group() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_group"]], "is_group() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group"]], "is_group_admin() \uff08melobot.models.messageevent.sender \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.Sender.is_group_admin"]], "is_group_admin() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_admin"]], "is_group_anonym() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_group_anonym"]], "is_group_ban() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_ban"]], "is_group_card() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_card"]], "is_group_decrease() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_decrease"]], "is_group_increase() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_increase"]], "is_group_normal() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_group_normal"]], "is_group_notice() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_group_notice"]], "is_group_owner() \uff08melobot.models.messageevent.sender \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.Sender.is_group_owner"]], "is_group_recall() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_recall"]], "is_group_req() \uff08melobot.models.requestevent \u65b9\u6cd5\uff09": [[6, "melobot.models.RequestEvent.is_group_req"]], "is_group_self() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_group_self"]], "is_group_temp() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_group_temp"]], "is_group_upload() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_upload"]], "is_heartbeat() \uff08melobot.models.metaevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MetaEvent.is_heartbeat"]], "is_honor() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_honor"]], "is_lifecycle() \uff08melobot.models.metaevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MetaEvent.is_lifecycle"]], "is_lucky_king() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_lucky_king"]], "is_notify() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_notify"]], "is_offline_file() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_offline_file"]], "is_ok() \uff08melobot.models.responseevent \u65b9\u6cd5\uff09": [[6, "melobot.models.ResponseEvent.is_ok"]], "is_poke() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_poke"]], "is_private() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_private"]], "is_processing() \uff08melobot.models.responseevent \u65b9\u6cd5\uff09": [[6, "melobot.models.ResponseEvent.is_processing"]], "is_temp() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_temp"]], "is_title() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_title"]], "join_group_type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.join_group_type"]], "json_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.json_msg"]], "kind\uff08melobot.models.noticeevent.client \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.Client.kind"]], "leave_group_type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.leave_group_type"]], "music_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.music_msg"]], "name\uff08melobot.models.noticeevent.client \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.Client.name"]], "name\uff08melobot.models.noticeevent.file \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.File.name"]], "new_card\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.new_card"]], "new_title\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.new_title"]], "nickname\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.nickname"]], "notice_group_id\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.notice_group_id"]], "notice_msg_id\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.notice_msg_id"]], "notice_operator_id\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.notice_operator_id"]], "notice_user_id\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.notice_user_id"]], "old_card\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.old_card"]], "online\uff08melobot.models.noticeevent.client \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.Client.online"]], "only_group_member() \uff08melobot.models.messageevent.sender \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.Sender.only_group_member"]], "poke_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.poke_msg"]], "raw_content\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.raw_content"]], "record_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.record_msg"]], "refer_msg_node()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.refer_msg_node"]], "reply_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.reply_msg"]], "req_comment\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.req_comment"]], "req_flag\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.req_flag"]], "sender\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.sender"]], "sex\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.sex"]], "share_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.share_msg"]], "size\uff08melobot.models.noticeevent.file \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.File.size"]], "status\uff08melobot.models.responseevent \u5c5e\u6027\uff09": [[6, "melobot.models.ResponseEvent.status"]], "temp_src\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.temp_src"]], "text_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.text_msg"]], "text\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.text"]], "time\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.time"]], "time\uff08melobot.models.metaevent \u5c5e\u6027\uff09": [[6, "melobot.models.MetaEvent.time"]], "time\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.time"]], "time\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.time"]], "time\uff08melobot.models.responseevent \u5c5e\u6027\uff09": [[6, "melobot.models.ResponseEvent.time"]], "to_cq_arr()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.to_cq_arr"]], "to_cq_str()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.to_cq_str"]], "type\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.type"]], "type\uff08melobot.models.metaevent \u5c5e\u6027\uff09": [[6, "melobot.models.MetaEvent.type"]], "type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.type"]], "type\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.type"]], "type\uff08melobot.models.responseevent \u5c5e\u6027\uff09": [[6, "melobot.models.ResponseEvent.type"]], "url\uff08melobot.models.noticeevent.file \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.File.url"]], "xml_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.xml_msg"]], "botplugin\uff08melobot.plugin \u4e2d\u7684\u7c7b\uff09": [[7, "melobot.plugin.BotPlugin"]], "__init__() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.__init__"]], "melobot.plugin": [[7, "module-melobot.plugin"]], "on_action_presend\uff08melobot.plugin.botplugin \u5c5e\u6027\uff09": [[7, "melobot.plugin.BotPlugin.on_action_presend"]], "on_at_qq() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_at_qq"]], "on_before_close\uff08melobot.plugin.botplugin \u5c5e\u6027\uff09": [[7, "melobot.plugin.BotPlugin.on_before_close"]], "on_before_stop\uff08melobot.plugin.botplugin \u5c5e\u6027\uff09": [[7, "melobot.plugin.BotPlugin.on_before_stop"]], "on_bot_life() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_bot_life"]], "on_connected\uff08melobot.plugin.botplugin \u5c5e\u6027\uff09": [[7, "melobot.plugin.BotPlugin.on_connected"]], "on_contain_match() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_contain_match"]], "on_end_match() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_end_match"]], "on_event() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_event"]], "on_event_built\uff08melobot.plugin.botplugin \u5c5e\u6027\uff09": [[7, "melobot.plugin.BotPlugin.on_event_built"]], "on_every_message() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_every_message"]], "on_friend_request() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_friend_request"]], "on_full_match() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_full_match"]], "on_group_request() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_group_request"]], "on_message() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_message"]], "on_meta_event() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_meta_event"]], "on_notice() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_notice"]], "on_plugins_loaded\uff08melobot.plugin.botplugin \u5c5e\u6027\uff09": [[7, "melobot.plugin.BotPlugin.on_plugins_loaded"]], "on_regex_match() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_regex_match"]], "on_request() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_request"]], "on_share() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_share"]], "on_share_affected() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_share_affected"]], "on_signal() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_signal"]], "on_start_match() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_start_match"]], "argformatter\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.ArgFormatter"]], "atchecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.AtChecker"]], "botlogger\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.BotLogger"]], "cmdparsergen\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.CmdParserGen"]], "cmdparser\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.CmdParser"]], "containmatcher\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.ContainMatcher"]], "endmatcher\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.EndMatcher"]], "formatinfo\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.FormatInfo"]], "friendreqchecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.FriendReqChecker"]], "fullmatcher\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.FullMatcher"]], "groupmsglvlchecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.GroupMsgLvlChecker"]], "groupreqchecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.GroupReqChecker"]], "msgcheckergen\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.MsgCheckerGen"]], "msglvlchecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.MsgLvlChecker"]], "noticetypechecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.NoticeTypeChecker"]], "privatemsglvlchecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.PrivateMsgLvlChecker"]], "regexmatcher\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.RegexMatcher"]], "startmatcher\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.StartMatcher"]], "__init__() \uff08melobot.utils.argformatter \u65b9\u6cd5\uff09": [[8, "melobot.utils.ArgFormatter.__init__"]], "__init__() \uff08melobot.utils.atchecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.AtChecker.__init__"]], "__init__() \uff08melobot.utils.botlogger \u65b9\u6cd5\uff09": [[8, "melobot.utils.BotLogger.__init__"]], "__init__() \uff08melobot.utils.cmdparser \u65b9\u6cd5\uff09": [[8, "melobot.utils.CmdParser.__init__"]], "__init__() \uff08melobot.utils.cmdparsergen \u65b9\u6cd5\uff09": [[8, "melobot.utils.CmdParserGen.__init__"]], "__init__() \uff08melobot.utils.containmatcher \u65b9\u6cd5\uff09": [[8, "melobot.utils.ContainMatcher.__init__"]], "__init__() \uff08melobot.utils.endmatcher \u65b9\u6cd5\uff09": [[8, "melobot.utils.EndMatcher.__init__"]], "__init__() \uff08melobot.utils.friendreqchecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.FriendReqChecker.__init__"]], "__init__() \uff08melobot.utils.fullmatcher \u65b9\u6cd5\uff09": [[8, "melobot.utils.FullMatcher.__init__"]], "__init__() \uff08melobot.utils.groupmsglvlchecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.GroupMsgLvlChecker.__init__"]], "__init__() \uff08melobot.utils.groupreqchecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.GroupReqChecker.__init__"]], "__init__() \uff08melobot.utils.msgcheckergen \u65b9\u6cd5\uff09": [[8, "melobot.utils.MsgCheckerGen.__init__"]], "__init__() \uff08melobot.utils.msglvlchecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.MsgLvlChecker.__init__"]], "__init__() \uff08melobot.utils.noticetypechecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.NoticeTypeChecker.__init__"]], "__init__() \uff08melobot.utils.privatemsglvlchecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.PrivateMsgLvlChecker.__init__"]], "__init__() \uff08melobot.utils.regexmatcher \u65b9\u6cd5\uff09": [[8, "melobot.utils.RegexMatcher.__init__"]], "__init__() \uff08melobot.utils.startmatcher \u65b9\u6cd5\uff09": [[8, "melobot.utils.StartMatcher.__init__"]], "cmd_name\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.cmd_name"]], "exc_tb\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.exc_tb"]], "exc_type\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.exc_type"]], "gen() \uff08melobot.utils.cmdparsergen \u65b9\u6cd5\uff09": [[8, "melobot.utils.CmdParserGen.gen"]], "gen_base() \uff08melobot.utils.msgcheckergen \u65b9\u6cd5\uff09": [[8, "melobot.utils.MsgCheckerGen.gen_base"]], "gen_group() \uff08melobot.utils.msgcheckergen \u65b9\u6cd5\uff09": [[8, "melobot.utils.MsgCheckerGen.gen_group"]], "gen_private() \uff08melobot.utils.msgcheckergen \u65b9\u6cd5\uff09": [[8, "melobot.utils.MsgCheckerGen.gen_private"]], "idx\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.idx"]], "setlevel() \uff08melobot.utils.botlogger \u65b9\u6cd5\uff09": [[8, "melobot.utils.BotLogger.setLevel"]], "src_desc\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.src_desc"]], "src_expect\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.src_expect"]], "src\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.src"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/index", "api/melobot.base", "api/melobot.bot", "api/melobot.context", "api/melobot.io", "api/melobot.meta", "api/melobot.models", "api/melobot.plugin", "api/melobot.utils", "index", "intro/first-bot", "intro/index", "intro/more-events", "melobot-next", "prompt", "references/event-action", "references/forward-msg", "references/index", "references/msg", "references/onebot"], "filenames": ["api/index.rst", "api/melobot.base.rst", "api/melobot.bot.rst", "api/melobot.context.rst", "api/melobot.io.rst", "api/melobot.meta.rst", "api/melobot.models.rst", "api/melobot.plugin.rst", "api/melobot.utils.rst", "index.md", "intro/first-bot.md", "intro/index.md", "intro/more-events.md", "melobot-next.md", "prompt.md", "references/event-action.md", "references/forward-msg.md", "references/index.md", "references/msg.md", "references/onebot.md"], "titles": ["melobot API \u53c2\u8003", "melobot.base", "melobot.bot", "melobot.context", "melobot.io", "melobot.meta", "melobot.models", "melobot.plugin", "melobot.utils", "melobot \u6587\u6863", "\u521b\u5efa\u7b2c\u4e00\u4e2a\u673a\u5668\u4eba", "\u5f00\u59cb\u4f7f\u7528", "\u5904\u7406\u66f4\u591a\u4e8b\u4ef6", "\u4e0b\u4e00\u4ee3 melobot", "melobot \u5f62\u8c61", "\u4e8b\u4ef6\u548c\u884c\u4e3a", "\u8f6c\u53d1\u6d88\u606f\u4e0e\u6d88\u606f\u7ed3\u70b9", "\u76f8\u5173\u53c2\u8003", "\u6d88\u606f\u5185\u5bb9\u7684\u6570\u636e\u7ed3\u6784", "OneBot \u534f\u8bae\u548c\u5b9e\u73b0"], "terms": {"metainfo": [0, 2, 5], "thisbot": [0, 2, 8], "forwardwsconn": [0, 4, 10, 19], "reversewsconn": [0, 4, 19], "httpconn": [0, 4, 19], "attrsessionrul": [0, 3], "msg_event": [0, 3], "msg_text": [0, 3], "msg_arg": [0, 3], "send": [0, 3, 10, 18], "send_wait": [0, 3], "send_repli": [0, 3], "finish": [0, 3], "reply_finish": [0, 3], "get_stor": [0, 3], "paus": [0, 3], "botplugin": [0, 2, 7, 10], "groupmsglvlcheck": [0, 8], "privatemsglvlcheck": [0, 8], "msgcheckergen": [0, 8], "atcheck": [0, 8], "cmdparser": [0, 8], "cmdparsergen": [0, 8], "argformatt": [0, 8], "lock": [0, 1], "cooldown": [0, 1], "timelimit": [0, 1], "this_dir": [0, 1], "user": [0, 1, 8], "priorlevel": [0, 1, 7], "sessionrul": [0, 1, 3, 7], "logicmod": [0, 1, 7, 8], "meta": [0, 1, 6], "bot": [0, 1, 3, 4, 6, 7, 8, 9, 10, 15], "io": 0, "model": [0, 14], "context": 0, "plugin": 0, "util": 0, "base": 0, "abc": 0, "except": 0, "tool": 0, "type": [0, 3, 6, 7, 16, 18], "class": [1, 2, 3, 4, 5, 6, 7, 8], "abstractconnector": [1, 2, 4], "logger": [1, 2, 8], "slack": [1, 2], "bool": [1, 2, 3, 4, 6, 7, 8], "cd_time": [1, 4], "botev": [1, 3, 6], "raw": 1, "onebot": [1, 3, 4, 6, 9, 10, 15, 16, 17, 18], "abstract": 1, "properti": [1, 6, 7], "time": [1, 3, 6], "int": [1, 3, 4, 6, 7, 8], "liter": [1, 2, 3, 6, 7, 8], "messag": [1, 6], "request": [1, 6], "notic": [1, 6], "respons": [1, 6], "is_msg_ev": 1, "is_req_ev": 1, "is_notice_ev": 1, "is_meta_ev": 1, "is_resp_ev": 1, "botact": [1, 3, 6], "resp_id": [1, 6], "id": [1, 2, 3, 6, 7, 16, 18], "api": [1, 3, 6], "param": [1, 3, 6], "trigger": [1, 3], "__init__": [1, 2, 3, 4, 7, 8], "none": [1, 2, 3, 4, 6, 7, 8, 10], "compar": 1, "e1": 1, "e2": 1, "botcheck": [1, 7, 8], "ok_cb": [1, 8], "callabl": [1, 7, 8], "coroutin": [1, 7, 8], "ani": [1, 2, 3, 5, 6, 7, 8], "fail_cb": [1, 8], "async": [1, 2, 3, 7, 10], "check": 1, "event": [1, 3, 6], "wrappedcheck": 1, "botmatch": [1, 7, 8], "match": 1, "text": [1, 3, 6, 7, 14, 16, 18], "str": [1, 2, 3, 4, 5, 6, 7, 8], "wrappedmatch": 1, "botexcept": 1, "sessionhuptimeout": [1, 3], "rwcontrol": 1, "rwc": 1, "with": [1, 14], "safe_read": 1, "safe_writ": 1, "read_limit": 1, "get_id": 1, "relative_path": 1, "py": 1, "env": [1, 5], "toml": 1, "as": 1, "from": [1, 10], "import": [1, 10], "foo": 1, "dir": 1, "lambda_dir": 1, "lambda": [1, 7], "get_dir": 1, "outer_dir": 1, "ok": 1, "error": [1, 2, 8], "to_async": 1, "func": 1, "partial": 1, "to_coro": 1, "to_task": 1, "obj": 1, "task": 1, "callback": 1, "t1": 1, "busy_callback": 1, "cd_callback": 1, "float": [1, 4], "t2": 1, "interv": 1, "cd": 1, "semaphor": 1, "valu": 1, "timeout": [1, 6], "default": [1, 8], "to": 1, "call_lat": 1, "delay": 1, "asyncio": [1, 9, 11], "timerhandl": 1, "call_at": 1, "timestamp": 1, "async_lat": 1, "futur": 1, "cancellederror": 1, "async_at": 1, "async_interv": 1, "javascript": 1, "setinterv": 1, "cqmsgdict": [1, 3, 6], "data": [1, 3, 6, 16, 18], "dict": [1, 2, 3, 5, 6], "customnodedata": 1, "name": [1, 2, 3, 6, 8], "uin": 1, "content": [1, 3, 6, 16], "list": [1, 2, 3, 5, 6, 7, 8], "seq": [1, 6], "refernodedata": 1, "msgnodedict": [1, 3, 6], "node": [1, 16], "and": [1, 14], "or": [1, 7, 8, 14], "not": 1, "xor": 1, "owner": [1, 6, 8], "10000": 1, "su": 1, "1000": 1, "white": [1, 14], "100": 1, "10": [1, 3, 9], "black": 1, "min": 1, "max": 1, "mean": [1, 7], "500": 1, "botlif": [1, 7], "load": [1, 7], "connect": [1, 7], "before_clos": [1, 7], "before_stop": [1, 7], "event_built": [1, 7], "action_presend": [1, 7], "void": [1, 8], "voidtyp": 1, "typealia": 1, "t3": 1, "paramspec": 1, "init": [2, 10], "botloc": 2, "object": [2, 6], "info": [2, 8], "connector": 2, "enable_log": 2, "true": [2, 3, 4, 7, 8], "logger_nam": 2, "log_level": 2, "debug": [2, 8], "warn": [2, 8], "critic": [2, 8], "log_to_consol": 2, "log_to_dir": 2, "custom_logg": 2, "load_plugin": [2, 10], "plugin_target": 2, "python": [2, 5, 9, 11], "packag": 2, "plugins_dir": 2, "run": [2, 10], "close": 2, "is_activ": 2, "activ": 2, "get_plugin": 2, "pluginproxi": 2, "emit_sign": 2, "namespac": [2, 7], "signal": [2, 7], "arg": 2, "wait": [2, 3], "fals": [2, 3, 4, 6, 7, 8], "kwarg": 2, "get_shar": 2, "shareobject": 2, "classmethod": 2, "start": 2, "unicast": 2, "target": [2, 7, 8], "multicast": 2, "all": [2, 3, 6, 7, 8, 9], "self_exclud": 2, "attr": 3, "rule": 3, "event1": 3, "event2": 3, "qq": [3, 6, 7, 8, 9, 10, 13, 16, 19], "sender": [3, 6], "messageev": [3, 6, 15], "any_ev": 3, "requestev": [3, 6, 15], "metaev": [3, 6, 15], "noticeev": [3, 6, 15], "req_evnt": 3, "notice_ev": 3, "meta_ev": 3, "overtim": 3, "dispos": 3, "session_hold": [3, 7], "cq_str": 3, "auto": 3, "responseev": [3, 6, 15], "cq": [3, 6, 16], "send_forward": [3, 16], "msgnode": 3, "set_group_anonymous_ban": 3, "set_group_anonym": 3, "get_cooki": 3, "cooki": 3, "get_csrf_token": 3, "csrf": 3, "token": 3, "get_credenti": 3, "set_restart": 3, "clean_cach": 3, "send_custom_msg": [3, 7, 18], "ispriv": [3, 7], "userid": [3, 7], "groupid": 3, "send_custom_forward": [3, 16], "msg_recal": 3, "msgid": 3, "get_msg": 3, "get_forward_msg": [3, 16], "forwardid": 3, "get_imag": 3, "filenam": 3, "send_lik": 3, "group_kick": 3, "laterreject": 3, "group_ban": [3, 7, 8], "durat": 3, "group_whole_ban": 3, "enabl": 3, "set_group_admin": 3, "set_group_card": 3, "card": 3, "set_group_nam": 3, "group_leav": 3, "isdismiss": 3, "set_group_titl": 3, "titl": [3, 6, 7, 8, 18], "set_friend_add": 3, "addflag": 3, "approv": [3, 6], "remark": 3, "flag": [3, 6, 8], "req_flag": [3, 6], "set_group_add": 3, "addtyp": 3, "add": [3, 6], "invit": [3, 6], "rejectreason": 3, "group_req_typ": [3, 6], "get_login_info": 3, "get_stranger_info": 3, "nocach": 3, "get_friend_list": 3, "get_group_info": 3, "get_group_list": 3, "get_group_member_info": 3, "get_group_member_list": 3, "get_group_honor": 3, "talkat": 3, "perform": [3, 6], "legend": 3, "strong_newbi": 3, "emot": [3, 6], "check_send_imag": 3, "check_send_record": 3, "get_onebot_vers": 3, "get_onebot_status": 3, "take_custom_act": 3, "action": 3, "make_act": 3, "need_resp": 3, "websocket": [4, 19], "ws": [4, 10, 19], "connect_host": 4, "connect_port": 4, "max_retri": 4, "retry_delay": 4, "host": [4, 10], "port": [4, 10], "url": [4, 6, 7, 18], "xxx": 4, "conn": 4, "client": [4, 6], "websocketclientprotocol": 4, "listen_host": 4, "listen_port": 4, "allow_reconnect": 4, "server": 4, "websocketserv": 4, "http": [4, 18, 19], "post": [4, 19], "onebot_host": 4, "onebot_port": 4, "onebot_url": 4, "base_url": 4, "serve_sit": 4, "aiohttp": 4, "web": 4, "tcpsite": 4, "client_sess": 4, "clientsess": 4, "ver": 5, "proj_nam": 5, "proj_desc": 5, "proj_src": 5, "author": 5, "author_email": 5, "argv": 5, "platform": [5, 9], "py_ver": 5, "py_info": 5, "sys": 5, "_version_info": 5, "os_sep": 5, "win": 5, "path_sep": 5, "line_sep": 5, "os": 5, "_environ": 5, "get_al": 5, "bot_id": 6, "group_id": 6, "raw_cont": 6, "font": 6, "temp_src": 6, "get_cq": 6, "cq_type": 6, "get_cq_param": 6, "at": 6, "is_priv": 6, "is_friend": 6, "is_group": 6, "is_group_norm": 6, "is_group_anonym": 6, "is_group_self": 6, "is_group_temp": 6, "is_temp": 6, "is_group_notic": 6, "nicknam": [6, 16], "sex": 6, "age": 6, "anonym_id": 6, "anonym_nam": 6, "anonym_flag": 6, "group_card": [6, 7, 8], "group_area": 6, "group_level": 6, "group_rol": 6, "admin": 6, "member": 6, "anonym": 6, "group_titl": 6, "is_group_own": 6, "is_group_admin": 6, "only_group_memb": 6, "is_anonym_memb": 6, "is_bot": 6, "from_id": 6, "from_group_id": 6, "req_com": 6, "is_friend_req": 6, "is_group_req": 6, "notice_user_id": 6, "notice_group_id": 6, "notice_operator_id": 6, "notice_msg_id": 6, "join_group_typ": 6, "leave_group_typ": 6, "leav": [6, 14], "kick": 6, "kick_m": 6, "admin_change_typ": 6, "set": [6, 8], "unset": 6, "file": [6, 18], "group_ban_typ": 6, "ban": 6, "lift_ban": 6, "ban_tim": 6, "honor_change_typ": 6, "talkact": 6, "new_titl": 6, "old_card": 6, "new_card": 6, "essence_change_typ": 6, "delet": 6, "is_group_upload": 6, "is_group_decreas": 6, "is_group_increas": 6, "is_group_ban": 6, "is_friend_add": 6, "is_group_recal": 6, "is_friend_recal": 6, "is_group_card": 6, "is_offline_fil": 6, "is_client_status": 6, "is_ess": 6, "is_notifi": 6, "is_honor": 6, "is_pok": 6, "is_lucky_k": 6, "is_titl": 6, "size": [6, 14], "busid": 6, "onlin": 6, "kind": 6, "status": 6, "is_ok": 6, "is_process": 6, "is_fail": 6, "is_lifecycl": 6, "is_heartbeat": 6, "text_msg": 6, "face_msg": 6, "record_msg": 6, "magic": 6, "cach": 6, "proxi": 6, "at_msg": 6, "share_msg": 6, "imag": [6, 18], "music_msg": 6, "163": 6, "xm": 6, "custom_music_msg": 6, "audio": 6, "image_msg": 6, "flash": 6, "base64": 6, "reply_msg": 6, "poke_msg": 6, "xml_msg": 6, "xml": 6, "json_msg": 6, "json": 6, "custom_msg_nod": [6, 16], "sendnam": 6, "sendid": 6, "usestd": 6, "go": [6, 19], "refer_msg_nod": [6, 16], "cq_filter_text": 6, "cq_escap": 6, "amp": [6, 18], "cq_anti_escap": 6, "to_cq_arr": 6, "to_cq_str": 6, "version": [7, 14], "desc": 7, "doc": 7, "keyword": 7, "on_ev": 7, "checker": 7, "prioriti": 7, "block": 7, "temp": 7, "session_rul": 7, "direct_rous": 7, "conflict_wait": 7, "conflict_cb": 7, "on_messag": 7, "matcher": 7, "parser": 7, "botpars": 7, "on_every_messag": 7, "on_at_qq": 7, "qid": [7, 8], "on_start_match": [7, 10], "logic_mod": 7, "on_contain_match": 7, "on_full_match": 7, "on_end_match": 7, "on_regex_match": 7, "re": 7, "findal": 7, "on_request": 7, "on_friend_request": 7, "on_group_request": 7, "on_notic": 7, "group_upload": [7, 8], "group_admin": [7, 8], "group_decreas": [7, 8], "group_increas": [7, 8], "friend_add": [7, 8], "group_recal": [7, 8], "friend_recal": [7, 8], "offline_fil": [7, 8], "client_status": [7, 8], "essenc": [7, 8], "notifi": [7, 8], "honor": [7, 8], "poke": [7, 8], "lucky_k": [7, 8], "on_meta_ev": 7, "on_sign": 7, "baseutil": 7, "txt2img": 7, "def": [7, 10], "get_img_of_txt": 7, "format": 7, "byte": 7, "on_shar": 7, "reflector": 7, "helputil": 7, "all_help": 7, "get_all_help": 7, "return": 7, "all_helps_info_str": 7, "on_share_affect": 7, "add_a_help": 7, "on_bot_lif": 7, "hook": [7, 9], "say_hi": 7, "await": [7, 10], "hello": [7, 10], "xxxxx": 7, "on_plugins_load": 7, "on_connect": 7, "on_before_clos": 7, "on_before_stop": 7, "on_event_built": 7, "on_action_presend": 7, "botlogg": 8, "level": 8, "to_consol": 8, "to_dir": 8, "no_tag": 8, "consol": 8, "setlevel": 8, "the": 8, "log": 8, "of": 8, "this": 8, "must": 8, "be": 8, "an": [8, 14], "startmatch": 8, "mode": 8, "containmatch": 8, "endmatch": 8, "fullmatch": 8, "regexmatch": 8, "regex_pattern": 8, "regex_flag": 8, "pattern": 8, "msglvlchecker": 8, "super_us": 8, "white_us": 8, "black_us": 8, "white_group": 8, "gen_bas": 8, "gen_group": 8, "gen_priv": 8, "friendreqcheck": 8, "groupreqcheck": 8, "noticetypecheck": 8, "sub_typ": 8, "cmd_start": 8, "cmd_sep": 8, "formatt": 8, "gen": 8, "convert": 8, "verifi": 8, "src_desc": 8, "src_expect": 8, "default_replace_flag": 8, "convert_fail": 8, "formatinfo": 8, "verify_fail": 8, "arg_lack": 8, "src": 8, "idx": 8, "exc_typ": 8, "exc_tb": 8, "cmd_name": 8, "qbot": 9, "meloinf": 9, "pr": 9, "pip": 9, "instal": 9, "pdm": 9, "11": 9, "flask": 9, "nonebot": 9, "nonebot2": 9, "melobot": [10, 11, 15, 16, 17, 18, 19], "the_plugin": 10, "__name__": 10, "echo": 10, "if": 10, "__main__": 10, "127": 10, "8080": 10, "next": 11, "v2": 13, "535705163": 13, "aigc": 14, "stabl": 14, "diffus": 14, "masterpiec": 14, "best": 14, "qualiti": 14, "extrem": 14, "delic": 14, "beauti": 14, "deta": 14, "ile": 14, "8k": 14, "wallpap": 14, "sunni": 14, "day": 14, "head": 14, "portrait": 14, "stand": 14, "on": 14, "grassland": 14, "detail": 14, "rass": 14, "onli": 14, "one": 14, "girl": 14, "long": 14, "hair": 14, "over": 14, "shoulder": 14, "aqua": 14, "gradient": 14, "cross": 14, "ba": 14, "ngs": 14, "between": 14, "eye": 14, "flower": 14, "green": 14, "face": [14, 16, 18], "mouth": 14, "nose": 14, "cute": 14, "smile": 14, "light": 14, "blush": 14, "sera": 14, "fuku": 14, "bow": 14, "skirt": 14, "warm": 14, "nsfw": 14, "lowr": 14, "bad": 14, "anatomi": 14, "hand": 14, "leg": 14, "three": 14, "four": 14, "feet": 14, "rror": 14, "miss": 14, "finger": 14, "extra": 14, "digit": 14, "fewer": 14, "crop": 14, "worst": 14, "low": 14, "normal": 14, "jpeg": 14, "artifact": 14, "signatur": 14, "watermark": 14, "usernam": 14, "blurri": 14, "two": 14, "step": 14, "42": 14, "sampler": 14, "dpm": 14, "3m": 14, "sde": 14, "karra": 14, "cfg": 14, "scale": 14, "seed": 14, "1586538230": 14, "512x512": 14, "hash": 14, "d1facd9a2b": 14, "anyth": 14, "v3": 14, "variat": 14, "1795324066": 14, "strength": 14, "05": 14, "clip": 14, "skip": 14, "eta": 14, "68": 14, "v1": 14, "123456": 16, "user_id": 16, "10001000": 16, "123": [16, 18], "91": [16, 18], "44": [16, 18], "93": [16, 18], "string": 18, "array": 18, "ckyu": 18, "178": 18, "jpg": 18, "shake": 18, "share": 18, "baidu": 18, "com": 18, "null": 18, "v11": 19, "cqhttp": 19, "openshamrock": 19, "lagrang": 19, "core": 19, "get": 19}, "objects": {"melobot.base.abc": [[1, 0, 1, "", "AbstractConnector"], [1, 0, 1, "", "BotAction"], [1, 0, 1, "", "BotChecker"], [1, 0, 1, "", "BotEvent"], [1, 0, 1, "", "BotMatcher"], [1, 0, 1, "", "SessionRule"], [1, 0, 1, "", "WrappedChecker"], [1, 0, 1, "", "WrappedMatcher"]], "melobot.base.abc.AbstractConnector": [[1, 1, 1, "", "cd_time"], [1, 1, 1, "", "logger"], [1, 1, 1, "", "slack"]], "melobot.base.abc.BotAction": [[1, 1, 1, "", "params"], [1, 1, 1, "", "resp_id"], [1, 1, 1, "", "trigger"], [1, 1, 1, "", "type"]], "melobot.base.abc.BotChecker": [[1, 2, 1, "", "__init__"], [1, 2, 1, "", "check"]], "melobot.base.abc.BotEvent": [[1, 2, 1, "", "is_meta_event"], [1, 2, 1, "", "is_msg_event"], [1, 2, 1, "", "is_notice_event"], [1, 2, 1, "", "is_req_event"], [1, 2, 1, "", "is_resp_event"], [1, 1, 1, "", "raw"], [1, 3, 1, "", "time"], [1, 3, 1, "", "type"]], "melobot.base.abc.BotMatcher": [[1, 2, 1, "", "__init__"], [1, 2, 1, "", "match"]], "melobot.base.abc.SessionRule": [[1, 2, 1, "", "__init__"], [1, 2, 1, "", "compare"]], "melobot.base.exceptions": [[1, 0, 1, "", "BotException"], [1, 0, 1, "", "SessionHupTimeout"]], "melobot.base.tools": [[1, 0, 1, "", "RWController"], [1, 4, 1, "", "async_at"], [1, 4, 1, "", "async_interval"], [1, 4, 1, "", "async_later"], [1, 4, 1, "", "call_at"], [1, 4, 1, "", "call_later"], [1, 4, 1, "", "cooldown"], [1, 4, 1, "", "get_id"], [1, 4, 1, "", "lock"], [1, 4, 1, "", "semaphore"], [1, 4, 1, "", "this_dir"], [1, 4, 1, "", "timelimit"], [1, 4, 1, "", "to_async"], [1, 4, 1, "", "to_coro"], [1, 4, 1, "", "to_task"]], "melobot.base.tools.RWController": [[1, 2, 1, "", "__init__"]], "melobot.base.typing": [[1, 0, 1, "", "BotLife"], [1, 0, 1, "", "CQMsgDict"], [1, 0, 1, "", "CustomNodeData"], [1, 0, 1, "", "LogicMode"], [1, 0, 1, "", "MsgNodeDict"], [1, 5, 1, "", "P"], [1, 0, 1, "", "PriorLevel"], [1, 0, 1, "", "ReferNodeData"], [1, 5, 1, "", "T"], [1, 5, 1, "", "T1"], [1, 5, 1, "", "T2"], [1, 5, 1, "", "T3"], [1, 0, 1, "", "User"], [1, 0, 1, "", "Void"], [1, 5, 1, "", "VoidType"]], "melobot.base.typing.BotLife": [[1, 1, 1, "", "ACTION_PRESEND"], [1, 1, 1, "", "BEFORE_CLOSE"], [1, 1, 1, "", "BEFORE_STOP"], [1, 1, 1, "", "CONNECTED"], [1, 1, 1, "", "EVENT_BUILT"], [1, 1, 1, "", "LOADED"]], "melobot.base.typing.CQMsgDict": [[1, 1, 1, "", "data"], [1, 1, 1, "", "type"]], "melobot.base.typing.CustomNodeData": [[1, 1, 1, "", "content"], [1, 1, 1, "", "name"], [1, 1, 1, "", "seq"], [1, 1, 1, "", "uin"]], "melobot.base.typing.LogicMode": [[1, 1, 1, "", "AND"], [1, 1, 1, "", "NOT"], [1, 1, 1, "", "OR"], [1, 1, 1, "", "XOR"]], "melobot.base.typing.MsgNodeDict": [[1, 1, 1, "", "data"], [1, 1, 1, "", "type"]], "melobot.base.typing.PriorLevel": [[1, 1, 1, "", "MAX"], [1, 1, 1, "", "MEAN"], [1, 1, 1, "", "MIN"]], "melobot.base.typing.ReferNodeData": [[1, 1, 1, "", "id"]], "melobot.base.typing.User": [[1, 1, 1, "", "BLACK"], [1, 1, 1, "", "OWNER"], [1, 1, 1, "", "SU"], [1, 1, 1, "", "USER"], [1, 1, 1, "", "WHITE"]], "melobot": [[2, 6, 0, "-", "bot"], [4, 6, 0, "-", "io"], [5, 6, 0, "-", "meta"], [7, 6, 0, "-", "plugin"]], "melobot.bot": [[2, 0, 1, "", "MeloBot"], [2, 5, 1, "", "thisbot"]], "melobot.bot.MeloBot": [[2, 2, 1, "", "__init__"], [2, 2, 1, "", "activate"], [2, 2, 1, "", "close"], [2, 1, 1, "", "connector"], [2, 2, 1, "", "emit_signal"], [2, 2, 1, "", "get_plugins"], [2, 2, 1, "", "get_share"], [2, 1, 1, "", "info"], [2, 2, 1, "", "init"], [2, 2, 1, "", "is_activate"], [2, 2, 1, "", "load_plugin"], [2, 2, 1, "", "load_plugins"], [2, 1, 1, "", "logger"], [2, 2, 1, "", "multicast"], [2, 1, 1, "", "name"], [2, 2, 1, "", "run"], [2, 2, 1, "", "slack"], [2, 2, 1, "", "start"], [2, 2, 1, "", "unicast"]], "melobot.context": [[3, 0, 1, "", "AttrSessionRule"], [3, 4, 1, "", "any_event"], [3, 4, 1, "", "check_send_image"], [3, 4, 1, "", "check_send_record"], [3, 4, 1, "", "dispose"], [3, 4, 1, "", "finish"], [3, 4, 1, "", "get_forward_msg"], [3, 4, 1, "", "get_friend_list"], [3, 4, 1, "", "get_group_honor"], [3, 4, 1, "", "get_group_info"], [3, 4, 1, "", "get_group_list"], [3, 4, 1, "", "get_group_member_info"], [3, 4, 1, "", "get_group_member_list"], [3, 4, 1, "", "get_image"], [3, 4, 1, "", "get_login_info"], [3, 4, 1, "", "get_msg"], [3, 4, 1, "", "get_onebot_status"], [3, 4, 1, "", "get_onebot_version"], [3, 4, 1, "", "get_store"], [3, 4, 1, "", "get_stranger_info"], [3, 4, 1, "", "group_ban"], [3, 4, 1, "", "group_kick"], [3, 4, 1, "", "group_leave"], [3, 4, 1, "", "group_whole_ban"], [3, 4, 1, "", "make_action"], [3, 4, 1, "", "meta_event"], [3, 4, 1, "", "msg_args"], [3, 4, 1, "", "msg_event"], [3, 4, 1, "", "msg_recall"], [3, 4, 1, "", "msg_text"], [3, 4, 1, "", "notice_event"], [3, 4, 1, "", "pause"], [3, 4, 1, "", "reply_finish"], [3, 4, 1, "", "req_evnt"], [3, 4, 1, "", "send"], [3, 4, 1, "", "send_custom_forward"], [3, 4, 1, "", "send_custom_msg"], [3, 4, 1, "", "send_forward"], [3, 4, 1, "", "send_like"], [3, 4, 1, "", "send_reply"], [3, 4, 1, "", "send_wait"], [3, 4, 1, "", "set_friend_add"], [3, 4, 1, "", "set_group_add"], [3, 4, 1, "", "set_group_admin"], [3, 4, 1, "", "set_group_card"], [3, 4, 1, "", "set_group_name"], [3, 4, 1, "", "set_group_title"], [3, 4, 1, "", "take_custom_action"]], "melobot.context.AttrSessionRule": [[3, 2, 1, "", "__init__"]], "melobot.io": [[4, 0, 1, "", "ForwardWsConn"], [4, 0, 1, "", "HttpConn"], [4, 0, 1, "", "ReverseWsConn"]], "melobot.io.ForwardWsConn": [[4, 2, 1, "", "__init__"], [4, 1, 1, "", "conn"], [4, 1, 1, "", "max_retry"], [4, 1, 1, "", "retry_delay"], [4, 1, 1, "", "url"]], "melobot.io.HttpConn": [[4, 2, 1, "", "__init__"], [4, 1, 1, "", "client_session"], [4, 1, 1, "", "host"], [4, 1, 1, "", "onebot_url"], [4, 1, 1, "", "port"], [4, 1, 1, "", "serve_site"]], "melobot.io.ReverseWsConn": [[4, 2, 1, "", "__init__"], [4, 1, 1, "", "host"], [4, 1, 1, "", "port"], [4, 1, 1, "", "server"]], "melobot.meta": [[5, 0, 1, "", "MetaInfo"]], "melobot.meta.MetaInfo": [[5, 1, 1, "", "ARGV"], [5, 1, 1, "", "AUTHOR"], [5, 1, 1, "", "AUTHOR_EMAIL"], [5, 1, 1, "", "ENV"], [5, 1, 1, "", "LINE_SEP"], [5, 1, 1, "", "OS_SEP"], [5, 1, 1, "", "PATH_SEP"], [5, 1, 1, "", "PLATFORM"], [5, 1, 1, "", "PROJ_DESC"], [5, 1, 1, "", "PROJ_NAME"], [5, 1, 1, "", "PROJ_SRC"], [5, 1, 1, "", "PY_INFO"], [5, 1, 1, "", "PY_VER"], [5, 1, 1, "", "VER"], [5, 2, 1, "", "get_all"]], "melobot.models": [[6, 0, 1, "", "MessageEvent"], [6, 0, 1, "", "MetaEvent"], [6, 0, 1, "", "NoticeEvent"], [6, 0, 1, "", "RequestEvent"], [6, 0, 1, "", "ResponseEvent"], [6, 4, 1, "", "at_msg"], [6, 4, 1, "", "cq_anti_escape"], [6, 4, 1, "", "cq_escape"], [6, 4, 1, "", "cq_filter_text"], [6, 4, 1, "", "custom_msg_node"], [6, 4, 1, "", "custom_music_msg"], [6, 4, 1, "", "face_msg"], [6, 4, 1, "", "image_msg"], [6, 4, 1, "", "json_msg"], [6, 4, 1, "", "music_msg"], [6, 4, 1, "", "poke_msg"], [6, 4, 1, "", "record_msg"], [6, 4, 1, "", "refer_msg_node"], [6, 4, 1, "", "reply_msg"], [6, 4, 1, "", "share_msg"], [6, 4, 1, "", "text_msg"], [6, 4, 1, "", "to_cq_arr"], [6, 4, 1, "", "to_cq_str"], [6, 4, 1, "", "xml_msg"]], "melobot.models.MessageEvent": [[6, 0, 1, "", "Sender"], [6, 1, 1, "", "bot_id"], [6, 1, 1, "", "content"], [6, 1, 1, "", "font"], [6, 2, 1, "", "get_cq"], [6, 2, 1, "", "get_cq_params"], [6, 1, 1, "", "group_id"], [6, 1, 1, "", "id"], [6, 2, 1, "", "is_friend"], [6, 2, 1, "", "is_group"], [6, 2, 1, "", "is_group_anonym"], [6, 2, 1, "", "is_group_normal"], [6, 2, 1, "", "is_group_notice"], [6, 2, 1, "", "is_group_self"], [6, 2, 1, "", "is_group_temp"], [6, 2, 1, "", "is_private"], [6, 2, 1, "", "is_temp"], [6, 1, 1, "", "raw_content"], [6, 1, 1, "", "sender"], [6, 1, 1, "", "temp_src"], [6, 1, 1, "", "text"], [6, 3, 1, "", "time"], [6, 3, 1, "", "type"]], "melobot.models.MessageEvent.Sender": [[6, 1, 1, "", "age"], [6, 1, 1, "", "anonym_flag"], [6, 1, 1, "", "anonym_id"], [6, 1, 1, "", "anonym_name"], [6, 1, 1, "", "group_area"], [6, 1, 1, "", "group_card"], [6, 1, 1, "", "group_level"], [6, 1, 1, "", "group_role"], [6, 1, 1, "", "group_title"], [6, 1, 1, "", "id"], [6, 2, 1, "", "is_anonym_member"], [6, 2, 1, "", "is_bot"], [6, 2, 1, "", "is_group_admin"], [6, 2, 1, "", "is_group_owner"], [6, 1, 1, "", "nickname"], [6, 2, 1, "", "only_group_member"], [6, 1, 1, "", "sex"]], "melobot.models.MetaEvent": [[6, 1, 1, "", "bot_id"], [6, 2, 1, "", "is_heartbeat"], [6, 2, 1, "", "is_lifecycle"], [6, 3, 1, "", "time"], [6, 3, 1, "", "type"]], "melobot.models.NoticeEvent": [[6, 0, 1, "", "Client"], [6, 0, 1, "", "File"], [6, 1, 1, "", "admin_change_type"], [6, 1, 1, "", "ban_time"], [6, 1, 1, "", "client"], [6, 1, 1, "", "essence_change_type"], [6, 1, 1, "", "file"], [6, 1, 1, "", "group_ban_type"], [6, 1, 1, "", "honor_change_type"], [6, 2, 1, "", "is_client_status"], [6, 2, 1, "", "is_essence"], [6, 2, 1, "", "is_friend_add"], [6, 2, 1, "", "is_friend_recall"], [6, 2, 1, "", "is_group"], [6, 2, 1, "", "is_group_admin"], [6, 2, 1, "", "is_group_ban"], [6, 2, 1, "", "is_group_card"], [6, 2, 1, "", "is_group_decrease"], [6, 2, 1, "", "is_group_increase"], [6, 2, 1, "", "is_group_recall"], [6, 2, 1, "", "is_group_upload"], [6, 2, 1, "", "is_honor"], [6, 2, 1, "", "is_lucky_king"], [6, 2, 1, "", "is_notify"], [6, 2, 1, "", "is_offline_file"], [6, 2, 1, "", "is_poke"], [6, 2, 1, "", "is_title"], [6, 1, 1, "", "join_group_type"], [6, 1, 1, "", "leave_group_type"], [6, 1, 1, "", "new_card"], [6, 1, 1, "", "new_title"], [6, 1, 1, "", "notice_group_id"], [6, 1, 1, "", "notice_msg_id"], [6, 1, 1, "", "notice_operator_id"], [6, 1, 1, "", "notice_user_id"], [6, 1, 1, "", "old_card"], [6, 3, 1, "", "time"], [6, 3, 1, "", "type"]], "melobot.models.NoticeEvent.Client": [[6, 1, 1, "", "id"], [6, 1, 1, "", "kind"], [6, 1, 1, "", "name"], [6, 1, 1, "", "online"]], "melobot.models.NoticeEvent.File": [[6, 1, 1, "", "busid"], [6, 1, 1, "", "id"], [6, 1, 1, "", "name"], [6, 1, 1, "", "size"], [6, 1, 1, "", "url"]], "melobot.models.RequestEvent": [[6, 1, 1, "", "bot_id"], [6, 1, 1, "", "from_group_id"], [6, 1, 1, "", "from_id"], [6, 1, 1, "", "group_req_type"], [6, 2, 1, "", "is_friend_req"], [6, 2, 1, "", "is_group_req"], [6, 1, 1, "", "req_comment"], [6, 1, 1, "", "req_flag"], [6, 3, 1, "", "time"], [6, 3, 1, "", "type"]], "melobot.models.ResponseEvent": [[6, 1, 1, "", "data"], [6, 1, 1, "", "id"], [6, 2, 1, "", "is_failed"], [6, 2, 1, "", "is_ok"], [6, 2, 1, "", "is_processing"], [6, 1, 1, "", "status"], [6, 3, 1, "", "time"], [6, 3, 1, "", "type"]], "melobot.plugin": [[7, 0, 1, "", "BotPlugin"]], "melobot.plugin.BotPlugin": [[7, 2, 1, "", "__init__"], [7, 3, 1, "", "on_action_presend"], [7, 2, 1, "", "on_at_qq"], [7, 3, 1, "", "on_before_close"], [7, 3, 1, "", "on_before_stop"], [7, 2, 1, "", "on_bot_life"], [7, 3, 1, "", "on_connected"], [7, 2, 1, "", "on_contain_match"], [7, 2, 1, "", "on_end_match"], [7, 2, 1, "", "on_event"], [7, 3, 1, "", "on_event_built"], [7, 2, 1, "", "on_every_message"], [7, 2, 1, "", "on_friend_request"], [7, 2, 1, "", "on_full_match"], [7, 2, 1, "", "on_group_request"], [7, 2, 1, "", "on_message"], [7, 2, 1, "", "on_meta_event"], [7, 2, 1, "", "on_notice"], [7, 3, 1, "", "on_plugins_loaded"], [7, 2, 1, "", "on_regex_match"], [7, 2, 1, "", "on_request"], [7, 2, 1, "", "on_share"], [7, 2, 1, "", "on_share_affected"], [7, 2, 1, "", "on_signal"], [7, 2, 1, "", "on_start_match"]], "melobot.utils": [[8, 0, 1, "", "ArgFormatter"], [8, 0, 1, "", "AtChecker"], [8, 0, 1, "", "BotLogger"], [8, 0, 1, "", "CmdParser"], [8, 0, 1, "", "CmdParserGen"], [8, 0, 1, "", "ContainMatcher"], [8, 0, 1, "", "EndMatcher"], [8, 0, 1, "", "FormatInfo"], [8, 0, 1, "", "FriendReqChecker"], [8, 0, 1, "", "FullMatcher"], [8, 0, 1, "", "GroupMsgLvlChecker"], [8, 0, 1, "", "GroupReqChecker"], [8, 0, 1, "", "MsgCheckerGen"], [8, 0, 1, "", "MsgLvlChecker"], [8, 0, 1, "", "NoticeTypeChecker"], [8, 0, 1, "", "PrivateMsgLvlChecker"], [8, 0, 1, "", "RegexMatcher"], [8, 0, 1, "", "StartMatcher"]], "melobot.utils.ArgFormatter": [[8, 2, 1, "", "__init__"]], "melobot.utils.AtChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.BotLogger": [[8, 2, 1, "", "__init__"], [8, 2, 1, "", "setLevel"]], "melobot.utils.CmdParser": [[8, 2, 1, "", "__init__"]], "melobot.utils.CmdParserGen": [[8, 2, 1, "", "__init__"], [8, 2, 1, "", "gen"]], "melobot.utils.ContainMatcher": [[8, 2, 1, "", "__init__"]], "melobot.utils.EndMatcher": [[8, 2, 1, "", "__init__"]], "melobot.utils.FormatInfo": [[8, 1, 1, "", "cmd_name"], [8, 1, 1, "", "exc_tb"], [8, 1, 1, "", "exc_type"], [8, 1, 1, "", "idx"], [8, 1, 1, "", "src"], [8, 1, 1, "", "src_desc"], [8, 1, 1, "", "src_expect"]], "melobot.utils.FriendReqChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.FullMatcher": [[8, 2, 1, "", "__init__"]], "melobot.utils.GroupMsgLvlChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.GroupReqChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.MsgCheckerGen": [[8, 2, 1, "", "__init__"], [8, 2, 1, "", "gen_base"], [8, 2, 1, "", "gen_group"], [8, 2, 1, "", "gen_private"]], "melobot.utils.MsgLvlChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.NoticeTypeChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.PrivateMsgLvlChecker": [[8, 2, 1, "", "__init__"]], "melobot.utils.RegexMatcher": [[8, 2, 1, "", "__init__"]], "melobot.utils.StartMatcher": [[8, 2, 1, "", "__init__"]]}, "objtypes": {"0": "py:class", "1": "py:attribute", "2": "py:method", "3": "py:property", "4": "py:function", "5": "py:data", "6": "py:module"}, "objnames": {"0": ["py", "class", "Python \u7c7b"], "1": ["py", "attribute", "Python \u5c5e\u6027"], "2": ["py", "method", "Python \u65b9\u6cd5"], "3": ["py", "property", "Python \u6258\u7ba1\u5c5e\u6027"], "4": ["py", "function", "Python \u51fd\u6570"], "5": ["py", "data", "Python \u6570\u636e"], "6": ["py", "module", "Python \u6a21\u5757"]}, "titleterms": {"melobot": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 14], "api": 0, "base": 1, "abc": 1, "except": 1, "tool": 1, "type": 1, "bot": 2, "context": 3, "io": 4, "meta": 5, "model": 6, "plugin": 7, "util": 8, "demo": 10, "v3": 13, "cq": 18, "onebot": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"melobot API \u53c2\u8003": [[0, "melobot-api"]], "\u63d0\u793a": [[0, null], [1, null], [1, null], [1, null], [1, null], [1, null], [5, null], [6, null], [6, null], [6, null], [6, null], [6, null], [6, null], [6, null], [6, null], [6, null], [6, null], [6, null], [8, null], [16, null]], "melobot.base": [[1, "melobot-base"]], "abc \u6a21\u5757": [[1, "abc"]], "exceptions \u6a21\u5757": [[1, "exceptions"]], "tools \u6a21\u5757": [[1, "tools"]], "typing \u6a21\u5757": [[1, "typing"]], "melobot.bot": [[2, "melobot-bot"]], "bot \u7c7b": [[2, "module-melobot.bot"]], "melobot.context": [[3, "melobot-context"]], "\u4f1a\u8bdd": [[3, "id1"]], "\u9ad8\u7ea7\u884c\u4e3a\u64cd\u4f5c": [[3, "id2"]], "\u5c0f\u6280\u5de7": [[3, null], [3, null], [3, null], [3, null], [3, null], [3, null], [3, null], [3, null]], "\u8b66\u544a": [[3, null], [3, null], [3, null], [3, null], [3, null], [3, null], [3, null], [3, null]], "\u57fa\u672c\u884c\u4e3a\u64cd\u4f5c": [[3, "action-operations"]], "\u6ce8\u610f": [[3, null], [4, null], [4, null], [4, null], [6, null], [7, null], [7, null], [7, null], [8, null], [8, null], [18, null], [18, null]], "\u624b\u52a8\u884c\u4e3a\u64cd\u4f5c": [[3, "id5"]], "melobot.io": [[4, "melobot-io"]], "\u8fde\u63a5\u5668": [[4, "module-melobot.io"]], "melobot.meta": [[5, "melobot-meta"]], "\u5143\u4fe1\u606f": [[5, "id1"]], "melobot.models": [[6, "melobot-models"]], "\u4e8b\u4ef6\u7c7b\u578b": [[6, "id1"], [15, "id2"]], "\u6d88\u606f\u6784\u9020": [[6, "cq-msgs"]], "melobot.plugin": [[7, "melobot-plugin"]], "\u63d2\u4ef6": [[7, "id1"]], "melobot.utils": [[8, "melobot-utils"]], "\u65e5\u5fd7\u5668": [[8, "id1"]], "\u5339\u914d\u5668": [[8, "id2"]], "\u76f8\u5173\u77e5\u8bc6": [[8, null], [8, null], [8, null], [8, null], [10, null], [10, null], [16, null], [18, null]], "\u68c0\u67e5\u5668": [[8, "id3"]], "\u89e3\u6790\u5668": [[8, "id4"]], "\u683c\u5f0f\u5316\u5668": [[8, "id5"]], "melobot \u6587\u6863": [[9, "melobot"]], "\ud83c\udf89 \u7b80\u4ecb": [[9, "id1"]], "\u2728 \u7279\u8272": [[9, "id2"]], "\ud83d\udce6\ufe0f \u5b89\u88c5\u4f7f\u7528": [[9, "id3"]], "\ud83e\ude84 \u7248\u672c\u652f\u6301": [[9, "id4"]], "\u2764\ufe0f \u81f4\u8c22": [[9, "id5"]], "\u521b\u5efa\u7b2c\u4e00\u4e2a\u673a\u5668\u4eba": [[10, "id1"]], "\u9884\u5148\u914d\u7f6e": [[10, "id2"]], "\u4e00\u4e2a\u5c0f demo": [[10, "demo"]], "\u5c0f demo \u8bb2\u89e3": [[10, "id3"]], "\u5f00\u59cb\u4f7f\u7528": [[11, "id1"]], "\u5907\u6ce8": [[11, null]], "\u5904\u7406\u66f4\u591a\u4e8b\u4ef6": [[12, "id1"]], "\u4e0b\u4e00\u4ee3 melobot": [[13, "melobot"]], "melobot v3": [[13, "melobot-v3"]], "melobot \u5f62\u8c61": [[14, "melobot"]], "\u751f\u6210\u53c2\u6570": [[14, "id1"]], "\u4e8b\u4ef6\u548c\u884c\u4e3a": [[15, "id1"]], "\u884c\u4e3a\u7c7b\u578b": [[15, "id3"]], "\u8f6c\u53d1\u6d88\u606f\u4e0e\u6d88\u606f\u7ed3\u70b9": [[16, "id1"]], "\u5408\u5e76\u8f6c\u53d1\u7ed3\u70b9": [[16, "id2"]], "\u5408\u5e76\u8f6c\u53d1\u81ea\u5b9a\u4e49\u7ed3\u70b9": [[16, "id3"]], "\u76f8\u5173\u53c2\u8003": [[17, "id1"]], "\u6d88\u606f\u5185\u5bb9\u7684\u6570\u636e\u7ed3\u6784": [[18, "id1"]], "\u5b57\u7b26\u4e32\u683c\u5f0f": [[18, "id2"]], "CQ \u7801\u683c\u5f0f": [[18, "cq"]], "CQ \u7801\u8f6c\u4e49": [[18, "id3"]], "\u6570\u7ec4\u683c\u5f0f": [[18, "id4"]], "\u6d88\u606f\u6bb5": [[18, "id5"]], "\u6d88\u606f\u6bb5\u6570\u7ec4": [[18, "id6"]], "OneBot \u534f\u8bae\u548c\u5b9e\u73b0": [[19, "onebot"]]}, "indexentries": {"action_presend\uff08melobot.base.typing.botlife \u5c5e\u6027\uff09": [[1, "melobot.base.typing.BotLife.ACTION_PRESEND"]], "and\uff08melobot.base.typing.logicmode \u5c5e\u6027\uff09": [[1, "melobot.base.typing.LogicMode.AND"]], "abstractconnector\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.AbstractConnector"]], "before_close\uff08melobot.base.typing.botlife \u5c5e\u6027\uff09": [[1, "melobot.base.typing.BotLife.BEFORE_CLOSE"]], "before_stop\uff08melobot.base.typing.botlife \u5c5e\u6027\uff09": [[1, "melobot.base.typing.BotLife.BEFORE_STOP"]], "black\uff08melobot.base.typing.user \u5c5e\u6027\uff09": [[1, "melobot.base.typing.User.BLACK"]], "botaction\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.BotAction"]], "botchecker\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.BotChecker"]], "botevent\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.BotEvent"]], "botexception\uff08melobot.base.exceptions \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.exceptions.BotException"]], "botlife\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.BotLife"]], "botmatcher\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.BotMatcher"]], "connected\uff08melobot.base.typing.botlife \u5c5e\u6027\uff09": [[1, "melobot.base.typing.BotLife.CONNECTED"]], "cqmsgdict\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.CQMsgDict"]], "customnodedata\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.CustomNodeData"]], "event_built\uff08melobot.base.typing.botlife \u5c5e\u6027\uff09": [[1, "melobot.base.typing.BotLife.EVENT_BUILT"]], "loaded\uff08melobot.base.typing.botlife \u5c5e\u6027\uff09": [[1, "melobot.base.typing.BotLife.LOADED"]], "logicmode\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.LogicMode"]], "max\uff08melobot.base.typing.priorlevel \u5c5e\u6027\uff09": [[1, "melobot.base.typing.PriorLevel.MAX"]], "mean\uff08melobot.base.typing.priorlevel \u5c5e\u6027\uff09": [[1, "melobot.base.typing.PriorLevel.MEAN"]], "min\uff08melobot.base.typing.priorlevel \u5c5e\u6027\uff09": [[1, "melobot.base.typing.PriorLevel.MIN"]], "msgnodedict\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.MsgNodeDict"]], "not\uff08melobot.base.typing.logicmode \u5c5e\u6027\uff09": [[1, "melobot.base.typing.LogicMode.NOT"]], "or\uff08melobot.base.typing.logicmode \u5c5e\u6027\uff09": [[1, "melobot.base.typing.LogicMode.OR"]], "owner\uff08melobot.base.typing.user \u5c5e\u6027\uff09": [[1, "melobot.base.typing.User.OWNER"]], "priorlevel\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.PriorLevel"]], "rwcontroller\uff08melobot.base.tools \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.tools.RWController"]], "refernodedata\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.ReferNodeData"]], "su\uff08melobot.base.typing.user \u5c5e\u6027\uff09": [[1, "melobot.base.typing.User.SU"]], "sessionhuptimeout\uff08melobot.base.exceptions \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.exceptions.SessionHupTimeout"]], "sessionrule\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.SessionRule"]], "user\uff08melobot.base.typing.user \u5c5e\u6027\uff09": [[1, "melobot.base.typing.User.USER"]], "user\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.User"]], "void\uff08melobot.base.typing \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.typing.Void"]], "white\uff08melobot.base.typing.user \u5c5e\u6027\uff09": [[1, "melobot.base.typing.User.WHITE"]], "wrappedchecker\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.WrappedChecker"]], "wrappedmatcher\uff08melobot.base.abc \u4e2d\u7684\u7c7b\uff09": [[1, "melobot.base.abc.WrappedMatcher"]], "xor\uff08melobot.base.typing.logicmode \u5c5e\u6027\uff09": [[1, "melobot.base.typing.LogicMode.XOR"]], "__init__() \uff08melobot.base.abc.botchecker \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotChecker.__init__"]], "__init__() \uff08melobot.base.abc.botmatcher \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotMatcher.__init__"]], "__init__() \uff08melobot.base.abc.sessionrule \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.SessionRule.__init__"]], "__init__() \uff08melobot.base.tools.rwcontroller \u65b9\u6cd5\uff09": [[1, "melobot.base.tools.RWController.__init__"]], "async_at()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.async_at"]], "async_interval()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.async_interval"]], "async_later()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.async_later"]], "call_at()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.call_at"]], "call_later()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.call_later"]], "cd_time\uff08melobot.base.abc.abstractconnector \u5c5e\u6027\uff09": [[1, "melobot.base.abc.AbstractConnector.cd_time"]], "check() \uff08melobot.base.abc.botchecker \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotChecker.check"]], "compare() \uff08melobot.base.abc.sessionrule \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.SessionRule.compare"]], "content\uff08melobot.base.typing.customnodedata \u5c5e\u6027\uff09": [[1, "melobot.base.typing.CustomNodeData.content"]], "cooldown()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.cooldown"]], "data\uff08melobot.base.typing.cqmsgdict \u5c5e\u6027\uff09": [[1, "melobot.base.typing.CQMsgDict.data"]], "data\uff08melobot.base.typing.msgnodedict \u5c5e\u6027\uff09": [[1, "melobot.base.typing.MsgNodeDict.data"]], "get_id()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.get_id"]], "id\uff08melobot.base.typing.refernodedata \u5c5e\u6027\uff09": [[1, "melobot.base.typing.ReferNodeData.id"]], "is_meta_event() \uff08melobot.base.abc.botevent \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotEvent.is_meta_event"]], "is_msg_event() \uff08melobot.base.abc.botevent \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotEvent.is_msg_event"]], "is_notice_event() \uff08melobot.base.abc.botevent \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotEvent.is_notice_event"]], "is_req_event() \uff08melobot.base.abc.botevent \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotEvent.is_req_event"]], "is_resp_event() \uff08melobot.base.abc.botevent \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotEvent.is_resp_event"]], "lock()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.lock"]], "logger\uff08melobot.base.abc.abstractconnector \u5c5e\u6027\uff09": [[1, "melobot.base.abc.AbstractConnector.logger"]], "match() \uff08melobot.base.abc.botmatcher \u65b9\u6cd5\uff09": [[1, "melobot.base.abc.BotMatcher.match"]], "melobot.base.typing.p\uff08\u5185\u7f6e\u53d8\u91cf\uff09": [[1, "melobot.base.typing.P"]], "melobot.base.typing.t1\uff08\u5185\u7f6e\u53d8\u91cf\uff09": [[1, "melobot.base.typing.T1"]], "melobot.base.typing.t2\uff08\u5185\u7f6e\u53d8\u91cf\uff09": [[1, "melobot.base.typing.T2"]], "melobot.base.typing.t3\uff08\u5185\u7f6e\u53d8\u91cf\uff09": [[1, "melobot.base.typing.T3"]], "melobot.base.typing.t\uff08\u5185\u7f6e\u53d8\u91cf\uff09": [[1, "melobot.base.typing.T"]], "melobot.base.typing.voidtype\uff08\u5185\u7f6e\u53d8\u91cf\uff09": [[1, "melobot.base.typing.VoidType"]], "name\uff08melobot.base.typing.customnodedata \u5c5e\u6027\uff09": [[1, "melobot.base.typing.CustomNodeData.name"]], "params\uff08melobot.base.abc.botaction \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotAction.params"]], "raw\uff08melobot.base.abc.botevent \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotEvent.raw"]], "resp_id\uff08melobot.base.abc.botaction \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotAction.resp_id"]], "semaphore()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.semaphore"]], "seq\uff08melobot.base.typing.customnodedata \u5c5e\u6027\uff09": [[1, "melobot.base.typing.CustomNodeData.seq"]], "slack\uff08melobot.base.abc.abstractconnector \u5c5e\u6027\uff09": [[1, "melobot.base.abc.AbstractConnector.slack"]], "this_dir()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.this_dir"]], "timelimit()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.timelimit"]], "time\uff08melobot.base.abc.botevent \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotEvent.time"]], "to_async()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.to_async"]], "to_coro()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.to_coro"]], "to_task()\uff08\u5728 melobot.base.tools \u6a21\u5757\u4e2d\uff09": [[1, "melobot.base.tools.to_task"]], "trigger\uff08melobot.base.abc.botaction \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotAction.trigger"]], "type\uff08melobot.base.abc.botaction \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotAction.type"]], "type\uff08melobot.base.abc.botevent \u5c5e\u6027\uff09": [[1, "melobot.base.abc.BotEvent.type"]], "type\uff08melobot.base.typing.cqmsgdict \u5c5e\u6027\uff09": [[1, "melobot.base.typing.CQMsgDict.type"]], "type\uff08melobot.base.typing.msgnodedict \u5c5e\u6027\uff09": [[1, "melobot.base.typing.MsgNodeDict.type"]], "uin\uff08melobot.base.typing.customnodedata \u5c5e\u6027\uff09": [[1, "melobot.base.typing.CustomNodeData.uin"]], "melobot\uff08melobot.bot \u4e2d\u7684\u7c7b\uff09": [[2, "melobot.bot.MeloBot"]], "__init__() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.__init__"]], "activate() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.activate"]], "close() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.close"]], "connector\uff08melobot.bot.melobot \u5c5e\u6027\uff09": [[2, "melobot.bot.MeloBot.connector"]], "emit_signal() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.emit_signal"]], "get_plugins() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.get_plugins"]], "get_share() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.get_share"]], "info\uff08melobot.bot.melobot \u5c5e\u6027\uff09": [[2, "melobot.bot.MeloBot.info"]], "init() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.init"]], "is_activate() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.is_activate"]], "load_plugin() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.load_plugin"]], "load_plugins() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.load_plugins"]], "logger\uff08melobot.bot.melobot \u5c5e\u6027\uff09": [[2, "melobot.bot.MeloBot.logger"]], "melobot.bot": [[2, "module-melobot.bot"]], "module": [[2, "module-melobot.bot"], [4, "module-melobot.io"], [5, "module-melobot.meta"], [7, "module-melobot.plugin"]], "multicast()\uff08melobot.bot.melobot \u7c7b\u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.multicast"]], "name\uff08melobot.bot.melobot \u5c5e\u6027\uff09": [[2, "melobot.bot.MeloBot.name"]], "run() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.run"]], "slack() \uff08melobot.bot.melobot \u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.slack"]], "start()\uff08melobot.bot.melobot \u7c7b\u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.start"]], "thisbot()\uff08\u5728 melobot.bot \u6a21\u5757\u4e2d\uff09": [[2, "melobot.bot.thisbot"]], "unicast()\uff08melobot.bot.melobot \u7c7b\u65b9\u6cd5\uff09": [[2, "melobot.bot.MeloBot.unicast"]], "attrsessionrule\uff08melobot.context \u4e2d\u7684\u7c7b\uff09": [[3, "melobot.context.AttrSessionRule"]], "__init__() \uff08melobot.context.attrsessionrule \u65b9\u6cd5\uff09": [[3, "melobot.context.AttrSessionRule.__init__"]], "any_event()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.any_event"]], "check_send_image()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.check_send_image"]], "check_send_record()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.check_send_record"]], "dispose()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.dispose"]], "finish()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.finish"]], "get_forward_msg()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_forward_msg"]], "get_friend_list()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_friend_list"]], "get_group_honor()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_group_honor"]], "get_group_info()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_group_info"]], "get_group_list()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_group_list"]], "get_group_member_info()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_group_member_info"]], "get_group_member_list()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_group_member_list"]], "get_image()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_image"]], "get_login_info()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_login_info"]], "get_msg()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_msg"]], "get_onebot_status()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_onebot_status"]], "get_onebot_version()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_onebot_version"]], "get_store()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_store"]], "get_stranger_info()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.get_stranger_info"]], "group_ban()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.group_ban"]], "group_kick()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.group_kick"]], "group_leave()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.group_leave"]], "group_whole_ban()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.group_whole_ban"]], "make_action()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.make_action"]], "meta_event()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.meta_event"]], "msg_args()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.msg_args"]], "msg_event()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.msg_event"]], "msg_recall()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.msg_recall"]], "msg_text()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.msg_text"]], "notice_event()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.notice_event"]], "pause()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.pause"]], "reply_finish()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.reply_finish"]], "req_evnt()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.req_evnt"]], "send()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send"]], "send_custom_forward()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send_custom_forward"]], "send_custom_msg()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send_custom_msg"]], "send_forward()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send_forward"]], "send_like()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send_like"]], "send_reply()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send_reply"]], "send_wait()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.send_wait"]], "set_friend_add()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.set_friend_add"]], "set_group_add()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.set_group_add"]], "set_group_admin()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.set_group_admin"]], "set_group_card()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.set_group_card"]], "set_group_name()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.set_group_name"]], "set_group_title()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.set_group_title"]], "take_custom_action()\uff08\u5728 melobot.context \u6a21\u5757\u4e2d\uff09": [[3, "melobot.context.take_custom_action"]], "forwardwsconn\uff08melobot.io \u4e2d\u7684\u7c7b\uff09": [[4, "melobot.io.ForwardWsConn"]], "httpconn\uff08melobot.io \u4e2d\u7684\u7c7b\uff09": [[4, "melobot.io.HttpConn"]], "reversewsconn\uff08melobot.io \u4e2d\u7684\u7c7b\uff09": [[4, "melobot.io.ReverseWsConn"]], "__init__() \uff08melobot.io.forwardwsconn \u65b9\u6cd5\uff09": [[4, "melobot.io.ForwardWsConn.__init__"]], "__init__() \uff08melobot.io.httpconn \u65b9\u6cd5\uff09": [[4, "melobot.io.HttpConn.__init__"]], "__init__() \uff08melobot.io.reversewsconn \u65b9\u6cd5\uff09": [[4, "melobot.io.ReverseWsConn.__init__"]], "client_session\uff08melobot.io.httpconn \u5c5e\u6027\uff09": [[4, "melobot.io.HttpConn.client_session"]], "conn\uff08melobot.io.forwardwsconn \u5c5e\u6027\uff09": [[4, "melobot.io.ForwardWsConn.conn"]], "host\uff08melobot.io.httpconn \u5c5e\u6027\uff09": [[4, "melobot.io.HttpConn.host"]], "host\uff08melobot.io.reversewsconn \u5c5e\u6027\uff09": [[4, "melobot.io.ReverseWsConn.host"]], "max_retry\uff08melobot.io.forwardwsconn \u5c5e\u6027\uff09": [[4, "melobot.io.ForwardWsConn.max_retry"]], "melobot.io": [[4, "module-melobot.io"]], "onebot_url\uff08melobot.io.httpconn \u5c5e\u6027\uff09": [[4, "melobot.io.HttpConn.onebot_url"]], "port\uff08melobot.io.httpconn \u5c5e\u6027\uff09": [[4, "melobot.io.HttpConn.port"]], "port\uff08melobot.io.reversewsconn \u5c5e\u6027\uff09": [[4, "melobot.io.ReverseWsConn.port"]], "retry_delay\uff08melobot.io.forwardwsconn \u5c5e\u6027\uff09": [[4, "melobot.io.ForwardWsConn.retry_delay"]], "serve_site\uff08melobot.io.httpconn \u5c5e\u6027\uff09": [[4, "melobot.io.HttpConn.serve_site"]], "server\uff08melobot.io.reversewsconn \u5c5e\u6027\uff09": [[4, "melobot.io.ReverseWsConn.server"]], "url\uff08melobot.io.forwardwsconn \u5c5e\u6027\uff09": [[4, "melobot.io.ForwardWsConn.url"]], "argv\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.ARGV"]], "author_email\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.AUTHOR_EMAIL"]], "author\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.AUTHOR"]], "env\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.ENV"]], "line_sep\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.LINE_SEP"]], "metainfo\uff08melobot.meta \u4e2d\u7684\u7c7b\uff09": [[5, "melobot.meta.MetaInfo"]], "os_sep\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.OS_SEP"]], "path_sep\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PATH_SEP"]], "platform\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PLATFORM"]], "proj_desc\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PROJ_DESC"]], "proj_name\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PROJ_NAME"]], "proj_src\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PROJ_SRC"]], "py_info\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PY_INFO"]], "py_ver\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.PY_VER"]], "ver\uff08melobot.meta.metainfo \u5c5e\u6027\uff09": [[5, "melobot.meta.MetaInfo.VER"]], "get_all() \uff08melobot.meta.metainfo \u65b9\u6cd5\uff09": [[5, "melobot.meta.MetaInfo.get_all"]], "melobot.meta": [[5, "module-melobot.meta"]], "messageevent.sender\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.MessageEvent.Sender"]], "messageevent\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.MessageEvent"]], "metaevent\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.MetaEvent"]], "noticeevent.client\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.NoticeEvent.Client"]], "noticeevent.file\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.NoticeEvent.File"]], "noticeevent\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.NoticeEvent"]], "requestevent\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.RequestEvent"]], "responseevent\uff08melobot.models \u4e2d\u7684\u7c7b\uff09": [[6, "melobot.models.ResponseEvent"]], "admin_change_type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.admin_change_type"]], "age\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.age"]], "anonym_flag\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.anonym_flag"]], "anonym_id\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.anonym_id"]], "anonym_name\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.anonym_name"]], "at_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.at_msg"]], "ban_time\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.ban_time"]], "bot_id\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.bot_id"]], "bot_id\uff08melobot.models.metaevent \u5c5e\u6027\uff09": [[6, "melobot.models.MetaEvent.bot_id"]], "bot_id\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.bot_id"]], "busid\uff08melobot.models.noticeevent.file \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.File.busid"]], "client\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.client"]], "content\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.content"]], "cq_anti_escape()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.cq_anti_escape"]], "cq_escape()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.cq_escape"]], "cq_filter_text()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.cq_filter_text"]], "custom_msg_node()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.custom_msg_node"]], "custom_music_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.custom_music_msg"]], "data\uff08melobot.models.responseevent \u5c5e\u6027\uff09": [[6, "melobot.models.ResponseEvent.data"]], "essence_change_type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.essence_change_type"]], "face_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.face_msg"]], "file\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.file"]], "font\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.font"]], "from_group_id\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.from_group_id"]], "from_id\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.from_id"]], "get_cq() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.get_cq"]], "get_cq_params() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.get_cq_params"]], "group_area\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.group_area"]], "group_ban_type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.group_ban_type"]], "group_card\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.group_card"]], "group_id\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.group_id"]], "group_level\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.group_level"]], "group_req_type\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.group_req_type"]], "group_role\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.group_role"]], "group_title\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.group_title"]], "honor_change_type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.honor_change_type"]], "id\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.id"]], "id\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.id"]], "id\uff08melobot.models.noticeevent.client \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.Client.id"]], "id\uff08melobot.models.noticeevent.file \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.File.id"]], "id\uff08melobot.models.responseevent \u5c5e\u6027\uff09": [[6, "melobot.models.ResponseEvent.id"]], "image_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.image_msg"]], "is_anonym_member() \uff08melobot.models.messageevent.sender \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.Sender.is_anonym_member"]], "is_bot() \uff08melobot.models.messageevent.sender \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.Sender.is_bot"]], "is_client_status() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_client_status"]], "is_essence() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_essence"]], "is_failed() \uff08melobot.models.responseevent \u65b9\u6cd5\uff09": [[6, "melobot.models.ResponseEvent.is_failed"]], "is_friend() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_friend"]], "is_friend_add() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_friend_add"]], "is_friend_recall() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_friend_recall"]], "is_friend_req() \uff08melobot.models.requestevent \u65b9\u6cd5\uff09": [[6, "melobot.models.RequestEvent.is_friend_req"]], "is_group() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_group"]], "is_group() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group"]], "is_group_admin() \uff08melobot.models.messageevent.sender \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.Sender.is_group_admin"]], "is_group_admin() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_admin"]], "is_group_anonym() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_group_anonym"]], "is_group_ban() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_ban"]], "is_group_card() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_card"]], "is_group_decrease() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_decrease"]], "is_group_increase() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_increase"]], "is_group_normal() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_group_normal"]], "is_group_notice() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_group_notice"]], "is_group_owner() \uff08melobot.models.messageevent.sender \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.Sender.is_group_owner"]], "is_group_recall() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_recall"]], "is_group_req() \uff08melobot.models.requestevent \u65b9\u6cd5\uff09": [[6, "melobot.models.RequestEvent.is_group_req"]], "is_group_self() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_group_self"]], "is_group_temp() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_group_temp"]], "is_group_upload() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_group_upload"]], "is_heartbeat() \uff08melobot.models.metaevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MetaEvent.is_heartbeat"]], "is_honor() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_honor"]], "is_lifecycle() \uff08melobot.models.metaevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MetaEvent.is_lifecycle"]], "is_lucky_king() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_lucky_king"]], "is_notify() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_notify"]], "is_offline_file() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_offline_file"]], "is_ok() \uff08melobot.models.responseevent \u65b9\u6cd5\uff09": [[6, "melobot.models.ResponseEvent.is_ok"]], "is_poke() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_poke"]], "is_private() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_private"]], "is_processing() \uff08melobot.models.responseevent \u65b9\u6cd5\uff09": [[6, "melobot.models.ResponseEvent.is_processing"]], "is_temp() \uff08melobot.models.messageevent \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.is_temp"]], "is_title() \uff08melobot.models.noticeevent \u65b9\u6cd5\uff09": [[6, "melobot.models.NoticeEvent.is_title"]], "join_group_type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.join_group_type"]], "json_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.json_msg"]], "kind\uff08melobot.models.noticeevent.client \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.Client.kind"]], "leave_group_type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.leave_group_type"]], "music_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.music_msg"]], "name\uff08melobot.models.noticeevent.client \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.Client.name"]], "name\uff08melobot.models.noticeevent.file \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.File.name"]], "new_card\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.new_card"]], "new_title\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.new_title"]], "nickname\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.nickname"]], "notice_group_id\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.notice_group_id"]], "notice_msg_id\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.notice_msg_id"]], "notice_operator_id\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.notice_operator_id"]], "notice_user_id\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.notice_user_id"]], "old_card\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.old_card"]], "online\uff08melobot.models.noticeevent.client \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.Client.online"]], "only_group_member() \uff08melobot.models.messageevent.sender \u65b9\u6cd5\uff09": [[6, "melobot.models.MessageEvent.Sender.only_group_member"]], "poke_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.poke_msg"]], "raw_content\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.raw_content"]], "record_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.record_msg"]], "refer_msg_node()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.refer_msg_node"]], "reply_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.reply_msg"]], "req_comment\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.req_comment"]], "req_flag\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.req_flag"]], "sender\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.sender"]], "sex\uff08melobot.models.messageevent.sender \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.Sender.sex"]], "share_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.share_msg"]], "size\uff08melobot.models.noticeevent.file \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.File.size"]], "status\uff08melobot.models.responseevent \u5c5e\u6027\uff09": [[6, "melobot.models.ResponseEvent.status"]], "temp_src\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.temp_src"]], "text_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.text_msg"]], "text\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.text"]], "time\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.time"]], "time\uff08melobot.models.metaevent \u5c5e\u6027\uff09": [[6, "melobot.models.MetaEvent.time"]], "time\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.time"]], "time\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.time"]], "time\uff08melobot.models.responseevent \u5c5e\u6027\uff09": [[6, "melobot.models.ResponseEvent.time"]], "to_cq_arr()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.to_cq_arr"]], "to_cq_str()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.to_cq_str"]], "type\uff08melobot.models.messageevent \u5c5e\u6027\uff09": [[6, "melobot.models.MessageEvent.type"]], "type\uff08melobot.models.metaevent \u5c5e\u6027\uff09": [[6, "melobot.models.MetaEvent.type"]], "type\uff08melobot.models.noticeevent \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.type"]], "type\uff08melobot.models.requestevent \u5c5e\u6027\uff09": [[6, "melobot.models.RequestEvent.type"]], "type\uff08melobot.models.responseevent \u5c5e\u6027\uff09": [[6, "melobot.models.ResponseEvent.type"]], "url\uff08melobot.models.noticeevent.file \u5c5e\u6027\uff09": [[6, "melobot.models.NoticeEvent.File.url"]], "xml_msg()\uff08\u5728 melobot.models \u6a21\u5757\u4e2d\uff09": [[6, "melobot.models.xml_msg"]], "botplugin\uff08melobot.plugin \u4e2d\u7684\u7c7b\uff09": [[7, "melobot.plugin.BotPlugin"]], "__init__() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.__init__"]], "melobot.plugin": [[7, "module-melobot.plugin"]], "on_action_presend\uff08melobot.plugin.botplugin \u5c5e\u6027\uff09": [[7, "melobot.plugin.BotPlugin.on_action_presend"]], "on_at_qq() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_at_qq"]], "on_before_close\uff08melobot.plugin.botplugin \u5c5e\u6027\uff09": [[7, "melobot.plugin.BotPlugin.on_before_close"]], "on_before_stop\uff08melobot.plugin.botplugin \u5c5e\u6027\uff09": [[7, "melobot.plugin.BotPlugin.on_before_stop"]], "on_bot_life() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_bot_life"]], "on_connected\uff08melobot.plugin.botplugin \u5c5e\u6027\uff09": [[7, "melobot.plugin.BotPlugin.on_connected"]], "on_contain_match() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_contain_match"]], "on_end_match() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_end_match"]], "on_event() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_event"]], "on_event_built\uff08melobot.plugin.botplugin \u5c5e\u6027\uff09": [[7, "melobot.plugin.BotPlugin.on_event_built"]], "on_every_message() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_every_message"]], "on_friend_request() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_friend_request"]], "on_full_match() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_full_match"]], "on_group_request() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_group_request"]], "on_message() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_message"]], "on_meta_event() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_meta_event"]], "on_notice() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_notice"]], "on_plugins_loaded\uff08melobot.plugin.botplugin \u5c5e\u6027\uff09": [[7, "melobot.plugin.BotPlugin.on_plugins_loaded"]], "on_regex_match() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_regex_match"]], "on_request() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_request"]], "on_share() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_share"]], "on_share_affected() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_share_affected"]], "on_signal() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_signal"]], "on_start_match() \uff08melobot.plugin.botplugin \u65b9\u6cd5\uff09": [[7, "melobot.plugin.BotPlugin.on_start_match"]], "argformatter\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.ArgFormatter"]], "atchecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.AtChecker"]], "botlogger\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.BotLogger"]], "cmdparsergen\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.CmdParserGen"]], "cmdparser\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.CmdParser"]], "containmatcher\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.ContainMatcher"]], "endmatcher\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.EndMatcher"]], "formatinfo\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.FormatInfo"]], "friendreqchecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.FriendReqChecker"]], "fullmatcher\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.FullMatcher"]], "groupmsglvlchecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.GroupMsgLvlChecker"]], "groupreqchecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.GroupReqChecker"]], "msgcheckergen\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.MsgCheckerGen"]], "msglvlchecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.MsgLvlChecker"]], "noticetypechecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.NoticeTypeChecker"]], "privatemsglvlchecker\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.PrivateMsgLvlChecker"]], "regexmatcher\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.RegexMatcher"]], "startmatcher\uff08melobot.utils \u4e2d\u7684\u7c7b\uff09": [[8, "melobot.utils.StartMatcher"]], "__init__() \uff08melobot.utils.argformatter \u65b9\u6cd5\uff09": [[8, "melobot.utils.ArgFormatter.__init__"]], "__init__() \uff08melobot.utils.atchecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.AtChecker.__init__"]], "__init__() \uff08melobot.utils.botlogger \u65b9\u6cd5\uff09": [[8, "melobot.utils.BotLogger.__init__"]], "__init__() \uff08melobot.utils.cmdparser \u65b9\u6cd5\uff09": [[8, "melobot.utils.CmdParser.__init__"]], "__init__() \uff08melobot.utils.cmdparsergen \u65b9\u6cd5\uff09": [[8, "melobot.utils.CmdParserGen.__init__"]], "__init__() \uff08melobot.utils.containmatcher \u65b9\u6cd5\uff09": [[8, "melobot.utils.ContainMatcher.__init__"]], "__init__() \uff08melobot.utils.endmatcher \u65b9\u6cd5\uff09": [[8, "melobot.utils.EndMatcher.__init__"]], "__init__() \uff08melobot.utils.friendreqchecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.FriendReqChecker.__init__"]], "__init__() \uff08melobot.utils.fullmatcher \u65b9\u6cd5\uff09": [[8, "melobot.utils.FullMatcher.__init__"]], "__init__() \uff08melobot.utils.groupmsglvlchecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.GroupMsgLvlChecker.__init__"]], "__init__() \uff08melobot.utils.groupreqchecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.GroupReqChecker.__init__"]], "__init__() \uff08melobot.utils.msgcheckergen \u65b9\u6cd5\uff09": [[8, "melobot.utils.MsgCheckerGen.__init__"]], "__init__() \uff08melobot.utils.msglvlchecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.MsgLvlChecker.__init__"]], "__init__() \uff08melobot.utils.noticetypechecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.NoticeTypeChecker.__init__"]], "__init__() \uff08melobot.utils.privatemsglvlchecker \u65b9\u6cd5\uff09": [[8, "melobot.utils.PrivateMsgLvlChecker.__init__"]], "__init__() \uff08melobot.utils.regexmatcher \u65b9\u6cd5\uff09": [[8, "melobot.utils.RegexMatcher.__init__"]], "__init__() \uff08melobot.utils.startmatcher \u65b9\u6cd5\uff09": [[8, "melobot.utils.StartMatcher.__init__"]], "cmd_name\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.cmd_name"]], "exc_tb\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.exc_tb"]], "exc_type\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.exc_type"]], "gen() \uff08melobot.utils.cmdparsergen \u65b9\u6cd5\uff09": [[8, "melobot.utils.CmdParserGen.gen"]], "gen_base() \uff08melobot.utils.msgcheckergen \u65b9\u6cd5\uff09": [[8, "melobot.utils.MsgCheckerGen.gen_base"]], "gen_group() \uff08melobot.utils.msgcheckergen \u65b9\u6cd5\uff09": [[8, "melobot.utils.MsgCheckerGen.gen_group"]], "gen_private() \uff08melobot.utils.msgcheckergen \u65b9\u6cd5\uff09": [[8, "melobot.utils.MsgCheckerGen.gen_private"]], "idx\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.idx"]], "setlevel() \uff08melobot.utils.botlogger \u65b9\u6cd5\uff09": [[8, "melobot.utils.BotLogger.setLevel"]], "src_desc\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.src_desc"]], "src_expect\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.src_expect"]], "src\uff08melobot.utils.formatinfo \u5c5e\u6027\uff09": [[8, "melobot.utils.FormatInfo.src"]]}}) \ No newline at end of file