Skip to content

Commit

Permalink
Update doc by Github Action
Browse files Browse the repository at this point in the history
  • Loading branch information
aicorein committed Jan 27, 2025
1 parent 2698ff2 commit 700ecd3
Show file tree
Hide file tree
Showing 10 changed files with 145 additions and 75 deletions.
24 changes: 13 additions & 11 deletions _modules/melobot/protocols/onebot/v11/handle.html
Original file line number Diff line number Diff line change
Expand Up @@ -300,15 +300,14 @@
</div>
<article role="main" id="furo-main-content">
<h1>melobot.protocols.onebot.v11.handle 源代码</h1><div class="highlight"><pre>
<span></span><span class="kn">from</span><span class="w"> </span><span class="nn">contextlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">_AsyncGeneratorContextManager</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">functools</span><span class="w"> </span><span class="kn">import</span> <span class="n">wraps</span>
<span></span><span class="kn">from</span><span class="w"> </span><span class="nn">functools</span><span class="w"> </span><span class="kn">import</span> <span class="n">wraps</span>

<span class="kn">from</span><span class="w"> </span><span class="nn">typing_extensions</span><span class="w"> </span><span class="kn">import</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">cast</span>

<span class="kn">from</span><span class="w"> </span><span class="nn">melobot.ctx</span><span class="w"> </span><span class="kn">import</span> <span class="n">Context</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">melobot.di</span><span class="w"> </span><span class="kn">import</span> <span class="n">Depends</span><span class="p">,</span> <span class="n">inject_deps</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">melobot.handle</span><span class="w"> </span><span class="kn">import</span> <span class="n">Flow</span><span class="p">,</span> <span class="n">get_event</span><span class="p">,</span> <span class="n">no_deps_node</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">melobot.session</span><span class="w"> </span><span class="kn">import</span> <span class="n">Rule</span><span class="p">,</span> <span class="n">Session</span><span class="p">,</span> <span class="n">enter_session</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">melobot.session</span><span class="w"> </span><span class="kn">import</span> <span class="n">Rule</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">melobot.typ</span><span class="w"> </span><span class="kn">import</span> <span class="n">AsyncCallable</span><span class="p">,</span> <span class="n">HandleLevel</span><span class="p">,</span> <span class="n">LogicMode</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">melobot.utils</span><span class="w"> </span><span class="kn">import</span> <span class="n">get_obj_name</span>

Expand Down Expand Up @@ -338,17 +337,20 @@ <h1>melobot.protocols.onebot.v11.handle 源代码</h1><div class="highlight"><pr

<span class="n">FlowDecorator</span> <span class="o">=</span> <span class="n">Callable</span><span class="p">[[</span><span class="n">AsyncCallable</span><span class="p">[</span><span class="o">...</span><span class="p">,</span> <span class="nb">bool</span> <span class="o">|</span> <span class="kc">None</span><span class="p">]],</span> <span class="n">Flow</span><span class="p">]</span>

<span class="n">_DefaultRule</span> <span class="o">=</span> <span class="n">Rule</span><span class="p">[</span><span class="n">MessageEvent</span><span class="p">]</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="k">lambda</span> <span class="n">e1</span><span class="p">,</span> <span class="n">e2</span><span class="p">:</span> <span class="n">e1</span><span class="o">.</span><span class="n">scope</span> <span class="o">==</span> <span class="n">e2</span><span class="o">.</span><span class="n">scope</span><span class="p">)</span>

<div class="viewcode-block" id="DefaultRule">
<a class="viewcode-back" href="../../../../../ob_api/v11.handle.html#melobot.protocols.onebot.v11.handle.DefaultRule">[文档]</a>
<span class="k">class</span><span class="w"> </span><span class="nc">DefaultRule</span><span class="p">(</span><span class="n">Rule</span><span class="p">[</span><span class="n">MessageEvent</span><span class="p">]):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;传统的会话规则(只针对消息事件)</span>

<div class="viewcode-block" id="msg_session">
<a class="viewcode-back" href="../../../../../ob_api/v11.handle.html#melobot.protocols.onebot.v11.handle.msg_session">[文档]</a>
<span class="k">def</span><span class="w"> </span><span class="nf">msg_session</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">_AsyncGeneratorContextManager</span><span class="p">[</span><span class="n">Session</span><span class="p">]:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;消息事件的会话上下文管理器</span>

<span class="sd"> 展开一个传统意义上的消息会话上下文,这与其他 bot 开发框架中的“会话”语义等价</span>
<span class="sd"> 两消息事件如果在同一发送渠道,且由同一人发送,则在同一会话中</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">enter_session</span><span class="p">(</span><span class="n">_DefaultRule</span><span class="p">)</span></div>

<div class="viewcode-block" id="DefaultRule.compare">
<a class="viewcode-back" href="../../../../../ob_api/v11.handle.html#melobot.protocols.onebot.v11.handle.DefaultRule.compare">[文档]</a>
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">compare</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e1</span><span class="p">:</span> <span class="n">MessageEvent</span><span class="p">,</span> <span class="n">e2</span><span class="p">:</span> <span class="n">MessageEvent</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="k">return</span> <span class="n">e1</span><span class="o">.</span><span class="n">scope</span> <span class="o">==</span> <span class="n">e2</span><span class="o">.</span><span class="n">scope</span></div>
</div>



Expand Down
62 changes: 41 additions & 21 deletions _modules/melobot/protocols/onebot/v11/utils/check.html
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,9 @@
</div>
<article role="main" id="furo-main-content">
<h1>melobot.protocols.onebot.v11.utils.check 源代码</h1><div class="highlight"><pre>
<span></span><span class="kn">from</span><span class="w"> </span><span class="nn">enum</span><span class="w"> </span><span class="kn">import</span> <span class="n">Enum</span>
<span></span><span class="kn">from</span><span class="w"> </span><span class="nn">__future__</span><span class="w"> </span><span class="kn">import</span> <span class="n">annotations</span>

<span class="kn">from</span><span class="w"> </span><span class="nn">enum</span><span class="w"> </span><span class="kn">import</span> <span class="n">Enum</span>

<span class="kn">from</span><span class="w"> </span><span class="nn">typing_extensions</span><span class="w"> </span><span class="kn">import</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">cast</span>

Expand Down Expand Up @@ -331,8 +333,43 @@ <h1>melobot.protocols.onebot.v11.utils.check 源代码</h1><div class="highlight

<span class="n">OWNER</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="mi">2</span>
<span class="n">ADMIN</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="mi">1</span>
<span class="n">MEMBER</span> <span class="o">=</span> <span class="mi">1</span></div>
<span class="n">MEMBER</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">NOT_IN_GROUP</span> <span class="o">=</span> <span class="mi">0</span></div>



<span class="k">def</span><span class="w"> </span><span class="nf">get_level_role</span><span class="p">(</span><span class="n">checker</span><span class="p">:</span> <span class="n">MsgChecker</span><span class="p">,</span> <span class="n">event</span><span class="p">:</span> <span class="n">MessageEvent</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LevelRole</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;获得消息事件对应的分级权限等级</span>

<span class="sd"> :param event: 消息事件</span>
<span class="sd"> :return: 分级权限等级</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">qid</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">user_id</span>

<span class="k">if</span> <span class="n">qid</span> <span class="ow">in</span> <span class="n">checker</span><span class="o">.</span><span class="n">black_list</span><span class="p">:</span>
<span class="k">return</span> <span class="n">LevelRole</span><span class="o">.</span><span class="n">BLACK</span>
<span class="k">if</span> <span class="n">qid</span> <span class="o">==</span> <span class="n">checker</span><span class="o">.</span><span class="n">owner</span><span class="p">:</span>
<span class="k">return</span> <span class="n">LevelRole</span><span class="o">.</span><span class="n">OWNER</span>
<span class="k">if</span> <span class="n">qid</span> <span class="ow">in</span> <span class="n">checker</span><span class="o">.</span><span class="n">su_list</span><span class="p">:</span>
<span class="k">return</span> <span class="n">LevelRole</span><span class="o">.</span><span class="n">SU</span>
<span class="k">if</span> <span class="n">qid</span> <span class="ow">in</span> <span class="n">checker</span><span class="o">.</span><span class="n">white_list</span><span class="p">:</span>
<span class="k">return</span> <span class="n">LevelRole</span><span class="o">.</span><span class="n">WHITE</span>
<span class="k">return</span> <span class="n">LevelRole</span><span class="o">.</span><span class="n">NORMAL</span>


<span class="k">def</span><span class="w"> </span><span class="nf">get_group_role</span><span class="p">(</span><span class="n">event</span><span class="p">:</span> <span class="n">MessageEvent</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GroupRole</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;获得消息事件对应的群权限等级</span>

<span class="sd"> :param event: 消息事件</span>
<span class="sd"> :return: 群权限等级</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">event</span><span class="o">.</span><span class="n">is_group</span><span class="p">():</span>
<span class="k">return</span> <span class="n">cast</span><span class="p">(</span><span class="n">GroupRole</span><span class="p">,</span> <span class="n">GroupRole</span><span class="o">.</span><span class="n">NOT_IN_GROUP</span><span class="p">)</span>
<span class="k">if</span> <span class="n">event</span><span class="o">.</span><span class="n">sender</span><span class="o">.</span><span class="n">is_group_owner</span><span class="p">():</span>
<span class="k">return</span> <span class="n">GroupRole</span><span class="o">.</span><span class="n">OWNER</span>
<span class="k">if</span> <span class="n">event</span><span class="o">.</span><span class="n">sender</span><span class="o">.</span><span class="n">is_group_admin</span><span class="p">():</span>
<span class="k">return</span> <span class="n">GroupRole</span><span class="o">.</span><span class="n">ADMIN</span>
<span class="k">return</span> <span class="n">GroupRole</span><span class="o">.</span><span class="n">MEMBER</span>


<div class="viewcode-block" id="MsgChecker">
Expand Down Expand Up @@ -376,25 +413,8 @@ <h1>melobot.protocols.onebot.v11.utils.check 源代码</h1><div class="highlight
<span class="w"> </span><span class="sd">&quot;&quot;&quot;获得事件对应的登记&quot;&quot;&quot;</span>

<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">check_role</span><span class="p">,</span> <span class="n">LevelRole</span><span class="p">):</span>
<span class="n">qid</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">user_id</span>

<span class="k">if</span> <span class="n">qid</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">black_list</span><span class="p">:</span>
<span class="k">return</span> <span class="n">LevelRole</span><span class="o">.</span><span class="n">BLACK</span>
<span class="k">if</span> <span class="n">qid</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="p">:</span>
<span class="k">return</span> <span class="n">LevelRole</span><span class="o">.</span><span class="n">OWNER</span>
<span class="k">if</span> <span class="n">qid</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">su_list</span><span class="p">:</span>
<span class="k">return</span> <span class="n">LevelRole</span><span class="o">.</span><span class="n">SU</span>
<span class="k">if</span> <span class="n">qid</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">white_list</span><span class="p">:</span>
<span class="k">return</span> <span class="n">LevelRole</span><span class="o">.</span><span class="n">WHITE</span>
<span class="k">return</span> <span class="n">LevelRole</span><span class="o">.</span><span class="n">NORMAL</span>

<span class="k">if</span> <span class="ow">not</span> <span class="n">event</span><span class="o">.</span><span class="n">is_group</span><span class="p">():</span>
<span class="k">return</span> <span class="n">cast</span><span class="p">(</span><span class="n">GroupRole</span><span class="p">,</span> <span class="n">GroupRole</span><span class="o">.</span><span class="n">MEMBER</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span><span class="p">)</span>
<span class="k">if</span> <span class="n">event</span><span class="o">.</span><span class="n">sender</span><span class="o">.</span><span class="n">is_group_owner</span><span class="p">():</span>
<span class="k">return</span> <span class="n">GroupRole</span><span class="o">.</span><span class="n">OWNER</span>
<span class="k">if</span> <span class="n">event</span><span class="o">.</span><span class="n">sender</span><span class="o">.</span><span class="n">is_group_admin</span><span class="p">():</span>
<span class="k">return</span> <span class="n">GroupRole</span><span class="o">.</span><span class="n">ADMIN</span>
<span class="k">return</span> <span class="n">GroupRole</span><span class="o">.</span><span class="n">MEMBER</span>
<span class="k">return</span> <span class="n">get_level_role</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span>
<span class="k">return</span> <span class="n">get_group_role</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>

<span class="k">def</span><span class="w"> </span><span class="nf">_check</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">:</span> <span class="n">MessageEvent</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="n">e_level</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_level</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
Expand Down
Loading

0 comments on commit 700ecd3

Please sign in to comment.