qq-bot-roost 0.8.13 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -5
- package/package.json +1 -1
- package/src/api.js +18 -5
- package/src/bot.js +231 -1
- package/src/config.js +35 -0
- package/src/gate.js +325 -0
- package/src/ledger.js +513 -0
- package/src/main.js +1389 -1364
- package/src/message-bus.js +1 -1
- package/src/message.js +3 -3
- package/src/outbound.js +65 -15
- package/src/paths.js +20 -0
- package/src/pipeline.js +10 -1
- package/src/plugin/context.js +890 -817
- package/src/plugin/loader.js +938 -929
- package/src/reach.js +364 -0
- package/src/runtime.js +8 -1
- package/src/storage/events-schema.js +71 -0
- package/src/web/qq-call.js +1 -1
- package/src/web/server.js +263 -1
- package/web/app.js +244 -0
- package/web/index.html +107 -0
package/web/index.html
CHANGED
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
<div class="tab-menu" hidden>
|
|
57
57
|
<button class="tab-item" data-tab="stats">统计</button>
|
|
58
58
|
<button class="tab-item" data-tab="events">事件</button>
|
|
59
|
+
<button class="tab-item" data-tab="reach">可达性</button>
|
|
59
60
|
<button class="tab-item" data-tab="logs">日志</button>
|
|
60
61
|
</div>
|
|
61
62
|
</div>
|
|
@@ -169,6 +170,25 @@
|
|
|
169
170
|
</div>
|
|
170
171
|
</div>
|
|
171
172
|
|
|
173
|
+
<!--
|
|
174
|
+
暂停闸:唯一的刹车,所以放在「发送消息(调试)」之前。
|
|
175
|
+
|
|
176
|
+
放在概览而不是单开一页:暂停是个紧急操作,要能在打开面板的第一屏
|
|
177
|
+
就找到。藏在二级菜单里的刹车,出事时想不起来。
|
|
178
|
+
-->
|
|
179
|
+
<div class="box" id="gateBox">
|
|
180
|
+
<div class="box-hd">
|
|
181
|
+
<h3>暂停闸</h3>
|
|
182
|
+
<span class="hint">关着就不对任何人说话。消息照样进账本,恢复后能补看</span>
|
|
183
|
+
</div>
|
|
184
|
+
<div class="form-inline">
|
|
185
|
+
<button class="btn" id="btnGateGlobal">全局暂停</button>
|
|
186
|
+
<button class="btn" id="btnGateBot">暂停这只鸟</button>
|
|
187
|
+
<span class="hint" id="gateState">-</span>
|
|
188
|
+
</div>
|
|
189
|
+
<div class="hint" id="gateReasons" hidden></div>
|
|
190
|
+
</div>
|
|
191
|
+
|
|
172
192
|
<div class="box">
|
|
173
193
|
<div class="box-hd"><h3>发送消息(调试)</h3></div>
|
|
174
194
|
<div class="form-inline">
|
|
@@ -494,6 +514,93 @@
|
|
|
494
514
|
</div>
|
|
495
515
|
</section>
|
|
496
516
|
|
|
517
|
+
<!-- 可达性 -->
|
|
518
|
+
<section id="tab-reach" class="panel">
|
|
519
|
+
<div class="box">
|
|
520
|
+
<div class="box-hd">
|
|
521
|
+
<h3>能不能主动找到人</h3>
|
|
522
|
+
<span class="hint">两道门:先得是好友,还得开着主动推送</span>
|
|
523
|
+
</div>
|
|
524
|
+
<ul class="tips">
|
|
525
|
+
<li><b>好友</b>是用户把机器人加为好友;<b>主动推送</b>是用户在机器人资料卡里单独开的开关——
|
|
526
|
+
<b>有好友也可能被关掉</b>,关了就发不出去</li>
|
|
527
|
+
<li>官方<b>没有查询好友的接口</b>,这里的值全部来自事件推送。机器人启动之前就存在的老关系拿不到事件,
|
|
528
|
+
会一直是「未知」</li>
|
|
529
|
+
<li><b>未知不等于不可达</b>——未知会照常尝试发送,失败了才记下来。把未知当成「不能」,
|
|
530
|
+
所有老用户就都被静音了</li>
|
|
531
|
+
</ul>
|
|
532
|
+
</div>
|
|
533
|
+
|
|
534
|
+
<div class="box">
|
|
535
|
+
<div class="box-hd">
|
|
536
|
+
<h3>单聊</h3>
|
|
537
|
+
<div class="btn-row" style="margin:0">
|
|
538
|
+
<button class="btn small" id="btnReloadReach">刷新</button>
|
|
539
|
+
</div>
|
|
540
|
+
</div>
|
|
541
|
+
<div class="table-wrap">
|
|
542
|
+
<table>
|
|
543
|
+
<thead>
|
|
544
|
+
<tr>
|
|
545
|
+
<th>用户</th>
|
|
546
|
+
<th>好友</th>
|
|
547
|
+
<th>主动推送</th>
|
|
548
|
+
<th>结论</th>
|
|
549
|
+
<th>依据</th>
|
|
550
|
+
<th>更新</th>
|
|
551
|
+
</tr>
|
|
552
|
+
</thead>
|
|
553
|
+
<tbody id="reachUserBody">
|
|
554
|
+
<tr><td colspan="6" class="empty">还没有记录。收到私聊消息、或被加好友之后才会出现。</td></tr>
|
|
555
|
+
</tbody>
|
|
556
|
+
</table>
|
|
557
|
+
</div>
|
|
558
|
+
<div class="hint" style="margin-top:8px">
|
|
559
|
+
每行的两个下拉框就是<b>人工标注</b>,改完立刻生效并覆盖事件推断的值;选「未知」等于撤销标注。
|
|
560
|
+
</div>
|
|
561
|
+
<div class="form-inline" style="margin-top:12px">
|
|
562
|
+
<input id="reachOpenidInput" placeholder="openid(列表里没有的人可以直接登记)">
|
|
563
|
+
<select id="reachFriendSel" class="mini-select">
|
|
564
|
+
<option value="">好友:未知</option>
|
|
565
|
+
<option value="1">好友:是</option>
|
|
566
|
+
<option value="0">好友:否</option>
|
|
567
|
+
</select>
|
|
568
|
+
<select id="reachPushSel" class="mini-select">
|
|
569
|
+
<option value="">推送:未知</option>
|
|
570
|
+
<option value="1">推送:开</option>
|
|
571
|
+
<option value="0">推送:关</option>
|
|
572
|
+
</select>
|
|
573
|
+
<button class="btn primary" id="btnReachSave">登记</button>
|
|
574
|
+
</div>
|
|
575
|
+
</div>
|
|
576
|
+
|
|
577
|
+
<div class="box">
|
|
578
|
+
<div class="box-hd">
|
|
579
|
+
<h3>群主动推送</h3>
|
|
580
|
+
<span class="hint">群管理员可以整个群关掉机器人的主动消息</span>
|
|
581
|
+
</div>
|
|
582
|
+
<div class="table-wrap">
|
|
583
|
+
<table>
|
|
584
|
+
<thead>
|
|
585
|
+
<tr>
|
|
586
|
+
<th>群</th>
|
|
587
|
+
<th>主动推送</th>
|
|
588
|
+
<th>操作人</th>
|
|
589
|
+
<th>依据</th>
|
|
590
|
+
<th>更新</th>
|
|
591
|
+
</tr>
|
|
592
|
+
</thead>
|
|
593
|
+
<tbody id="reachGroupBody">
|
|
594
|
+
<tr><td colspan="5" class="empty">还没有记录。群管理员改过推送开关之后才会出现。</td></tr>
|
|
595
|
+
</tbody>
|
|
596
|
+
</table>
|
|
597
|
+
</div>
|
|
598
|
+
<div class="hint" style="margin-top:8px">
|
|
599
|
+
没记录过的群按「未知」处理,照常尝试推送。
|
|
600
|
+
</div>
|
|
601
|
+
</div>
|
|
602
|
+
</section>
|
|
603
|
+
|
|
497
604
|
<!-- 群组 -->
|
|
498
605
|
<section id="tab-groups" class="panel">
|
|
499
606
|
<div class="box">
|