Coder Social home page Coder Social logo

koishi-plugin-dialogue's Introduction

koishi-plugin-dialogue's People

Contributors

jiajiu123 avatar medicago087 avatar nikaidou-shinku avatar shigma avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

koishi-plugin-dialogue's Issues

使用指令插值后,问答添加成功但无法触发成功

853b6fe576937bd6caab897efaf1ff6b
版本:
dlalogue:4.1.3
dialogue-author :1.2.1
dialogue-context:1.0.4
dialogue-flow1.0.4
dialogue-time:1.0.3
dialogue-rate-limit:1.0.3
System:
OS: Windows 11 10.0.22631
CPU: (16) x64 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
Binaries:
Node: 20.3.1
Yarn: 4.1.0
Koishi:
Core: 4.17.4
Console: 5.26.5
Koishi Desktop: 1.0.2

使用:

你这样是会被红白笑的 => 你这样是要被红白笑的 -E

详情:
问答43的详细信息:
问题:你这样是会被红白笑的
回答:$(dialogue你这样是要被红白笑的)
生效环境:全局

日志无报错

使用MongoDB时,尝试查询问答数量时执行异常

发送查询问答数量的指令(按出厂设置,即 ## ),bot无答复

控制台有报错(密恐警告):

[W] session c:\Chatbot-SILI-v4\node_modules\@satorijs\adapter-onebot\lib\index.js:107
        throw new SenderError(params, action, retcode);
              ^

    Error: Error with request send_group_msg, args: {"group_id":"1029954579","message":[{"type":"text","data":{"text":"共收录了 [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Objec
t],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Ob
ject],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object
 Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[obj
ect Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[
object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object
],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Obj
ect],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object
Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[obje
ct Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[o
bject Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Obje
ct],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object O
bject],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[objec
t Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[ob
ject Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Objec
t],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Ob
ject],[object Object],[object Object],[object Object],[object Object] 个问题和 [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object
],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Obj
ect],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object
Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[obje
ct Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[o
bject Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Obje
ct],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object O
bject],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[objec
t Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[ob
ject Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Objec
t],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Ob
ject],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object
 Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[obj
ect Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[
object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object
],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Obj
ect],[object Object] 个回答。"}}]}, retcode: 100
        at Object._get (c:\Chatbot-SILI-v4\node_modules\@satorijs\adapter-onebot\lib\index.js:107:11)
        at processTicksAndRejections (node:internal/process/task_queues:96:5)
        at Object._Internal.<computed> (c:\Chatbot-SILI-v4\node_modules\@satorijs\adapter-onebot\lib\index.js:138:20)
        at Object.flush (c:\Chatbot-SILI-v4\node_modules\@satorijs\adapter-onebot\lib\index.js:682:159)
        at Object.render (C:\Chatbot-SILI-v4\node_modules\@satorijs\core\src\message.ts:36:7)
        at Object.send (C:\Chatbot-SILI-v4\node_modules\@satorijs\core\src\message.ts:43:5)
        at null.<anonymous> (C:\Chatbot-SILI-v4\node_modules\@koishijs\core\src\session.ts:354:7)
        at Session.withScope (C:\Chatbot-SILI-v4\node_modules\@koishijs\core\src\session.ts:234:14)
        at null.next (C:\Chatbot-SILI-v4\node_modules\@koishijs\core\src\internal.ts:216:16)
        at null.next (C:\Chatbot-SILI-v4\node_modules\@koishijs\core\src\internal.ts:216:16)

发现文中的 [object Object] 数量与问题数量一致(

Bug: $function 在低版本的 mongodb 下无法运行

Describe the bug

plugin-teach在不支持$function的mongodb数据库下出现问题:
即使触发条件中不包含regex,也会由于使用$function而导致运行失败

Steps to reproduce

·使用不支持$function的mongodb数据库(比如mongodb atlas M0-M2)
·安装teach插件

·teach添加触发
teach aaa $(help)

Expected behavior

在添加触发条件时判断运行环境是否支持$function,如果不支持就不添加;
在运行时判断是否支持$function,若不支持就默认数据库中不含有任何regex触发条件,并且在查询时不使用$function。

Screenshots

2022-05-02 07:36:17 [W] ndefined;1msession 6分拍 260多
MongoServerError: $function not allowed in this atlas tier
at Connection.onMessage (/home/a/arilychan/node_modules/mongodb/lib/cmap/connection.js:203:30)
at MessageStream. (/home/a/arilychan/node_modules/mongodb/lib/cmap/connection.js:63:60)
at MessageStream.emit (events.js:400:28)
at MessageStream.emit (domain.js:475:12)
at processIncomingData (/home/a/arilychan/node_modules/mongodb/lib/cmap/message_stream.js:108:16)
at MessageStream._write (/home/a/arilychan/node_modules/mongodb/lib/cmap/message_stream.js:28:9)
at writeOrBuffer (internal/streams/writable.js:358:12)
at MessageStream.Writable.write (internal/streams/writable.js:303:10)
at TLSSocket.ondata (internal/streams/readable.js:731:22)
at TLSSocket.emit (events.js:400:28)
Middleware stack:
- /home/a/arilychan/plugins/koishi-plugin-osu-stat-screenshot/index.js:154:30
- /home/a/arilychan/node_modules/@koishijs/plugin-feedback/lib/index.js:81:14
- /home/a/arilychan/plugins/koishi-plugin-blackfarts/index.js:62:26
- /home/a/arilychan/node_modules/@koishijs/core/lib/node.js:2542:14
- /home/a/arilychan/node_modules/@koishijs/core/lib/node.js:2222:14
- /home/a/arilychan/node_modules/@koishijs/core/lib/node.js:2681:12
- /home/a/arilychan/node_modules/@koishijs/plugin-bind/lib/index.js:82:14

Versions

  • OS: macOS 12.3.1
  • Platform: OneBot
  • Node version: 16.14.0
  • Koishi version: 4.6.1

Additional context

No response

Feature: 针对用户设置的触发机制

Describe the problem related to the feature request

在使用中我希望同一个问题对不同用户的回答范围不同

比如有这样的问答:

  • # 老婆 老公1
  • # 老婆 老公2
  • # 老婆 老公3
  • # 老婆 才不是你老婆1
  • # 老婆 才不是你老婆2
  • # 老婆 才不是你老婆3
  • # 老婆 离婚!

存在以下场景:

  • 将“老公”这几个回答设置为不能被特定用户触发(黑名单机制),其余用户按概率触发所有回答
  • 只有特定用户才能触发“老公”这几个回答(白名单机制),其余用户按概率触发其他回答
  • 上述两种机制可以同时存在,比如用户A不会被喊“离婚”,同时用户B只会被喊“离婚”

Describe the solution you'd like

  • 使用 -u uid,uid,uid ... 或者 -u @user,@user,@user ... 参数添加白名单
  • 使用 -U uid,uid,uid ... 或者 -U @user,@user,@user ... 参数添加黑名单
  • #id -u 查询该问答的白名单列表
  • #id -U 查询该问答的黑名单列表
  • #id -ud uid,uid,uid ... 或者 #id -ud @user,@user,@user ... 移除白名单
  • #id -Ud uid,uid,uid ... 或者 #id -Ud @user,@user,@user ... 移除黑名单

冲突处理机制:

对于同一条问答,若uid已存在于白名单中,再添加到黑名单时则自动从白名单中移除,反之亦然。其他情况不存在冲突,按概率触发即可。

Describe alternatives you've considered

老实说,还是控制台操作比较方便,好加好查也好删

添加 设定用户添加问答项的权限

在index里面注册一个变量填写权限等级,在author包里面修改index里面的 “dialogue/permit” 监听 添加一个用户权限与设定值的判断放在最前面(有很多“或”判断 所以丢在前面最保险 )

dialogue 插件报错

dialogue 插件疯狂警告刷日志

image

每接收到一条消息就有两条警告消息

Bug: `dialogue` 使用 `#ID` 格式查询问答时,图片直接显示为消息元素

Describe the bug

dialogue 使用 #ID 格式查询问答时,图片直接显示为消息元素

Steps to reproduce

dialogue 使用 #ID 格式查询问答,比如直接输入 #1

Expected behavior

如果是单图回答,那么直接显示图片

如果是图文回答,那么图片处显示 [图片]

Screenshots

No response

Versions

System:
OS: Linux 5.4 Ubuntu 20.04.4 LTS (Focal Fossa)
CPU: (2) x64 AMD EPYC 7K62 48-Core Processor

Binaries:
Node: 16.13.1
Yarn: 1.22.17

Koishi:
Core: 4.11.1
Console: 5.1.2

Additional context

No response

关于@机器人就回复的问题

需求:想群友通过@机器人然后机器人回复内容
情况:在实际测试中,我尝试了将问题设置为$m,这两种,但都不能按需求输出,故想请教一下如何实现该功能呢?

Feature:不再区分是否带有称呼

在目前的版本中,dialogue 会区分「带称呼」和「不带称呼」的问题,并设置不同的概率 -p 和 -P(参见文档)。

然而,面对 QQ 和钉钉这类平台,本身就不存在不带称呼的问题,因此新版本中将不再区分这两类问题,而是使用统一的概率 -p 来处理所有问题。

此变更是一个 breaking change,会发布到下一个大版本中。

Bug: TypeError: items is not iterable

Describe the bug

对于设置了多个nickname的机器人(如[ '四季酱', 'name2', 'name3' ]),当使用了其中一个称呼来设置仅有称呼的问题

# 四季酱 欸嘿

再用其他未设置问题的称呼来触发,会报TypeError: items is not iterable

image

Steps to reproduce

  1. 给机器人设置多个称呼

image

  1. 用其中一个称呼添加一个只有称呼的问题

image

  1. 对话中分别发送三个称呼来测试

image

只有四季酱正确响应了,另外两个称呼均报错

Expected behavior

对于其他称呼,也应该正确作出回答:“你好!要来点四季酱吗?”

Versions

  • OS: Windows 11
  • Platform: sandbox、onebot
  • Node version: v18.11.0
  • koishi: 4.11.0
  • koishi-plugin-assets-smms: 1.1.0
  • koishi-plugin-dialogue: 4.0.5
  • @koishijs/plugin-suggest: 1.1.5
  • @koishijs/client: 5.0.3

Additional context

log:

TypeError: items is not iterable
        at Session.suggest (D:\dev\bot\node_modules\.pnpm\@[email protected][email protected]\node_modules\@koishijs\plugin-suggest\src\index.ts:43:22)
        at <anonymous> (D:\dev\bot\node_modules\.pnpm\@[email protected]\node_modules\@koishijs\core\src\command\index.ts:84:36)
        at Object.compose (D:\dev\bot\node_modules\.pnpm\@[email protected]\node_modules\@koishijs\core\src\internal.ts:55:45)
        at Array.<anonymous> (D:\dev\bot\node_modules\.pnpm\@[email protected]\node_modules\@koishijs\core\src\internal.ts:346:35)
        at next (D:\dev\bot\node_modules\.pnpm\@[email protected]\node_modules\@koishijs\core\src\internal.ts:351:22)
        at triggerDialogue (D:\dev\bot\node_modules\.pnpm\[email protected][email protected]\node_modules\koishi-plugin-dialogue\src\receiver.ts:166:22)
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
        at next (D:\dev\bot\node_modules\.pnpm\@[email protected]\node_modules\@koishijs\core\src\internal.ts:351:16)
        at _DriftBottlePlugin.callback (d:\dev\bot\plugins\drift-bottle\src\index.ts:207:12)
        at next (D:\dev\bot\node_modules\.pnpm\@[email protected]\node_modules\@koishijs\core\src\internal.ts:351:16)

Feature: 在问题中支持代替机器人昵称的特殊语法

Describe the problem related to the feature request

因为机器人昵称可以有多个,又可以修改

image

如果我要添加一个带昵称前缀的问题,并对所有昵称生效,则需要分别执行

# 四季酱,我喜欢你 你就是桃饱网大会员?
# 四季辣酱,我喜欢你 你就是桃饱网大会员?
# 四季黄豆酱,我喜欢你 你就是桃饱网大会员?

(没有对四季酱不敬的意思)

而且如果修改昵称(比如 四季酱=>李四),那第一条问答就失效了,同时也需要再执行

# 李四,我喜欢你 你就是桃饱网大会员?

才能对昵称李四生效

Describe the solution you'd like

使用一个特殊语法,在问题中代替机器人昵称

比如用$n来匹配机器人当前昵称

# $n,我喜欢你 你就是桃饱网大会员?

这样无论是对机器人增加昵称、修改昵称、删除昵称,都不会影响这个问答应有的效果

Feature: 为其他插件提供批量注册问答'库'的api

部分插件可能需要或依托dialogue插件的特性,但是手动录入条目过多时会十分麻烦,那么可以提供一个api以供其他插件进行批量注册。例如下列方法:

ctx.dialogue.pushQuiz([{q, a}, ...]);

上传资源时发生错误

2023-11-06 09:34:06 [W] teach SystemError [ERR_FS_EISDIR]: Path is a directory: cp returned EISDIR (\?\C:\Users\xiuzh\AppData\Roaming\Koishi\Desktop\data\instances\default\public is a directory (not copied)) \?\C:\Users\xiuzh\AppData\Roaming\Koishi\Desktop\data\instances\default\public
at new SystemError (node:internal/errors:238:5)
at new NodeError (node:internal/errors:349:7)
at getStatsForCopy (node:internal/fs/cp/cp:211:11)
at async LocalAssets._start (C:\Users\xiuzh\AppData\Roaming\Koishi\Desktop\data\instances\default\node_modules\koishi-plugin-assets-local\lib\index.js:46:13)
只有回答使用图片的时候才会报错

私聊无法触发

大佬,群聊中, 关键字会触发,私聊的时候没有反应,是哪里需要设置吗?

plugin-dialogue-flow未按预期运行

加载koishi-plugin-dialogue-flow后:

  1. 问答机无法正常触发
  2. prifix 无响应
  3. teach指令返回的帮助信息出现问题,疑似注入时发生问题

图片

无法调用指令插值

无法调用指令插值
是我操作问题吗,插件和koishi版本均为最新

`# test $(echo test)
07:50:44 #首次尝试

问答已添加,编号为 27。
07:50:44

test
07:50:47 #无反应

#27 ~ "$(嗯哼 echo test)"
07:54:51 #尝试带nickname的指令

问答 27 已成功修改。
07:54:51

test
07:55:22 #无反应`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.