1import{_ as p,c as d,a as n,d as h,b as a,e as i,w as l,r as e,o as r}from"./app-X5ZAzaQf.js";const g={};function y(A,s){const k=e("Mermaid"),t=e("RouteLink");return r(),d("div",null,[s[9]||(s[9]=n('<blockquote><p>çéè½½ãä¾èµç®¡çãè·¨æä»¶äº¤äºã夿¥å¯¹è¯è®¾è®¡ãäºä»¶é©±å¨å·¥ä½æµç¼æã</p></blockquote><hr><h2 id="ç®å½" tabindex="-1"><a class="header-anchor" href="#ç®å½"><span>ç®å½</span></a></h2><ul><li><a href="#%E7%83%AD%E9%87%8D%E8%BD%BD%E6%9C%BA%E5%88%B6">çéè½½æºå¶</a></li><li><a href="#%E6%8F%92%E4%BB%B6%E4%BE%9D%E8%B5%96%E7%AE%A1%E7%90%86">æä»¶ä¾èµç®¡ç</a></li><li><a href="#%E8%B7%A8%E6%8F%92%E4%BB%B6%E4%BA%A4%E4%BA%92">è·¨æä»¶äº¤äº</a></li><li><a href="#%E5%A4%9A%E6%AD%A5%E5%AF%B9%E8%AF%9D%E8%AE%BE%E8%AE%A1">夿¥å¯¹è¯è®¾è®¡</a></li><li><a href="#%E4%BA%8B%E4%BB%B6%E9%A9%B1%E5%8A%A8%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%BC%96%E6%8E%92">äºä»¶é©±å¨å·¥ä½æµç¼æ</a></li></ul><hr><h2 id="çéè½½æºå¶" tabindex="-1"><a class="header-anchor" href="#çéè½½æºå¶"><span>çéè½½æºå¶</span></a></h2><p>NcatBot æ¯æå¼åæ¶ä¿®æ¹æä»¶ä»£ç åèªå¨éè½½ï¼æ éé坿´ä¸ª Botã</p><h3 id="å·¥ä½åç" tabindex="-1"><a class="header-anchor" href="#å·¥ä½åç"><span>å·¥ä½åç</span></a></h3>',8)),h(k,{id:"mermaid-46",code:"eJyN0b9PwkAUB/Cdv+KNddA/oAOTIQ7EFBcGYy6X8oCL7R3e9YhuLoCGGIgD0Zi4YAKTYVBjYPB/MbaV/8L22gARB2+6H5+89745hWcauYv7jDYk9QuQrBaVAXNZi/IASlWgCkrMwyoN3CbKLVFJwRF6gtagolHjlnDKKXE83WC8nLA/ijhrUTCPpepusViq2hCNL6PXfng1i0a9r8VbOLiLHl7WpGJDSwdWXXhJWcKpjztwHM8/4m
1k/fL4OO9MTYysJdco2EGkGJa7gSvsorR0IB6OwNzfKKafMBs0Napl5LFPUvB+KAEG0UUKCCMkZSfauJxQS+OzeguDZyRx8ds54DjdaJJNIbItTzHuAFU8Wy/snOKC85qHM2q1s3sgXNe0hWNF7Jx52QV2ovexK/fISlUs58SlndVQBWMveTTSafU/G0eNw09rwr6BiFTTLY/46jUcYZ8Eq9nbIuqdVE5pZKFX4Aaw04R0="}),s[10]||(s[10]=n(`<h3 id="æµç¨" tabindex="-1"><a class="header-anchor" href="#æµç¨"><span>æµç¨</span></a></h3><ol><li><strong><code>effective_hot_reload()</code></strong> ä¸ºçæ¶ï¼<strong>FileWatcherService</strong> çæ§ <code>plugins/</code>ï¼æé ç½®ç <code>plugin.plugins_dir</code>ï¼ä¸çæä»¶åæ´</li><li>æ£æµå°åååï¼å°åæ´çæä»¶å¤¹åæ¾å ¥ <code>_reload_queue</code>ï¼çº¿ç¨å®å ¨ï¼</li><li><strong><code>_reload_consumer</code></strong> 弿¥ä»»å¡ä»éåä¸ååºï¼æ å°å°æä»¶å</li><li>æ§è¡å®æ´ç <strong>å¸è½½ â éæ°æ«æ â å è½½</strong> 卿</li></ol><h3 id="å¼åä½éª" tabindex="-1"><a class="header-anchor" href="#å¼åä½éª"><span>å¼åä½éª</span></a></h3><p>å¨å¯ç¨çéè½½ï¼<code>plugin.hot_reload: true</code> 䏿ªè¢« CLI å ³éï¼æ¶ï¼ä¿®æ¹æä»¶ä»£ç åä¿åæä»¶ï¼Bot èªå¨å®æéè½½ââæ éæå¨éå¯ï¼ä¸æ¯å¦å¼å¯ <code>debug</code> æ å ³ï¼ã</p><h3 id="注æäºé¡¹" tabindex="-1"><a class="header-anchor" href="#注æäºé¡¹"><span>注æäºé¡¹</span></a></h3><ul><li>çéè½½ä¼æ§è¡å®æ´çå¸è½½/å è½½å¨æï¼<strong><code>on_close()</code> â Mixin ä¿å â æ¸ ç â éæ°å è½½ â <code>on_load()</code></strong></li><li>å ¨å±åéä¼è¢«éç½®ââç¶æåºä¿åå¨ <code>self.data</code> ä¸ï¼DataMixin èªå¨æä¹ åï¼</li><li>Handler ä¼è¢«æ¤éå¹¶éæ°æ³¨åââç¡®ä¿ææ Handler é½å¨ç±»å®ä¹æ <code>on_load()</code> 䏿³¨å</li><li><code>__pycache__</code> ä¼è¢«èªå¨æ¸ é¤ï¼ç¡®ä¿æ°ä»£ç çæ</li></ul><hr><h2 id="æä»¶ä¾èµç®¡ç" tabindex="-1"><a class="header-anchor" href="#æä»¶ä¾èµç®¡ç"><span>æä»¶ä¾èµç®¡ç</span></a></h2><h3 id="æä»¶é´ä¾èµ" tabindex="-1"><a class="header-anchor" href="#æä»¶é´ä¾èµ"><span>æä»¶é´ä¾èµ</span></a></h3><p>å¨ <code>manifest.toml</code> ä¸éè¿ <code>[dependencies]</code> 声æå¯¹å ¶ä»æä»¶çä¾èµï¼</p><div class="language-toml line-numbers-mode" data-ext="toml" data-title="toml"><button class="copy" title="å¤å¶ä»£ç " data-copied="å·²å¤å¶"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">dependencies</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span></span> 2<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">rbac</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">>=1.0.0</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span></span> 3<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">config_manager</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">>=0.5.0</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="æææåº" tabindex="-1"><a class="header-anchor" href="#æææåº"><span>æææåº</span></a></h3><p>æ¡æ¶ä½¿ç¨ <strong>Kahn ç®æ³</strong>å¯¹æææä»¶è¿è¡æææåºï¼ç¡®ä¿è¢«ä¾èµçæä»¶å å è½½ï¼</p><div class="language-yaml line-numbers-mode" data-ext="yaml" data-title="yaml"><button class="copy" title="å¤å¶ä»£ç " data-copied="å·²å¤å¶"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">妿 A ä¾èµ Bï¼B ä¾èµ Cï¼</span></span> 4<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">å 载顺åº</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> C â B â A</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="éè¯¯æ£æµ" tabindex="-1"><a class="header-anchor" href="#éè¯¯æ£æµ"><span>éè¯¯æ£æµ</span></a></h3><table><thead><tr><th>
4é误类å</th><th>说æ</th></tr></thead><tbody><tr><td><code>PluginMissingDependencyError</code></td><td>ä¾èµçæä»¶ä¸åå¨</td></tr><tr><td><code>PluginCircularDependencyError</code></td><td>æ£æµå°å¾ªç¯ä¾èµï¼A â B â Aï¼</td></tr><tr><td><code>PluginVersionError</code></td><td>çæ¬çº¦æä¸æ»¡è¶³</td></tr></tbody></table><h3 id="pip-ä¾èµ" tabindex="-1"><a class="header-anchor" href="#pip-ä¾èµ"><span>pip ä¾èµ</span></a></h3><p>å¨ <code>manifest.toml</code> ç <code>[pip_dependencies]</code> ä¸å£°æ Python å ä¾èµï¼</p><div class="language-toml line-numbers-mode" data-ext="toml" data-title="toml"><button class="copy" title="å¤å¶ä»£ç " data-copied="å·²å¤å¶"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">pip_dependencies</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span></span> 5<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">aiohttp</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">>=3.8.0</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span></span> 6<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">beautifulsoup4</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">>=4.12.0</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>æ¡æ¶å¨å è½½æ¶ä¼èªå¨æ£æ¥è¿äºå æ¯å¦å·²å®è£ ï¼æªå®è£ æ¶æç¤ºç¨æ·ç¡®è®¤å®è£ ã</p>`,20)),a("blockquote",null,[a("p",null,[s[1]||(s[1]=i("示ä¾ï¼")),h(t,{to:"/examples/common/06_external_api/"},{default:l(()=>s[0]||(s[0]=[i("examples/common/06_external_api/manifest.toml")])),_:1}),s[2]||(s[2]=i(" 声æäº ")),s[3]||(s[3]=a("code",null,"aiohttp",-1)),s[4]||(s[4]=i(" ä¾èµã"))])]),s[11]||(s[11]=n(`<h3 id="çæ¬çº¦æè¯æ³" tabindex="-1"><a class="header-anchor" href="#çæ¬çº¦æè¯æ³"><span>çæ¬çº¦æè¯æ³</span></a></h3><p>ä½¿ç¨ Python <code>packaging.specifiers</code> æ åè¯æ³ï¼</p><table><thead><tr><th>è¯æ³</th><th>å«ä¹</th></tr></thead><tbody><tr><td><code>>=1.0.0</code></td><td>大äºçäº 1.0.0</td></tr><tr><td><code>>=1.0.0,<2.0.0</code></td><td>大äºçäº 1.0.0 ä¸å°äº 2.0.0</td></tr><tr><td><code>==1.2.3</code></td><td>精确å¹é </td></tr><tr><td><code>~=1.4</code></td><td>å ¼å®¹çæ¬ï¼â¥1.4, <2.0ï¼</td></tr></tbody></table><hr><h2 id="è·¨æä»¶äº¤äº" tabindex="-1"><a class="header-anchor" href="#è·¨æä»¶äº¤äº"><span>è·¨æä»¶äº¤äº</span></a></h2><h3 id="è·åå ¶ä»æä»¶å®ä¾" tabindex="-1"><a class="header-anchor" href="#è·åå ¶ä»æä»¶å®ä¾"><span>è·åå ¶ä»æä»¶å®ä¾</span></a></h3><div class="language-python line-numbers-mode" data-ext="python" data-title="python"><button class="copy" title="å¤å¶ä»£ç " data-copied="å·²å¤å¶"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> MyPlugin</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">NcatBotPlugin</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">):</span></span> 7<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> name </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">my_plugin</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span></span> 8<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> version </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">1.0.0</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span></span> 9<span class="line"></span> 10<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> async</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> def</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> on_load</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">
10self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">):</span></span> 11<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> # è·åå ¶ä»æä»¶å®ä¾</span></span> 12<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> rbac_plugin </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">get_plugin</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">rbac</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 13<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> rbac_plugin</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span> 14<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> LOG</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">info</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">RBAC æä»¶å·²å è½½: </span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">%s</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> rbac_plugin</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">version</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 15<span class="line"></span> 16<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> # ååºææå·²å è½½æä»¶</span></span> 17<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> all_plugins </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">list_plugins</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span></span> 18<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> LOG</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">info</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">å·²å è½½æä»¶: </span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">%s</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> all_plugins</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="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><h3 id="è·¨æä»¶-python-å¯¼å ¥" tabindex="-1"><a class="header-anchor" href="#è·¨æä»¶-python-å¯¼å ¥"><span>è·¨æä»¶ Python å¯¼å ¥</span></a></h3><p>æ¡æ¶å° <code>plugins/</code> ç®å½æ·»å å° <code>sys.path</code>ï¼æ¯ä¸ªæä»¶æä»¶å¤¹ç¸å½äºä¸ä¸ª Python å ãå æ¤å¯ä»¥ç´æ¥å¯¼å ¥å ¶ä»æä»¶ç模åï¼</p><div class="language-python line-numbers-mode" data-ext="python" data-title="python"><button class="copy" title="å¤å¶ä»£ç " data-copied="å·²å¤å¶"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># å¨ plugin_a/main.py ä¸å¯¼å ¥ plugin_b çæ¨¡å</span></span> 19<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">from</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> plugin_b</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">utils </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">
19import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> some_helper</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>注æ</strong>ï¼</p><ul><li>使ç¨è·¨æä»¶å¯¼å ¥æ¶ï¼å¡å¿ å¨ <code>manifest.toml</code> ä¸å£°æä¾èµå ³ç³»ï¼ç¡®ä¿å è½½é¡ºåºæ£ç¡®</li><li>æä»¶æ ¹ç®å½å¨ <code>sys.path</code> ä¸çä¼å 级ä½äºæ ååºåç¬¬ä¸æ¹å </li></ul><hr><h2 id="夿¥å¯¹è¯è®¾è®¡" tabindex="-1"><a class="header-anchor" href="#夿¥å¯¹è¯è®¾è®¡"><span>夿¥å¯¹è¯è®¾è®¡</span></a></h2><p>夿¥å¯¹è¯æ¯ Bot å¼åä¸ç常è§éæ±ââéè¿ <code>wait_event()</code> 串èå¤è½®äº¤äºã</p><h3 id="设计模å¼" tabindex="-1"><a class="header-anchor" href="#设计模å¼"><span>设计模å¼</span></a></h3>`,16)),h(k,{id:"mermaid-269",code:"eJxLy8kvT85ILCpRCHHiUgACZ1+X6OdTVjzr2P60f+LLhsanE/c+2b0kVkFX104hOMQ1wDD62dqlL1ctUTC0UnixftHL6etiwfrAcmBV4Y6eIYbR5YmZJfGpZal5JVYKz9d2Pt3X+nT2vKdLeiGqwWpAqmtebGt9Nn1bjYKzo5+zq0/00/5pz7Z1oCtSgggrwZShST+b0/lsagfE/BqwS4xgrjQC2r57+fPda9HdagR3qxERbgWrRnMrmiSqI5z9/dw8g3yjny9c92LdEohjIMZBZSAB6hjmGv1k/9yna2c8m7rhWS/QfQB1eafo"}),s[12]||(s[12]=n(`<h3 id="å°è£ è¾ å©æ¹æ³" tabindex="-1"><a class="header-anchor" href="#å°è£ è¾ å©æ¹æ³"><span>å°è£ è¾ å©æ¹æ³</span></a></h3><p>æ¨èå° <code>wait_event</code> çéç¨é»è¾å°è£ ä¸ºè¾ å©æ¹æ³ï¼</p><div class="language-python line-numbers-mode" data-ext="python" data-title="python"><button class="copy" title="å¤å¶ä»£ç " data-copied="å·²å¤å¶"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">TIMEOUT</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 30</span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> # æ¯æ¥è¶ æ¶ç§æ°</span></span> 20<span class="line"></span> 21<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">async</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> def</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> _wait_user_reply</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> group_id</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> user_id</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">):</span></span> 22<span class="line"><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> """</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">çå¾ æå®ç¨æ·å¨æå®ç¾¤çä¸ä¸æ¡æ¶æ¯</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"""</span></span> 23<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> event </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">wait_event</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span></span> 24<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> predicate</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">lambda</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> e</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> (</span></span> 25<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> hasattr</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">e</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">data</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">user_id</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 26<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> and</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">e</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">data</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">user_id</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> ==</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">user_id</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 27<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> and</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> hasattr</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">e</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">data</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">group_id</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 28<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> and</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">e</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">data</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">group_id</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> ==</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">group_id</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 29<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> and</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> hasattr</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">e</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">data</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">raw_message</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 30<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ),</span></span> 31<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> timeout</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">
31TIMEOUT</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span> 32<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> )</span></span> 33<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> event</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">data</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">raw_message</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">strip</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="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><h3 id="宿´å¤æ¥å¯¹è¯ç¤ºä¾" tabindex="-1"><a class="header-anchor" href="#宿´å¤æ¥å¯¹è¯ç¤ºä¾"><span>宿´å¤æ¥å¯¹è¯ç¤ºä¾</span></a></h3><div class="language-python line-numbers-mode" data-ext="python" data-title="python"><button class="copy" title="å¤å¶ä»£ç " data-copied="å·²å¤å¶"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">@</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">registrar</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">on_group_command</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">注å</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 34<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">async</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> def</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> on_register</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> event</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> GroupMessageEvent</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">):</span></span> 35<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> uid </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> event</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">group_id</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> event</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">user_id</span></span> 36<span class="line"></span> 37<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> # æ¥éª¤ 1: 询é®åå</span></span> 38<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> event</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">reply</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">f</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">"ð 请è¾å ¥ä½ çååï¼</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">{TIMEOUT}</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">ç§å åå¤ï¼è¾å ¥ãåæ¶ãéåºï¼ï¼"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 39<span class="line"></span> 40<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> try</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span> 41<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> name </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">_wait_user_reply</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> uid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 42<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> except</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> asyncio</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">TimeoutError</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span> 43<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">api</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">qq</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">
43post_group_msg</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> text</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">Ⱐ注åè¶ æ¶ï¼å·²åæ¶</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 44<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span></span> 45<span class="line"></span> 46<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> name </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">åæ¶</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span> 47<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">api</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">qq</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">post_group_msg</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> text</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">â æ³¨å已忶</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 48<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span></span> 49<span class="line"></span> 50<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> # æ¥éª¤ 2: 询é®å¹´é¾</span></span> 51<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">api</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">qq</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">post_group_msg</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> text</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">f</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">"好çï¼</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">{</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">name</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">}</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">ï¼è¯·è¾å ¥ä½ çå¹´é¾ï¼"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 52<span class="line"></span> 53<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> try</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span> 54<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> age_str </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">_wait_user_reply</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> uid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 55<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> except</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> asyncio</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">TimeoutError</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span> 56<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">api</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">qq</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">
56post_group_msg</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> text</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">Ⱐ注åè¶ æ¶ï¼å·²åæ¶</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 57<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span></span> 58<span class="line"></span> 59<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> age_str </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">åæ¶</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span> 60<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">api</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">qq</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">post_group_msg</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> text</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">â æ³¨å已忶</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 61<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span></span> 62<span class="line"></span> 63<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> not</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> age_str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">isdigit</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">():</span></span> 64<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">api</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">qq</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">post_group_msg</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> text</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">â å¹´é¾å¿ é¡»æ¯æ°åï¼æ³¨å已忶</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 65<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span></span> 66<span class="line"></span> 67<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> age </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> int</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">age_str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 68<span class="line"></span> 69<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> # æ¥éª¤ 3: 确认</span></span> 70<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">api</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">qq</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">
70post_group_msg</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span></span> 71<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span> 72<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> text</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">f</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">"è¯·ç¡®è®¤ä½ çä¿¡æ¯:</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">\\n</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> åå: </span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">{</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">name</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">}\\n</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> å¹´é¾: </span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">{</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">age</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">}\\n</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">åå¤ã确认ãå®ææ³¨åï¼"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span> 73<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> )</span></span> 74<span class="line"></span> 75<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> try</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span> 76<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> confirm </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">_wait_user_reply</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> uid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 77<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> except</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> asyncio</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">TimeoutError</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span> 78<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">api</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">qq</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">post_group_msg</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> text</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">â° ç¡®è®¤è¶ æ¶ï¼å·²åæ¶</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 79<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span></span> 80<span class="line"></span> 81<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> confirm </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">!=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">确认</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span> 82<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">api</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">qq</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">
82post_group_msg</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> text</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">â æ³¨å已忶</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 83<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span></span> 84<span class="line"></span> 85<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> # ä¿åæ°æ®</span></span> 86<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">data</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">setdefault</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">users</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {})[</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">uid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)]</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">name</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> name</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">age</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> age</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span> 87<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">api</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">qq</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">post_group_msg</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">gid</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> text</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">f</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">"â æ³¨åæåï¼æ¬¢è¿ä½ ï¼</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">
87{</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">name</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">}</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">ï¼</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">{</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">age</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">}</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">å²ï¼"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="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>`,5)),a("blockquote",null,[a("p",null,[s[6]||(s[6]=i("宿´ä»£ç ï¼")),h(t,{to:"/examples/qq/07_dialog_and_menu/"},{default:l(()=>s[5]||(s[5]=[i("examples/qq/07_dialog_and_menu/main.py")])),_:1})])]),s[13]||(s[13]=n('<h3 id="设计è¦ç¹" tabindex="-1"><a class="header-anchor" href="#设计è¦ç¹"><span>设计è¦ç¹</span></a></h3><table><thead><tr><th>è¦ç¹</th><th>说æ</th></tr></thead><tbody><tr><td><strong>è¶
æ¶å¤ç</strong></td><td>æ¯æ¥é½åºè®¾ç½®è¶
æ¶ï¼<code>asyncio.TimeoutError</code>ï¼</td></tr><tr><td><strong>åæ¶æºå¶</strong></td><td>æ£æµç¨æ·è¾å
¥"åæ¶"以éåºæµç¨</td></tr><tr><td><strong>è¾å
¥éªè¯</strong></td><td>卿¯æ¥éªè¯è¾å
¥åæ³æ§</td></tr><tr><td><strong>ç¶ææä¹
å</strong></td><td>ç»æä¿åå° <code>self.data</code>ï¼DataMixinï¼</td></tr><tr><td><strong>ç¨æ·é离</strong></td><td><code>predicate</code> ä¸éå® <code>user_id</code> + <code>group_id</code></td></tr></tbody></table><hr><h2 id="äºä»¶é©±å¨å·¥ä½æµç¼æ" tabindex="-1"><a class="header-anchor" href="#äºä»¶é©±å¨å·¥ä½æµç¼æ"><span>äºä»¶é©±å¨å·¥ä½æµç¼æ</span></a></h2><p>å½éæ±è¶
è¶çº¿æ§å¤æ¥å¯¹è¯ââéè¦çå¾
çå½å¨æäºä»¶ãå¹¶ååè°å¤ä¸ªä»»å¡ãæå¨éæä»¶æ¨¡å¼ä¸ç¨ <code>run_async()</code> èªè¡ç¼æââæ¬èæä¾å¸¸è§æ¨¡å¼ã</p><h3 id="使¶ç¨è£
饰å¨-vs-wait-event-ç¼æ" tabindex="-1"><a class="header-anchor" href="#使¶ç¨è£
饰å¨-vs-wait-event-ç¼æ"><span>使¶ç¨è£
é¥°å¨ vs wait_event ç¼æ</span></a></h3><table><thead><tr><th>åºæ¯</th><th>æ¨èæ¹å¼</th><th>åå </th></tr></thead><tbody><tr><td>åå½ä»¤ â åååº</td><td>è£
饰å¨ï¼æ¨¡å¼ Aï¼</td><td>声æå¼ï¼æ¡æ¶èªå¨è·¯ç±</td></tr><tr><td>å½ä»¤ â çç¨æ·åå¤ â 宿</td><td>è£
饰å¨è§¦å + <code>wait_event</code></td><td>çº¿æ§æµç¨ï¼handler å
é¡ºåºæ§è¡</td></tr><tr><td>å¯å¨åèªå®ä¹ç¼æé»è¾</td><td><code>run_async()</code> + dispatcher</td><td>è±ç¦»æä»¶ä½ç³»ï¼å®å
¨ææ§æ§è¡æµ</td></tr><tr><td>åå°æç»çæ§ + ææ¡ä»¶è§¦å</td><td><code>events()</code> æµ + <code>create_task</code></td><td>ååºå¼ï¼é¿æè¿è¡</td></tr><tr><td>å¤äººå¹¶åè¾å
¥æ¶é</td><td>å¤ä¸ª <code>wait_event</code> + <code>asyncio.wait</code></td><td>å¹¶åçå¾
ï¼å
å°å
å¾</td></tr></tbody></table><hr><h2 id="ä¸ä¸æ¥" tabindex="-1"><a class="header-anchor" href="#ä¸ä¸æ¥"><span>ä¸ä¸æ¥</span></a></h2>',9)),a("ul",null,[a("li",null,[h(t,{to:"/notes/guide/3.%20%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91/11.%20%E6%A1%88%E4%BE%8B%E7%A0%94%E7%A9%B6.html"},{default:l(()=>s[7]||(s[7]=[i("宿æ¡ä¾ä¸è°è¯")])),_:1}
87),s[8]||(s[8]=i(" â 综å宿æ¡ä¾åæãè°è¯ä¸ææ¥"))])])])}const c=p(g,[["render",y],["__file","index.html.vue"]]),D=JSON.parse('{"path":"/guide/uwanjc8v/","title":"é«çº§æ¨¡å¼","lang":"zh-CN","frontmatter":{"title":"é«çº§æ¨¡å¼","createTime":"2026/03/19 17:26:45","permalink":"/guide/uwanjc8v/","description":"çéè½½ãä¾èµç®¡çãè·¨æä»¶äº¤äºã夿¥å¯¹è¯è®¾è®¡ãäºä»¶é©±å¨å·¥ä½æµç¼æã ç®å½ çéè½½æºå¶ æä»¶ä¾èµç®¡ç è·¨æä»¶äº¤äº 夿¥å¯¹è¯è®¾è®¡ äºä»¶é©±å¨å·¥ä½æµç¼æ çéè½½æºå¶ NcatBot æ¯æå¼åæ¶ä¿®æ¹æä»¶ä»£ç åèªå¨éè½½ï¼æ éé坿´ä¸ª Botã å·¥ä½åç æµç¨ effective_hot_reload() ä¸ºçæ¶ï¼FileWatcherService çæ§ plugi...","head":[["meta",{"property":"og:url","content":"http://docs.ncatbot.xyz/guide/uwanjc8v/"}],["meta",{"property":"og:site_name","content":"NcatBot ææ¡£"}],["meta",{"property":"og:title","content":"é«çº§æ¨¡å¼"}],["meta",{"property":"og:description","content":"çéè½½ãä¾èµç®¡çãè·¨æä»¶äº¤äºã夿¥å¯¹è¯è®¾è®¡ãäºä»¶é©±å¨å·¥ä½æµç¼æã ç®å½ çéè½½æºå¶ æä»¶ä¾èµç®¡ç è·¨æä»¶äº¤äº 夿¥å¯¹è¯è®¾è®¡ äºä»¶é©±å¨å·¥ä½æµç¼æ çéè½½æºå¶ NcatBot æ¯æå¼åæ¶ä¿®æ¹æä»¶ä»£ç åèªå¨éè½½ï¼æ éé坿´ä¸ª Botã å·¥ä½åç æµç¨ effective_hot_reload() ä¸ºçæ¶ï¼FileWatcherService çæ§ plugi..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-04-17T14:13:00.000Z"}],["meta",{"property":"article:modified_time","content":"2026-04-17T14:13:00.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"é«çº§æ¨¡å¼\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-04-17T14:13:00.000Z\\",\\"author\\":[]}"]]},"headers":[],"readingTime":{"minutes":5.32,"words":1596},"git":{"updatedTime":1776435180000,"contributors":[{"name":"GEYUANwuqi","username":"GEYUANwuqi","email":"[email protected]","commits":1,"avatar":"https://gravatar.com/avatar/1cf26d82e91dff657f3fa4d4911cdabcf7b76396339e886e69f99b15d4c8c808?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/guide/3. æä»¶å¼å/10. 模å¼.md"}');export{c as comp,D as data};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.