LiteyukiBot/assets/index.html-BUFsIdji.js

245 lines
53 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{_ as n,o as s,c as a,e}from"./app-DeoZdSx1.js";const t={},p=e(`<h3 id="def-get-bot-liteyukibot" tabindex="-1"><a class="header-anchor" href="#def-get-bot-liteyukibot"><span><em><strong>def</strong></em> <code>get_bot() -&gt; LiteyukiBot</code></span></a></h3><p>获取轻雪实例</p><p>Returns:</p><pre><code>LiteyukiBot: 当前的轻雪实例
</code></pre><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">get_bot</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span><span class="token operator">&gt;</span> LiteyukiBot<span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
获取轻雪实例
Returns:
LiteyukiBot: 当前的轻雪实例
&quot;&quot;&quot;</span>
<span class="token keyword">if</span> IS_MAIN_PROCESS<span class="token punctuation">:</span>
<span class="token keyword">if</span> _BOT_INSTANCE <span class="token keyword">is</span> <span class="token boolean">None</span><span class="token punctuation">:</span>
<span class="token keyword">raise</span> RuntimeError<span class="token punctuation">(</span><span class="token string">&#39;Liteyuki instance not initialized.&#39;</span><span class="token punctuation">)</span>
<span class="token keyword">return</span> _BOT_INSTANCE
<span class="token keyword">else</span><span class="token punctuation">:</span>
<span class="token keyword">raise</span> RuntimeError<span class="token punctuation">(</span><span class="token string">&quot;Can&#39;t get bot instance in sub process.&quot;</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-get-config-key-str-default-any-any" tabindex="-1"><a class="header-anchor" href="#def-get-config-key-str-default-any-any"><span><em><strong>def</strong></em> <code>get_config(key: str, default: Any) -&gt; Any</code></span></a></h3><p>获取配置</p><p>Args:</p><pre><code>key: 配置键
default: 默认值
</code></pre><p>Returns:</p><pre><code>Any: 配置值
</code></pre><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">get_config</span><span class="token punctuation">(</span>key<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">,</span> default<span class="token punctuation">:</span> Any<span class="token operator">=</span><span class="token boolean">None</span><span class="token punctuation">)</span> <span class="token operator">-</span><span class="token operator">&gt;</span> Any<span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
获取配置
Args:
key: 配置键
default: 默认值
Returns:
Any: 配置值
&quot;&quot;&quot;</span>
<span class="token keyword">return</span> get_bot<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>config<span class="token punctuation">.</span>get<span class="token punctuation">(</span>key<span class="token punctuation">,</span> default<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-get-config-with-compat-key-str-compat-keys-tuple-str-default-any-any" tabindex="-1"><a class="header-anchor" href="#def-get-config-with-compat-key-str-compat-keys-tuple-str-default-any-any"><span><em><strong>def</strong></em> <code>get_config_with_compat(key: str, compat_keys: tuple[str], default: Any) -&gt; Any</code></span></a></h3><p>获取配置,兼容旧版本</p><p>Args:</p><pre><code>key: 配置键
compat_keys: 兼容键
default: 默认值
</code></pre><p>Returns:</p><pre><code>Any: 配置值
</code></pre><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">get_config_with_compat</span><span class="token punctuation">(</span>key<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">,</span> compat_keys<span class="token punctuation">:</span> <span class="token builtin">tuple</span><span class="token punctuation">[</span><span class="token builtin">str</span><span class="token punctuation">]</span><span class="token punctuation">,</span> default<span class="token punctuation">:</span> Any<span class="token operator">=</span><span class="token boolean">None</span><span class="token punctuation">)</span> <span class="token operator">-</span><span class="token operator">&gt;</span> Any<span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
获取配置,兼容旧版本
Args:
key: 配置键
compat_keys: 兼容键
default: 默认值
Returns:
Any: 配置值
&quot;&quot;&quot;</span>
<span class="token keyword">if</span> key <span class="token keyword">in</span> get_bot<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>config<span class="token punctuation">:</span>
<span class="token keyword">return</span> get_bot<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>config<span class="token punctuation">[</span>key<span class="token punctuation">]</span>
<span class="token keyword">for</span> compat_key <span class="token keyword">in</span> compat_keys<span class="token punctuation">:</span>
<span class="token keyword">if</span> compat_key <span class="token keyword">in</span> get_bot<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>config<span class="token punctuation">:</span>
logger<span class="token punctuation">.</span>warning<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&#39;Config key &quot;</span><span class="token interpolation"><span class="token punctuation">{</span>compat_key<span class="token punctuation">}</span></span><span class="token string">&quot; will be deprecated, use &quot;</span><span class="token interpolation"><span class="token punctuation">{</span>key<span class="token punctuation">}</span></span><span class="token string">&quot; instead.&#39;</span></span><span class="token punctuation">)</span>
<span class="token keyword">return</span> get_bot<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>config<span class="token punctuation">[</span>compat_key<span class="token punctuation">]</span>
<span class="token keyword">return</span> default
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-print-logo-none" tabindex="-1"><a class="header-anchor" href="#def-print-logo-none"><span><em><strong>def</strong></em> <code>print_logo() -&gt; None</code></span></a></h3><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">print_logo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">&#39;\\x1b[34m&#39;</span> <span class="token operator">+</span> <span class="token string">&#39;\\n __ ______ ________ ________ __ __ __ __ __ __ ______ \\n / | / |/ |/ |/ \\\\ / |/ | / |/ | / |/ |\\n $$ | $$$$$$/ $$$$$$$$/ $$$$$$$$/ $$ \\\\ /$$/ $$ | $$ |$$ | /$$/ $$$$$$/ \\n $$ | $$ | $$ | $$ |__ $$ \\\\/$$/ $$ | $$ |$$ |/$$/ $$ | \\n $$ | $$ | $$ | $$ | $$ $$/ $$ | $$ |$$ $$&lt; $$ | \\n $$ | $$ | $$ | $$$$$/ $$$$/ $$ | $$ |$$$$$ \\\\ $$ | \\n $$ |_____ _$$ |_ $$ | $$ |_____ $$ | $$ \\\\__$$ |$$ |$$ \\\\ _$$ |_ \\n $$ |/ $$ | $$ | $$ | $$ | $$ $$/ $$ | $$ |/ $$ |\\n $$$$$$$$/ $$$$$$/ $$/ $$$$$$$$/ $$/ $$$$$$/ $$/ $$/ $$$$$$/ \\n &#39;</span> <span class="token operator">+</span> <span class="token string">&#39;\\x1b[0m&#39;</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="class-liteyukibot" tabindex="-1"><a class="header-anchor" href="#class-liteyukibot"><span><em><strong>class</strong></em> <code>LiteyukiBot</code></span></a></h3><h3 id="def-init-self-none" tabindex="-1"><a class="header-anchor" href="#def-init-self-none"><span> <em><strong>def</strong></em> <code>__init__(self) -&gt; None</code></span></a></h3><p> 初始化轻雪实例</p><p>Args:</p><pre><code>*args:
**kwargs: 配置
</code></pre><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">__init__</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> <span class="token operator">*</span>args<span class="token punctuation">,</span> <span class="token operator">**</span>kwargs<span class="token punctuation">)</span> <span class="token operator">-</span><span class="token operator">&gt;</span> <span class="token boolean">None</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
初始化轻雪实例
Args:
*args:
**kwargs: 配置
&quot;&quot;&quot;</span>
<span class="token string">&#39;常规操作&#39;</span>
print_logo<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token keyword">global</span> _BOT_INSTANCE
_BOT_INSTANCE <span class="token operator">=</span> self
<span class="token string">&#39;配置&#39;</span>
self<span class="token punctuation">.</span>config<span class="token punctuation">:</span> <span class="token builtin">dict</span><span class="token punctuation">[</span><span class="token builtin">str</span><span class="token punctuation">,</span> Any<span class="token punctuation">]</span> <span class="token operator">=</span> kwargs
<span class="token string">&#39;初始化&#39;</span>
self<span class="token punctuation">.</span>init<span class="token punctuation">(</span><span class="token operator">**</span>self<span class="token punctuation">.</span>config<span class="token punctuation">)</span>
logger<span class="token punctuation">.</span>info<span class="token punctuation">(</span><span class="token string">&#39;Liteyuki is initializing...&#39;</span><span class="token punctuation">)</span>
<span class="token string">&#39;生命周期管理&#39;</span>
self<span class="token punctuation">.</span>lifespan <span class="token operator">=</span> Lifespan<span class="token punctuation">(</span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>process_manager<span class="token punctuation">:</span> ProcessManager <span class="token operator">=</span> ProcessManager<span class="token punctuation">(</span>lifespan<span class="token operator">=</span>self<span class="token punctuation">.</span>lifespan<span class="token punctuation">)</span>
<span class="token string">&#39;事件循环&#39;</span>
self<span class="token punctuation">.</span>loop <span class="token operator">=</span> asyncio<span class="token punctuation">.</span>new_event_loop<span class="token punctuation">(</span><span class="token punctuation">)</span>
asyncio<span class="token punctuation">.</span>set_event_loop<span class="token punctuation">(</span>self<span class="token punctuation">.</span>loop<span class="token punctuation">)</span>
self<span class="token punctuation">.</span>stop_event <span class="token operator">=</span> threading<span class="token punctuation">.</span>Event<span class="token punctuation">(</span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>call_restart_count <span class="token operator">=</span> <span class="token number">0</span>
<span class="token string">&#39;加载插件加载器&#39;</span>
load_plugin<span class="token punctuation">(</span><span class="token string">&#39;liteyuki.plugins.plugin_loader&#39;</span><span class="token punctuation">)</span>
<span class="token string">&#39;信号处理&#39;</span>
signal<span class="token punctuation">.</span>signal<span class="token punctuation">(</span>signal<span class="token punctuation">.</span>SIGINT<span class="token punctuation">,</span> self<span class="token punctuation">.</span>_handle_exit<span class="token punctuation">)</span>
signal<span class="token punctuation">.</span>signal<span class="token punctuation">(</span>signal<span class="token punctuation">.</span>SIGTERM<span class="token punctuation">,</span> self<span class="token punctuation">.</span>_handle_exit<span class="token punctuation">)</span>
atexit<span class="token punctuation">.</span>register<span class="token punctuation">(</span>self<span class="token punctuation">.</span>process_manager<span class="token punctuation">.</span>terminate_all<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-run-self-none" tabindex="-1"><a class="header-anchor" href="#def-run-self-none"><span> <em><strong>def</strong></em> <code>run(self) -&gt; None</code></span></a></h3><p> 启动逻辑</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">run</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
启动逻辑
&quot;&quot;&quot;</span>
self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>before_start<span class="token punctuation">(</span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>process_manager<span class="token punctuation">.</span>start_all<span class="token punctuation">(</span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>after_start<span class="token punctuation">(</span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>keep_alive<span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-keep-alive-self-none" tabindex="-1"><a class="header-anchor" href="#def-keep-alive-self-none"><span> <em><strong>def</strong></em> <code>keep_alive(self) -&gt; None</code></span></a></h3><p> 保持轻雪运行</p><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">keep_alive</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
保持轻雪运行
Returns:
&quot;&quot;&quot;</span>
<span class="token keyword">try</span><span class="token punctuation">:</span>
<span class="token keyword">while</span> <span class="token keyword">not</span> self<span class="token punctuation">.</span>stop_event<span class="token punctuation">.</span>is_set<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
time<span class="token punctuation">.</span>sleep<span class="token punctuation">(</span><span class="token number">0.5</span><span class="token punctuation">)</span>
<span class="token keyword">except</span> KeyboardInterrupt<span class="token punctuation">:</span>
logger<span class="token punctuation">.</span>info<span class="token punctuation">(</span><span class="token string">&#39;Liteyuki is stopping...&#39;</span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>stop<span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-restart-self-delay-int-none" tabindex="-1"><a class="header-anchor" href="#def-restart-self-delay-int-none"><span> <em><strong>def</strong></em> <code>restart(self, delay: int) -&gt; None</code></span></a></h3><p> 重启轻雪本体</p><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">restart</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> delay<span class="token punctuation">:</span> <span class="token builtin">int</span><span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
重启轻雪本体
Returns:
&quot;&quot;&quot;</span>
<span class="token keyword">if</span> self<span class="token punctuation">.</span>call_restart_count <span class="token operator">&lt;</span> <span class="token number">1</span><span class="token punctuation">:</span>
executable <span class="token operator">=</span> sys<span class="token punctuation">.</span>executable
args <span class="token operator">=</span> sys<span class="token punctuation">.</span>argv
logger<span class="token punctuation">.</span>info<span class="token punctuation">(</span><span class="token string">&#39;Restarting LiteyukiBot...&#39;</span><span class="token punctuation">)</span>
time<span class="token punctuation">.</span>sleep<span class="token punctuation">(</span>delay<span class="token punctuation">)</span>
<span class="token keyword">if</span> platform<span class="token punctuation">.</span>system<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token string">&#39;Windows&#39;</span><span class="token punctuation">:</span>
cmd <span class="token operator">=</span> <span class="token string">&#39;start&#39;</span>
<span class="token keyword">elif</span> platform<span class="token punctuation">.</span>system<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token string">&#39;Linux&#39;</span><span class="token punctuation">:</span>
cmd <span class="token operator">=</span> <span class="token string">&#39;nohup&#39;</span>
<span class="token keyword">elif</span> platform<span class="token punctuation">.</span>system<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token string">&#39;Darwin&#39;</span><span class="token punctuation">:</span>
cmd <span class="token operator">=</span> <span class="token string">&#39;open&#39;</span>
<span class="token keyword">else</span><span class="token punctuation">:</span>
cmd <span class="token operator">=</span> <span class="token string">&#39;nohup&#39;</span>
self<span class="token punctuation">.</span>process_manager<span class="token punctuation">.</span>terminate_all<span class="token punctuation">(</span><span class="token punctuation">)</span>
threading<span class="token punctuation">.</span>Thread<span class="token punctuation">(</span>target<span class="token operator">=</span>os<span class="token punctuation">.</span>system<span class="token punctuation">,</span> args<span class="token operator">=</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&quot;</span><span class="token interpolation"><span class="token punctuation">{</span>cmd<span class="token punctuation">}</span></span><span class="token string"> </span><span class="token interpolation"><span class="token punctuation">{</span>executable<span class="token punctuation">}</span></span><span class="token string"> </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token string">&#39; &#39;</span><span class="token punctuation">.</span>join<span class="token punctuation">(</span>args<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">&quot;</span></span><span class="token punctuation">,</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span>start<span class="token punctuation">(</span><span class="token punctuation">)</span>
sys<span class="token punctuation">.</span>exit<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>call_restart_count <span class="token operator">+=</span> <span class="token number">1</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-restart-process-self-name-optional-str-none" tabindex="-1"><a class="header-anchor" href="#def-restart-process-self-name-optional-str-none"><span> <em><strong>def</strong></em> <code>restart_process(self, name: Optional[str]) -&gt; None</code></span></a></h3><p> 停止轻雪</p><p>Args:</p><pre><code>name: 进程名称, 默认为None, 所有进程
</code></pre><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">restart_process</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> name<span class="token punctuation">:</span> Optional<span class="token punctuation">[</span><span class="token builtin">str</span><span class="token punctuation">]</span><span class="token operator">=</span><span class="token boolean">None</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
停止轻雪
Args:
name: 进程名称, 默认为None, 所有进程
Returns:
&quot;&quot;&quot;</span>
self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>before_process_shutdown<span class="token punctuation">(</span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>before_process_shutdown<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token keyword">if</span> name <span class="token keyword">is</span> <span class="token keyword">not</span> <span class="token boolean">None</span><span class="token punctuation">:</span>
chan_active <span class="token operator">=</span> get_channel<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&#39;</span><span class="token interpolation"><span class="token punctuation">{</span>name<span class="token punctuation">}</span></span><span class="token string">-active&#39;</span></span><span class="token punctuation">)</span>
chan_active<span class="token punctuation">.</span>send<span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
<span class="token keyword">else</span><span class="token punctuation">:</span>
<span class="token keyword">for</span> process_name <span class="token keyword">in</span> self<span class="token punctuation">.</span>process_manager<span class="token punctuation">.</span>processes<span class="token punctuation">:</span>
chan_active <span class="token operator">=</span> get_channel<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&#39;</span><span class="token interpolation"><span class="token punctuation">{</span>process_name<span class="token punctuation">}</span></span><span class="token string">-active&#39;</span></span><span class="token punctuation">)</span>
chan_active<span class="token punctuation">.</span>send<span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-init-self-none-1" tabindex="-1"><a class="header-anchor" href="#def-init-self-none-1"><span> <em><strong>def</strong></em> <code>init(self) -&gt; None</code></span></a></h3><p> 初始化轻雪, 自动调用</p><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">init</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> <span class="token operator">*</span>args<span class="token punctuation">,</span> <span class="token operator">**</span>kwargs<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
初始化轻雪, 自动调用
Returns:
&quot;&quot;&quot;</span>
self<span class="token punctuation">.</span>init_logger<span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-init-logger-self-none" tabindex="-1"><a class="header-anchor" href="#def-init-logger-self-none"><span> <em><strong>def</strong></em> <code>init_logger(self) -&gt; None</code></span></a></h3><p></p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">init_logger</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span>
init_log<span class="token punctuation">(</span>config<span class="token operator">=</span>self<span class="token punctuation">.</span>config<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-stop-self-none" tabindex="-1"><a class="header-anchor" href="#def-stop-self-none"><span> <em><strong>def</strong></em> <code>stop(self) -&gt; None</code></span></a></h3><p> 停止轻雪</p><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">stop</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
停止轻雪
Returns:
&quot;&quot;&quot;</span>
self<span class="token punctuation">.</span>stop_event<span class="token punctuation">.</span><span class="token builtin">set</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>loop<span class="token punctuation">.</span>stop<span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-on-before-start-self-func-lifespan-func-none" tabindex="-1"><a class="header-anchor" href="#def-on-before-start-self-func-lifespan-func-none"><span> <em><strong>def</strong></em> <code>on_before_start(self, func: LIFESPAN_FUNC) -&gt; None</code></span></a></h3><p> 注册启动前的函数</p><p>Args:</p><pre><code>func:
</code></pre><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">on_before_start</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> func<span class="token punctuation">:</span> LIFESPAN_FUNC<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
注册启动前的函数
Args:
func:
Returns:
&quot;&quot;&quot;</span>
<span class="token keyword">return</span> self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>on_before_start<span class="token punctuation">(</span>func<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-on-after-start-self-func-lifespan-func-none" tabindex="-1"><a class="header-anchor" href="#def-on-after-start-self-func-lifespan-func-none"><span> <em><strong>def</strong></em> <code>on_after_start(self, func: LIFESPAN_FUNC) -&gt; None</code></span></a></h3><p> 注册启动后的函数</p><p>Args:</p><pre><code>func:
</code></pre><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">on_after_start</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> func<span class="token punctuation">:</span> LIFESPAN_FUNC<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
注册启动后的函数
Args:
func:
Returns:
&quot;&quot;&quot;</span>
<span class="token keyword">return</span> self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>on_after_start<span class="token punctuation">(</span>func<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-on-after-shutdown-self-func-lifespan-func-none" tabindex="-1"><a class="header-anchor" href="#def-on-after-shutdown-self-func-lifespan-func-none"><span> <em><strong>def</strong></em> <code>on_after_shutdown(self, func: LIFESPAN_FUNC) -&gt; None</code></span></a></h3><p> 注册停止后的函数:未实现</p><p>Args:</p><pre><code>func:
</code></pre><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">on_after_shutdown</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> func<span class="token punctuation">:</span> LIFESPAN_FUNC<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
注册停止后的函数:未实现
Args:
func:
Returns:
&quot;&quot;&quot;</span>
<span class="token keyword">return</span> self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>on_after_shutdown<span class="token punctuation">(</span>func<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-on-before-process-shutdown-self-func-lifespan-func-none" tabindex="-1"><a class="header-anchor" href="#def-on-before-process-shutdown-self-func-lifespan-func-none"><span> <em><strong>def</strong></em> <code>on_before_process_shutdown(self, func: LIFESPAN_FUNC) -&gt; None</code></span></a></h3><p> 注册进程停止前的函数,为子进程停止时调用</p><p>Args:</p><pre><code>func:
</code></pre><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">on_before_process_shutdown</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> func<span class="token punctuation">:</span> LIFESPAN_FUNC<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
注册进程停止前的函数,为子进程停止时调用
Args:
func:
Returns:
&quot;&quot;&quot;</span>
<span class="token keyword">return</span> self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>on_before_process_shutdown<span class="token punctuation">(</span>func<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-on-before-process-restart-self-func-lifespan-func-none" tabindex="-1"><a class="header-anchor" href="#def-on-before-process-restart-self-func-lifespan-func-none"><span> <em><strong>def</strong></em> <code>on_before_process_restart(self, func: LIFESPAN_FUNC) -&gt; None</code></span></a></h3><p> 注册进程重启前的函数,为子进程重启时调用</p><p>Args:</p><pre><code>func:
</code></pre><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">on_before_process_restart</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> func<span class="token punctuation">:</span> LIFESPAN_FUNC<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
注册进程重启前的函数,为子进程重启时调用
Args:
func:
Returns:
&quot;&quot;&quot;</span>
<span class="token keyword">return</span> self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>on_before_process_restart<span class="token punctuation">(</span>func<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-on-after-restart-self-func-lifespan-func-none" tabindex="-1"><a class="header-anchor" href="#def-on-after-restart-self-func-lifespan-func-none"><span> <em><strong>def</strong></em> <code>on_after_restart(self, func: LIFESPAN_FUNC) -&gt; None</code></span></a></h3><p> 注册重启后的函数:未实现</p><p>Args:</p><pre><code>func:
</code></pre><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">on_after_restart</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> func<span class="token punctuation">:</span> LIFESPAN_FUNC<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
注册重启后的函数:未实现
Args:
func:
Returns:
&quot;&quot;&quot;</span>
<span class="token keyword">return</span> self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>on_after_restart<span class="token punctuation">(</span>func<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-on-after-nonebot-init-self-func-lifespan-func-none" tabindex="-1"><a class="header-anchor" href="#def-on-after-nonebot-init-self-func-lifespan-func-none"><span> <em><strong>def</strong></em> <code>on_after_nonebot_init(self, func: LIFESPAN_FUNC) -&gt; None</code></span></a></h3><p>注册nonebot初始化后的函数</p><p>Args:</p><pre><code>func:
</code></pre><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">on_after_nonebot_init</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> func<span class="token punctuation">:</span> LIFESPAN_FUNC<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
注册nonebot初始化后的函数
Args:
func:
Returns:
&quot;&quot;&quot;</span>
<span class="token keyword">return</span> self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>on_after_nonebot_init<span class="token punctuation">(</span>func<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="var-executable-sys-executable" tabindex="-1"><a class="header-anchor" href="#var-executable-sys-executable"><span><em><strong>var</strong></em> <code>executable = sys.executable</code></span></a></h3><h3 id="var-args-sys-argv" tabindex="-1"><a class="header-anchor" href="#var-args-sys-argv"><span><em><strong>var</strong></em> <code>args = sys.argv</code></span></a></h3><h3 id="var-chan-active-get-channel-f-name-active" tabindex="-1"><a class="header-anchor" href="#var-chan-active-get-channel-f-name-active"><span><em><strong>var</strong></em> <code>chan_active = get_channel(f&#39;{name}-active&#39;)</code></span></a></h3><h3 id="var-cmd-start" tabindex="-1"><a class="header-anchor" href="#var-cmd-start"><span><em><strong>var</strong></em> <code>cmd = &#39;start&#39;</code></span></a></h3><h3 id="var-chan-active-get-channel-f-process-name-active" tabindex="-1"><a class="header-anchor" href="#var-chan-active-get-channel-f-process-name-active"><span><em><strong>var</strong></em> <code>chan_active = get_channel(f&#39;{process_name}-active&#39;)</code></span></a></h3><h3 id="var-cmd-nohup" tabindex="-1"><a class="header-anchor" href="#var-cmd-nohup"><span><em><strong>var</strong></em> <code>cmd = &#39;nohup&#39;</code></span></a></h3><h3 id="var-cmd-open" tabindex="-1"><a class="header-anchor" href="#var-cmd-open"><span><em><strong>var</strong></em> <code>cmd = &#39;open&#39;</code></span></a></h3><h3 id="var-cmd-nohup-1" tabindex="-1"><a class="header-anchor" href="#var-cmd-nohup-1"><span><em><strong>var</strong></em> <code>cmd = &#39;nohup&#39;</code></span></a></h3>`,105),o=[p];function i(l,c){return s(),a("div",null,o)}const r=n(t,[["render",i],["__file","index.html.vue"]]),d=JSON.parse(`{"path":"/en/dev/api/bot/","title":"liteyuki.bot","lang":"en-US","frontmatter":{"title":"liteyuki.bot","index":true,"icon":"laptop-code","category":"API","description":"def get_bot() -> LiteyukiBot 获取轻雪实例 Returns: 源代码 def get_config(key: str, default: Any) -> Any 获取配置 Args: Returns: 源代码 def get_config_with_compat(key: str, compat_keys: tuple[st...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://vuepress-theme-hope-docs-demo.netlify.app/dev/api/bot/"}],["meta",{"property":"og:url","content":"https://vuepress-theme-hope-docs-demo.netlify.app/en/dev/api/bot/"}],["meta",{"property":"og:site_name","content":"LiteyukiBot"}],["meta",{"property":"og:title","content":"liteyuki.bot"}],["meta",{"property":"og:description","content":"def get_bot() -> LiteyukiBot 获取轻雪实例 Returns: 源代码 def get_config(key: str, default: Any) -> Any 获取配置 Args: Returns: 源代码 def get_config_with_compat(key: str, compat_keys: tuple[st..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-21T09:59:21.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-21T09:59:21.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"liteyuki.bot\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-21T09:59:21.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":3,"title":"def get_bot() -> LiteyukiBot","slug":"def-get-bot-liteyukibot","link":"#def-get-bot-liteyukibot","children":[]},{"level":3,"title":"def get_config(key: str, default: Any) -> Any","slug":"def-get-config-key-str-default-any-any","link":"#def-get-config-key-str-default-any-any","children":[]},{"level":3,"title":"def get_config_with_compat(key: str, compat_keys: tuple[str], default: Any) -> Any","slug":"def-get-config-with-compat-key-str-compat-keys-tuple-str-default-any-any","link":"#def-get-config-with-compat-key-str-compat-keys-tuple-str-default-any-any","children":[]},{"level":3,"title":"def print_logo() -> None","slug":"def-print-logo-none","link":"#def-print-logo-none","children":[]},{"level":3,"title":"class LiteyukiBot","slug":"class-liteyukibot","link":"#class-liteyukibot","children":[]},{"level":3,"title":"def __init__(self) -> None","slug":"def-init-self-none","link":"#def-init-self-none","children":[]},{"level":3,"title":"def run(self) -> None","slug":"def-run-self-none","link":"#def-run-self-none","children":[]},{"level":3,"title":"def keep_alive(self) -> None","slug":"def-keep-alive-self-none","link":"#def-keep-alive-self-none","children":[]},{"level":3,"title":"def restart(self, delay: int) -> None","slug":"def-restart-self-delay-int-none","link":"#def-restart-self-delay-int-none","children":[]},{"level":3,"title":"def restart_process(self, name: Optional[str]) -> None","slug":"def-restart-process-self-name-optional-str-none","link":"#def-restart-process-self-name-optional-str-none","children":[]},{"level":3,"title":"def init(self) -> None","slug":"def-init-self-none-1","link":"#def-init-self-none-1","children":[]},{"level":3,"title":"def init_logger(self) -> None","slug":"def-init-logger-self-none","link":"#def-init-logger-self-none","children":[]},{"level":3,"title":"def stop(self) -> None","slug":"def-stop-self-none","link":"#def-stop-self-none","children":[]},{"level":3,"title":"def on_before_start(self, func: LIFESPAN_FUNC) -> None","slug":"def-on-before-start-self-func-lifespan-func-none","link":"#def-on-before-start-self-func-lifespan-func-none","children":[]},{"level":3,"title":"def on_after_start(self, func: LIFESPAN_FUNC) -> None","slug":"def-on-after-start-self-func-lifespan-func-none","link":"#def-on-after-start-self-func-lifespan-func-none","children":[]},{"level":3,"title":"def on_after_shutdown(self, func: LIFESPAN_FUNC) -> None","slug":"def-on-after-shutdown-self-func-lifespan-func-none","link":"#def-on-after-shutdown-self-func-lifespan-func-none","children":[]},{"level":3,"title":"def on_before_process_shutdown(self, func: LIFESPAN_FUNC) -> None","slug":"def-on-before-process-shutdown-self-func-lifespan-func-none","link":"#def-on-before-process-shutdown-self-func-lifespan-func-none","children":[]},{"level":3,"title":"def on_before_process_restart(self, func: LIFESPAN_FUNC) -> None","slug":"def-on-before-process-restart-self-func-lifespan-func-none","link":"#def-on-before-process-restart-self-func-lifespan-func-none","children":[]},{"level":3,"title":"def on_after_restart(self, func: LIFESPAN_FUNC) -> None","slug":"def-on-after-restart-self-func-lifespan-func-none","link":"#def-on-after-restart-self-func-lifespan-func-none","children":[]},{"level":3,"title":"def on_after_nonebot_init(self, func: LIFESPAN_FUNC) -> None","slug":"def-on-after-nonebot-init-self-func-lifespan-func-none","link":"#def-on-after-nonebot-init-self-func-lifespan-func-none","children":[]},{"level":3,"title":"var executable = sys.executable","slug":"var-executable-sys-executable","link":"#var-executable-sys-executable","children":[]},{"level":3,"title":"var args = sys.argv","slug":"var-args-sys-argv","link":"#var-args-sys-argv","children":[]},{"level":3,"title":"var chan_active = get_channel(f'{name}-active')","slug":"var-chan-active-get-channel-f-name-active","link":"#var-chan-active-get-channel-f-name-active","children":[]},{"level":3,"title":"var cmd = 'start'","slug":"var-cmd-start","link":"#var-cmd-start","children":[]},{"level":3,"title":"var chan_active = get_channel(f'{process_name}-active')","slug":"var-chan-active-get-channel-f-process-name-active","link":"#var-chan-active-get-channel-f-process-name-active","children":[]},{"level":3,"title":"var cmd = 'nohup'","slug":"var-cmd-nohup","link":"#var-cmd-nohup","children":[]},{"level":3,"title":"var cmd = 'open'","slug":"var-cmd-open","link":"#var-cmd-open","children":[]},{"level":3,"title":"var cmd = 'nohup'","slug":"var-cmd-nohup-1","link":"#var-cmd-nohup-1","children":[]}],"git":{"createdTime":1724234361000,"updatedTime":1724234361000,"contributors":[{"name":"snowy","email":"snowykami@outlook.com","commits":1}]},"readingTime":{"minutes":4.02,"words":1205},"filePathRelative":"en/dev/api/bot/README.md","localizedDate":"August 21, 2024","autoDesc":true}`);export{r as comp,d as data};