azmiao / XQA

一个支持正则,支持回流,支持随机回答,支持图片等CQ码的你问我答
GNU General Public License v3.0
30 stars 5 forks source link

维护组提供的问答可否参考eqa #7

Closed yuuki-nya closed 2 years ago

yuuki-nya commented 2 years ago

XQA的维护组全群问答似乎是把bot的glist遍历一次然后分别加上这个问答,这么做有几个问题:

  1. 多gocqhttp接入的情况,只能获取当前bot的glist,其他bot的群无法获取,这点可以修改 get_g_list 函数解决;
  2. 维护租设置的问答后新加入的群无法获取这个问答;
  3. 维护组的全群问题必须用搜索,如果问的问题多了,不好维护。

综上所述,可否考虑参考xqa的维护组的“有人问”命令,单独作为一个问答数据存在数据库,所有群默认加载这组数据,也方便维护。

azmiao commented 2 years ago

另外,如果单独做个维护组的数据库,那么可能导致的问题:

azmiao commented 2 years ago

话说你要获取所有bot的群干啥,正常不应该就是用哪个bot获取哪个bot的内容吗,然后多cq接入的时候只相应接受命令的那个bot这样吗

yuuki-nya commented 2 years ago

因为风控的原因,我现在个gocq同时接入一个hoshino并分流群,我在bot 1的群发布了全群问答,除bot 1所在的群都没有这个问答,所以g_list我改为这种 for sid in hoshino.get_self_ids(): gl = await bot.get_group_list(self_id=sid) gl = [g['group_id'] for g in gl] 当然这个只是个人需求,你可以考虑要不要加上

azmiao commented 2 years ago

这是正常的,只会添加Bot所在的几个群,不能添加其他bot的群,不然多cq接入的时候全局加会炸的,所以要改不能单单只改这个,单改这个也会炸的,而且为了分bot控制还得单独加好几个命令来防止加错,得不偿失了。所以我建议还是保持原样,不然需要的改动太大了