nonebot-adapter-kaiheila icon indicating copy to clipboard operation
nonebot-adapter-kaiheila copied to clipboard

Kaiheila adapter for nonebot2

Results 10 nonebot-adapter-kaiheila issues
Sort by recently updated
recently updated
newest added

目前的需求是获取引用消息的内容,获取消息详情的 api `message/view` 的返回值是 `ChannelMessage`,该怎么将它转为 `nonebot` 中的 `Message` 呢? 适配器中有 `MessageDeserializer` 来反序列化,但它似乎是处理消息事件中的字段,和消息详情的返回值有些区别,例如: `Image` 是这么反序列化的, https://github.com/Tian-que/nonebot-adapter-kaiheila/blob/09efbee0f292361854ab0c8ed4a4b44504d52bec/nonebot/adapters/kaiheila/message.py#L343-L346 但一个 `Image` 消息 `message/view` 的结果中并没有 `“attachments”`: ``` id_='90625bd9-d961-4dac-b43b-0c004b5f367b' type=2 content='https://img.kookapp.cn/assets/2024-03/Yxv60BzCYN0hl0u0.gif' embeds=[] attachments=None ``` 和这个类似的需求是 [chatrecorder](https://github.com/noneplugin/nonebot-plugin-chatrecorder)...

KOOK对mention是直接塞在KMarkdown里,目前适配器未进行处理,一方面用户使用起来比较难受,另一方面各种跨平台插件也没法对mention进行建模。 对于mention消息的处理,有以下几种备选方案: 1、把消息中的mention都单独提出来,比如原始消息是[KMarkdown: /command (met)123(met)]的话,就变成[KMarkdown: /command (met)123(met)][Mention: 123]。(问题:用户不只要提取mention,还需要除mention以外剩下的文本) 2、用正则粗暴地匹配(met)123(met),然后分割KMarkdown文本串。(问题:遇到嵌套在其他元素内的mention,这样粗暴分割会导致剩下的KMarkdown不再合法。但是用户发送指令的消息一般不会是太复杂的KMarkdown消息,机器人处理KMarkdown的场景本来就少) 3、对KMarkdown进行解析。具体怎么做、做成什么样都不明确。

enhancement

@abrahum 的 [kook](https://github.com/abrahum/kook) 和 [walle-k](https://github.com/onebot-walle/walle-k) 中实现了类似的功能: https://github.com/abrahum/kook/blob/master/src/kmarkdown/mod.rs https://github.com/abrahum/kook/blob/master/src/kmarkdown/parse.rs https://github.com/onebot-walle/walle-k/blob/main/src/parse/message.rs

Task exception was never retrieved future: Traceback (most recent call last): File "M:\python3.11\Lib\site-packages\nonebot\adapters\kaiheila\bot.py", line 209, in handle_event _check_nickname(self, event) File "M:\python3.11\Lib\site-packages\nonebot\adapters\kaiheila\bot.py", line 97, in _check_nickname first_seg = event.message[0] ~~~~~~~~~~~~~^^^ File...

错误信息在下一条comment(隐私信息已隐藏),在断网后重连无法正常接收到kook方向的信息 `import nonebot from nonebot.adapters.kaiheila import adapter as KaiheilaAdapter nonebot.init() driver = nonebot.get_driver() driver.register_adapter(KaiheilaAdapter) nonebot.load_plugin("Bot") if __name__ == "__main__": nonebot.run()` 以上为引入adapter的源代码

kook添加了type=12的poke消息事件

问题描述: message_list方法未对带有""的消息转义,导致后续loguru将其当为颜色代码处理,抛出异常导致无法拉取消息。 复现方法: 在kook频道中发送一条带有""(如,)的消息,使用机器人的message_list拉取消息,问题复现。 详细报错: ``` File "/bot/src/plugins/ticketbot/src/ticketbot_kook_main.py", line 167, in fast_close_ticket history= await bot.message_list(target_id=str(channel_id),page_size=50) File "/bot/.venv/lib/python3.9/site-packages/nonebot/adapters/kaiheila/bot.py", line 204, in call_api return await super().call_api(api, **data) File "/bot/.venv/lib/python3.9/site-packages/nonebot/internal/adapter/bot.py", line 176, in...

在官方文档中频道发送消息和频道更新消息参数都是用的content,且也说明了更新消息支持对CardMessage的修改,但当我尝试和sendmsg一样使用Messagesagemnet.card去构造并更新直到msg_id的CardMessage时,报错 07-27 20:57:54 [DEBUG] nonebot | Kaiheila | Calling API message/update 07-27 20:57:56 [DEBUG] nonebot | Kaiheila | API result {'code': 40000, 'message': 'json格式不正确', 'data': {}} 07-27 20:57:56 [INFO] nonebot...

KOOK文档:https://developer.kookapp.cn/doc/http/voice