GithubHelp home page GithubHelp logo

bot-myrtus / forward Goto Github PK

View Code? Open in Web Editor NEW
36.0 36.0 6.0 138.9 MB

Provides a message forwarding feature.

License: GNU Affero General Public License v3.0

TypeScript 100.00%
chatbot discord feishu koishi koishijs kook lark line matrix nodejs onebot qq telegram

forward's People

Contributors

idanran avatar idranme avatar purerosefallen avatar ulysseszh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

forward's Issues

tg转dc未显示头像

issue12提及的功能。
image
配置内似乎也没看到相应的功能开关。

相关信息

Debian GNU/Linux 11 \n \l
@myrtus/koishi-plugin-forward | 3.6.2 
koishi | 4.15.2

图片forwrad成代码

图片变成了这个:
@da00851b538200b76e98f4a22e039ce4252a4d562d92244e89d3533f291bf90a831bf66ddb4853122ada2ab19ab36c8fa4e9b284afd43af124bfd60f658f1c9fac4630762c5eb7c9d98c3befacf32dd3429da7b7ebb6ce310f8937730ee80b3357e96ddc0ff71696b9cc5daa322c99b19c9913993c7929f4aba113d1c096787f0efe76bdac918010d75b6a2611530dbf784cd552e81fff9cf10e0d107525cf1a3298bc7c7437a773c4f8b2a084dd65e093c5c766a218322e6305ce4abccde00b6097b160c1b3434df91e95c1346464e91d3cdfd6895f0f97fb81717a999fd813144fb2d546c893f348f505bd29492f0d383f2a836ae47d2901c023874452a73528d9ef5165db9a7148302ea7a4951f791524756bffa5f091c193ed947565477547557ee01d13f61f5f40fad38795891b3616b4468d72f4bc3ac0418afaa97e048a821aa331f9e5b5754ea04c4b3a6c0442a072d8779b0ae1fa88d1016a93353cb0bb9328cd3390f3a6cb785be824abebbe5b6b27fb54b9852a68a7efc65864e77a78386b1cb59d18f9090f6259e3859f5ce9fa81a42e1151a38e78664fda4aad182e962de6dfb58a37a025c1cc91e4ed905f0cb90e9dfecfc273b679060b6311476310dae506a17b8074e07efb603c704f2695e37fc6f5d2aff794dbca3910adb1e68b561ee661ee5ec7f9ca92a8b70d3cca041e2caaca066b6476c23f8959df4714f3d0a850e1d97ef58dcc54c7952bb9daedd1589bc6fa1ca3620874264f2d5a14b55fdac6c24e4bc86eb9d6da6008e701beb805a5cdeec549875ba0cf46ebe649ce3f2a240309879d6f17dab2823584a991014d3a9fa2583dd7c9c6cbabad3e9f3b133d32376fb9b124b8577afcc1ee5df7ed27bc4db0356fbf433c60cbe4cc59046486b37e86fdceca3e7e7375f02bb5bd762ea5ceac41c39e3e7e3bab6a17e3effb5d5c83840a298dcf0d8fc2163a5f4d02e405ec133cb391325ecce7147a9d988eb4dafef0a1198abd9fa8ff8227909a7f5e08699862329f13379e22c495896722e71e7a51c58e1fa022297bbb27a845e37324a2f7c05a6438d422f429768fca6d63347fb3e72fd26ea9db2947abba68e872f63391b71af5a4db63ece093e720394da61dc09d350fd7f87f4dfb5bacf29d4c5d081447dd0d49ab528e701e11ac0417cf32e8f594ba1ee44a7cbc2bdad0fca83ab86d8931b6acb9d02d2207ef3dc1059644b0448fb572452e3d0c

[Bug] 🐛 TG 无法发送至指定话题

版本信息

Koishi 4.16.8
@myrtus/koishi-plugin-forward 3.9.1

配置文件

image
image
image

日志文件

2024-02-14 16:56:49 [E] forward Error: Telegram API error 400. Bad Request: chat not found
    at _Internal.<computed> [as sendMessage] (koishi/node_modules/@satorijs/adapter-telegram/lib/index.js:88:17)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async _TelegramMessageEncoder.flush (koishi/node_modules/@satorijs/adapter-telegram/lib/index.js:465:22)
    at async _TelegramMessageEncoder.send (koishi/node_modules/@satorijs/core/lib/index.cjs:571:5)
    at async _TelegramBot.sendMessage (koishi/node_modules/@satorijs/core/lib/index.cjs:336:22)
    at async Proxy.<anonymous> (koishi/node_modules/@myrtus/koishi-plugin-forward/lib/core.js:164:40)

猜测可能下面这行代码导致

const messageIds = await bot.sendMessage(target.channelId, payload, target.guildId)

Koishi 的 bot.sendMessage 方法不支持 guildId 了,文档:https://koishi.chat/zh-CN/api/resources/message.html#bot-getmessage

可能需要特殊判断,使用 telegram 适配器内部方法 internal.sendMessage() 代替

企业微信自建bot的频道和自身id获取

使用inspect获取的id,无法使用。会提示:
024-04-03 12:40:56 [D] message [私聊] @ hi..
2024-04-03 12:40:56 [E] forward TypeError: Cannot read properties of undefined (reading 'userId')
at WecomMessageEncoder.sendByCustom (/koishi/node_modules/@satorijs/adapter-wecom/lib/index.js:196:36)
at WecomMessageEncoder.flush (/koishi/node_modules/@satorijs/adapter-wecom/lib/index.js:221:16)
at WecomMessageEncoder.send (/koishi/node_modules/@satorijs/core/lib/index.cjs:561:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async WecomBot.sendMessage (/koishi/node_modules/@satorijs/core/lib/index.cjs:326:22)
at async Proxy. (/koishi/node_modules/@myrtus/koishi-plugin-forward/lib/core.js:144:40)
2024-04-03 12:41:46 [I] loader reload plugin @myrtus/forward:2cgfrk
2024-04-03 12:41:59 [W] forward 暂时找不到机器人实例 wecom:XXX, 等待一会儿说不定就有了呢!
2024-04-03 12:41:59 [D] message [私聊] @ hi
2024-04-03 12:42:17 [W] forward 暂时找不到机器人实例 wecom:XXX, 等待一会儿说不定就有了呢!
2024-04-03 12:42:17 [D] message [私聊] @ hi

迁移到 @myrtus/forward 3.0.0

显著变化:

  • 支持 Telegram topic
  • 支持原生回复
  • 插件配置引入“常量”概念

这次改动涉及配置项的变更,与原有配置不兼容,因此请在更新前备份原有配置。

图片无法转发

文字可以正常转发,图片报错
报错信息如下

[E] forward ReferenceError: FormData is not defined
at RedMessageEncoder.image (D:\koishi\data\instances\default\node_modules\koishi-plugin-adapter-red\lib\message.js:94:25)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RedMessageEncoder.visit (D:\koishi\data\instances\default\node_modules\koishi-plugin-adapter-red\lib\message.js:244:17)
at async RedMessageEncoder.render (D:\koishi\data\instances\default\node_modules@satorijs\core\lib\index.cjs:545:7)
at async RedMessageEncoder.visit (D:\koishi\data\instances\default\node_modules\koishi-plugin-adapter-red\lib\message.js:309:17)
at async RedMessageEncoder.render (D:\koishi\data\instances\default\node_modules@satorijs\core\lib\index.cjs:545:7)
at async RedMessageEncoder.send (D:\koishi\data\instances\default\node_modules@satorijs\core\lib\index.cjs:577:5)
at async RedBot.sendMessage (D:\koishi\data\instances\default\node_modules@satorijs\core\lib\index.cjs:339:22)
at async Proxy. (D:\koishi\data\instances\default\node_modules@myrtus\koishi-plugin-forward\lib\core.js:165:40)

功能请求:支持监听所有的频道,支持过滤selfId

我想让两个不同的邮箱的邮件转发到 telegram 上,但是在 adapter-mail 上,不同发送者的 channelIdguildId 都不一样,在配置时被困惑。
希望在配置项中的 channelIdguildId 能用 * 来表示监听全部,另外希望添加selfId的过滤支持,更好区分不同的实例。

希望增加代理选项

目前dc要向外传递图片在大陆地区似乎只能先下载后发送(以及反代?),光在适配器代理是无法实现的。但是koishi里设置全局代理会影响很多地方

一些功能建议

1.Telegram适配器支持话题后转发选项可能需要更新一下
现在是只看数据库中的ID,但是TG不同群组的话题ID可能重复
2.转发添加反向转发选项,减少配置冗余
我现在4个群组的转发就已经要写4*4次配置,简直离谱(
3.回复使用re太乱了,如果能支持原生回复就好了

尝试把邮件转发到qq机器人但没有成功

adapter信息
图片
常量配置
图片
图片
转发规则配置
图片
系统信息

System:
    OS: Linux 4.19 Alpine Linux
    CPU: (4) arm64 Cortex-A55
Binaries:
    Node: 18.17.1
    Yarn: 3.6.2
Koishi:
    Core: 4.15.4
    Console: 5.18.1

adapter 都可以正常使用,常量配置里面的信息也和 inspect 命令保持一致,我哪里做错了?

一些使用中的问题

我又来提需求了

对体验影响较大的

1.同步撤回/删除
2.屏蔽掉一些无关信息,例如TG入群
3.各平台可选屏蔽命令,例如TG以/开头的消息

影响不大的

1.数据库可以自动删除一定时间之前的记录

可能比较难搞的

1.TG的GIF转换,可以参考下Q2TG?(QQ到TG的GIF也是坏的

BUG

1.嵌套回复会变成XX re XX形式
2.kook与discord原生回复无效
3.图片与发送者用户名不会一同发送(目前好像只有QQ正常

建议丰富头像显示

例如discord机器人转发qq消息时,将每条消息的id和头像设置为对应qq用户的头像和id

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.