import{_ as n,o as s,c as a,e}from"./app-Dq2hGnN2.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":"/dev/api/bot/","title":"liteyuki.bot","lang":"zh-CN","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":"en-us","href":"https://vuepress-theme-hope-docs-demo.netlify.app/en/dev/api/bot/"}],["meta",{"property":"og:url","content":"https://vuepress-theme-hope-docs-demo.netlify.app/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":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["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":1724031826000,"updatedTime":1724234361000,"contributors":[{"name":"snowy","email":"snowykami@outlook.com","commits":5}]},"readingTime":{"minutes":4.02,"words":1205},"filePathRelative":"dev/api/bot/README.md","localizedDate":"2024年8月19日","autoDesc":true}`);export{r as comp,d as data};
