Discord到Kook消息转发插件
[!CAUTION]
由于Astrbot的discord适配器会自动忽略机器人消息,所以该插件不支持转发机器人消息,如需转发机器人消息,可使用Discord-sync-to-kook这个项目,项目支持docker部署,目前已稳定运行2个月
这是一个为AstrBot开发的插件,用于将Discord平台的消息自动转发到Kook平台。
插件使用指南
博客:https://blog.goodnightan.com/posts/discord-sync-kook/
如果这个插件对你有用,欢迎 Start
功能特性
🔄 消息转发功能
- 文本消息转发: 完整保留Discord消息内容并转发到Kook
- 图片转发: 自动下载Discord图片并上传到Kook(支持jpg、png、gif、webp等格式)
- 视频转发: 完整的视频文件转发支持(支持mp4、avi、mov、mkv等格式)
- 文件识别: 智能识别文件类型,采用最佳转发策略
🎯 频道管理
- 多频道映射: 支持配置多个Discord频道到不同Kook频道的映射关系
- 文本格式配置: 使用简洁的"Discord频道ID 空格 Kook频道ID"格式配置映射
- 批量配置: 支持在WebUI中一次性配置多个频道映射
- 全频道转发: 可选择转发所有Discord频道的消息
- 默认频道: 设置未映射频道的默认转发目标
- 向下兼容: 完全兼容旧版本的单频道配置方式
⚙️ 配置管理
- WebUI配置: 通过AstrBot管理界面进行可视化配置
- 动态配置: 配置更改实时生效,无需重启
- 配置同步: WebUI配置自动同步到本地文件
- 机器人消息过滤: 可配置是否包含机器人发送的消息
- 消息前缀: 为转发的消息添加自定义前缀标识
🛠️ 技术特性
- 自动重连: 重启后自动恢复,无需手动重载插件
- 详细日志: 完整的调试日志,便于问题诊断
- 错误处理: 完善的异常处理和重试机制
- 文件清理: 自动清理临时下载的媒体文件
前置要求
- AstrBot v4.0.0+: 确保你的AstrBot版本支持插件系统
- Discord适配器: 需要配置并启用Discord官方适配器
- Kook适配器: 需要安装并配置Kook适配器插件
安装方法
- 将插件文件放置在AstrBot的
data/plugins/目录下 - 重启AstrBot或在插件管理页面重载插件
- 确保Discord和Kook适配器都已正确配置并运行
配置说明
基本配置
插件会自动检测已配置的Discord和Kook平台适配器。如果检测失败,请检查:
- Discord适配器是否正确配置并启用
- Kook适配器插件是否正确安装并配置
- 两个适配器是否都处于在线状态
WebUI配置(推荐)
- 打开AstrBot管理界面
- 进入「插件管理」页面
- 找到「Discord到Kook转发插件」
- 点击「配置」按钮
- 在配置界面中设置以下选项:
- 启用转发: 开启/关闭转发功能
- 默认Kook频道: 设置默认转发目标频道ID
- 转发所有频道: 是否转发所有Discord频道消息
- 包含机器人消息: 是否转发机器人发送的消息
- 消息前缀: 自定义转发消息的前缀
- 多频道映射配置: 使用文本格式配置多个频道映射,每行一个映射,格式为"Discord频道ID 空格 Kook频道ID"
- 图片清理时间: 设置图片文件自动清理时间(小时)
- 视频清理时间: 设置视频文件自动清理时间(小时)
指令配置示例(备用方法)
# 设置默认转发频道
/discord_kook_config set_default_channel 1234567890
# 添加特定频道映射
/discord_kook_config add_mapping 987654321 1234567890
/discord_kook_config add_mapping 111222333 4445556666
# 启用转发
/discord_kook_config enable
消息格式
文本消息
转发的文本消息格式为:
[Discord] 用户名: 消息内容
媒体文件转发
- 图片文件: 自动下载并重新上传到Kook,保持原始质量
- 支持格式:jpg、jpeg、png、gif、bmp、webp、svg
- 自动识别文件类型并采用最佳转发策略
- 视频文件: 完整的视频文件转发
- 支持格式:mp4、avi、mov、wmv、flv、webm、mkv、m4v
- 使用专用的视频消息类型确保正确播放
- 文件清理: 转发完成后自动清理临时文件,节省存储空间
特殊内容处理
- @提及: 转换为文本格式显示
- @全体成员: 转换为"@全体成员"文本
- 表情符号: 保持原始格式
- 链接: 完整保留并可点击
注意事项
- 权限要求: 配置指令需要管理员权限
- 频道ID: 请确保提供的频道ID正确且机器人有相应权限
- 消息限制: 转发受到目标平台的消息长度和格式限制
- 性能考虑: 大量消息转发可能影响性能,建议合理配置转发规则
故障排除
常见问题
Q: 插件初始化失败,提示未找到平台适配器
A: 检查Discord和Kook适配器是否正确安装并启用,确保它们处于在线状态。
Q: AstrBot重启后插件不工作
A: 新版本已修复此问题,插件会自动重新连接。如果仍有问题,请查看日志中的"🔄 Kook平台实例未找到,尝试重新获取..."信息。
Q: 消息无法转发到Kook
A:
- 检查Kook频道ID是否正确
- 确认机器人在目标Kook频道有发送消息的权限
- 查看AstrBot日志获取详细错误信息
Q: 图片转发失败
A:
- 检查图片文件大小是否超过Kook限制
- 确认网络连接正常,能够下载Discord图片
- 查看日志中的详细错误信息
Q: 视频转发显示"资源不存在"错误
A: 这通常是时序问题,插件已内置15秒等待机制。如果仍有问题:
- 检查视频文件大小是否过大
- 确认Kook机器人有上传文件权限
- 查看上传和发送的详细日志
Q: 只想转发特定频道的消息
A: 不要启用"转发所有频道",只添加需要的频道映射即可。
Q: 临时文件占用存储空间
A: 插件会自动清理临时文件,可在配置中调整清理时间间隔。
日志查看
插件会在AstrBot日志中记录详细的运行信息,包括:
- 平台适配器检测结果
- 消息转发成功/失败信息
- 文件上传和下载过程
- 配置变更记录
- 错误详情和堆栈信息
开发信息
- 版本: v0.0.2
- 作者: nulijiazaizhong
- 许可证: 与AstrBot主项目相同
- 仓库: https://github.com/nulijiazaizhong/astrbot_plugin_Discord_sync_to_kook
贡献
欢迎提交Issue和Pull Request来改进这个插件!
更新日志
v0.0.2 (最新版本)
- ✨ 新增多频道转发功能: 支持配置多个Discord频道到不同Kook频道的映射关系
- 🎯 文本格式配置: 使用简洁的"Discord频道ID 空格 Kook频道ID"格式进行配置
- 📝 WebUI界面优化: 改进配置界面,支持文本区域批量配置频道映射
- 🔄 实时配置同步: WebUI配置修改后立即生效,无需重启服务
- 🛠️ 向下兼容: 完全兼容旧版本的单频道配置方式
- 📊 增强日志记录: 添加详细的频道映射解析和转发决策日志
v0.0.1.8
- ✨ 新增视频转发功能: 完整支持Discord视频文件转发到Kook
- ✨ 新增图片转发功能: 自动下载并重新上传图片文件
- 🔧 修复重启问题: 解决AstrBot重启后需要手动重载插件的问题
- 🔧 修复视频消息类型: 使用正确的type=3发送视频消息
- 📝 增强日志系统: 添加详细的调试日志和错误追踪
- ⚡ 优化上传机制: 添加服务器处理等待时间和重试机制
- 🧹 自动文件清理: 自动清理临时下载的媒体文件
- 🎯 智能文件识别: 根据文件扩展名自动选择最佳处理方式
v0.0.1.5
- ✨ 新增WebUI配置支持: 通过管理界面进行可视化配置
- 🔄 配置实时同步: WebUI配置自动同步到本地文件
- 🛠️ 改进错误处理: 更完善的异常处理和恢复机制
- 📊 增强日志记录: 更详细的运行状态和错误信息
v0.0.1.3
- 🎉 正式版本发布: 稳定的Discord到Kook消息转发功能
- 🎯 频道映射: 支持Discord频道到Kook频道的精确映射
- ⚙️ 配置管理: 完整的配置指令系统
- 🤖 消息过滤: 可配置的机器人消息过滤
- 🏷️ 消息前缀: 自定义转发消息标识
v0.0.1
- 🚀 初始版本: 基础的Discord到Kook消息转发
- 📝 文本转发: 支持纯文本消息转发
- 🔧 基础配置: 简单的配置管理系统
Discord到Kook消息转发插件
这是一个为AstrBot开发的插件,用于将Discord平台的消息自动转发到Kook平台。
插件使用指南
博客:https://blog.goodnightan.com/posts/discord-sync-kook/
如果这个插件对你有用,欢迎 Star 这个项目!
功能特性
🔄 消息转发功能
- 文本消息转发: 完整保留Discord消息内容并转发到Kook
- 智能翻译: 支持腾讯翻译、百度翻译、谷歌翻译API,自动翻译消息内容
- 图片转发: 自动下载Discord图片并上传到Kook(支持jpg、png、gif、webp等格式)
- 视频转发: 完整的视频文件转发支持(支持mp4、avi、mov、mkv等格式)
- 文件识别: 智能识别文件类型,采用最佳转发策略
🎯 频道管理
- 多频道映射: 支持配置多个Discord频道到不同Kook频道的映射关系
- 文本格式配置: 使用简洁的"Discord频道ID 空格 Kook频道ID"格式配置映射
- 批量配置: 支持在WebUI中一次性配置多个频道映射
- 全频道转发: 可选择转发所有Discord频道的消息
- 默认频道: 设置未映射频道的默认转发目标
- 向下兼容: 完全兼容旧版本的单频道配置方式
⚙️ 配置管理
- WebUI配置: 通过AstrBot管理界面进行可视化配置
- 动态配置: 配置更改实时生效,无需重启
- 配置同步: WebUI配置自动同步到本地文件
- 机器人消息过滤: 可配置是否包含机器人发送的消息
- 消息前缀: 为转发的消息添加自定义前缀标识
🛠️ 技术特性
- 自动重连: 重启后自动恢复,无需手动重载插件
- 详细日志: 完整的调试日志,便于问题诊断
- 错误处理: 完善的异常处理和重试机制
- 文件清理: 自动清理临时下载的媒体文件
前置要求
- AstrBot v4.0.0+: 确保你的AstrBot版本支持插件系统
- Discord适配器: 需要配置并启用Discord官方适配器
- Kook适配器: 需要安装并配置Kook适配器插件
安装方法
- 将插件文件放置在AstrBot的
data/plugins/目录下 - 重启AstrBot或在插件管理页面重载插件
- 确保Discord和Kook适配器都已正确配置并运行
配置说明
基本配置
插件会自动检测已配置的Discord和Kook平台适配器。如果检测失败,请检查:
- Discord适配器是否正确配置并启用
- Kook适配器插件是否正确安装并配置
- 两个适配器是否都处于在线状态
WebUI配置(推荐)
- 打开AstrBot管理界面
- 进入「插件管理」页面
- 找到「Discord到Kook转发插件」
- 点击「配置」按钮
- 在配置界面中设置以下选项:
- 启用转发: 开启/关闭转发功能
- 默认Kook频道: 设置默认转发目标频道ID
- 转发所有频道: 是否转发所有Discord频道消息
- 包含机器人消息: 是否转发机器人发送的消息
- 消息前缀: 自定义转发消息的前缀
- 多频道映射配置: 使用文本格式配置多个频道映射,每行一个映射,格式为"Discord频道ID 空格 Kook频道ID"
- 图片清理时间: 设置图片文件自动清理时间(小时)
- 视频清理时间: 设置视频文件自动清理时间(小时)
- 翻译功能配置:
- 启用翻译: 开启/关闭自动翻译功能
- 翻译服务商: 选择腾讯翻译、百度翻译或谷歌翻译
- 源语言: 设置源语言(auto为自动检测)
- 目标语言: 设置目标翻译语言
- 翻译阈值: 设置触发翻译的最小字符数
- API密钥配置: 根据选择的服务商配置相应的API密钥
指令配置示例(备用方法)
# 设置默认转发频道
/discord_kook_config set_default_channel 1234567890
# 添加特定频道映射
/discord_kook_config add_mapping 987654321 1234567890
/discord_kook_config add_mapping 111222333 4445556666
# 启用转发
/discord_kook_config enable
消息格式
文本消息
转发的文本消息格式为:
[Discord] 用户名: 消息内容
启用翻译功能后,消息格式为:
[Discord] 用户名: 原始消息内容
[翻译] 翻译后的内容
媒体文件转发
- 图片文件: 自动下载并重新上传到Kook,保持原始质量
- 支持格式:jpg、jpeg、png、gif、bmp、webp、svg
- 自动识别文件类型并采用最佳转发策略
- 视频文件: 完整的视频文件转发
- 支持格式:mp4、avi、mov、wmv、flv、webm、mkv、m4v
- 使用专用的视频消息类型确保正确播放
- 文件清理: 转发完成后自动清理临时文件,节省存储空间
特殊内容处理
- @提及: 转换为文本格式显示
- @全体成员: 转换为"@全体成员"文本
- 表情符号: 保持原始格式
- 链接: 完整保留并可点击
注意事项
- 权限要求: 配置指令需要管理员权限
- 频道ID: 请确保提供的频道ID正确且机器人有相应权限
- 消息限制: 转发受到目标平台的消息长度和格式限制
- 性能考虑: 大量消息转发可能影响性能,建议合理配置转发规则
故障排除
常见问题
Q: 插件初始化失败,提示未找到平台适配器
A: 检查Discord和Kook适配器是否正确安装并启用,确保它们处于在线状态。
Q: AstrBot重启后插件不工作
A: 新版本已修复此问题,插件会自动重新连接。如果仍有问题,请查看日志中的"🔄 Kook平台实例未找到,尝试重新获取..."信息。
Q: 消息无法转发到Kook
A:
- 检查Kook频道ID是否正确
- 确认机器人在目标Kook频道有发送消息的权限
- 查看AstrBot日志获取详细错误信息
Q: 图片转发失败
A:
- 检查图片文件大小是否超过Kook限制
- 确认网络连接正常,能够下载Discord图片
- 查看日志中的详细错误信息
Q: 视频转发显示"资源不存在"错误
A: 这通常是时序问题,插件已内置15秒等待机制。如果仍有问题:
- 检查视频文件大小是否过大
- 确认Kook机器人有上传文件权限
- 查看上传和发送的详细日志
Q: 翻译功能不工作
A:
- 检查是否已启用翻译功能
- 确认选择的翻译服务商API密钥配置正确
- 检查消息长度是否达到翻译阈值
- 查看日志中的翻译错误信息
Q: 翻译质量不理想
A:
- 尝试更换翻译服务商(腾讯、百度、谷歌)
- 调整源语言设置,避免使用"auto"自动检测
- 检查API配额是否充足
Q: 只想转发特定频道的消息
A: 不要启用"转发所有频道",只添加需要的频道映射即可。
Q: 临时文件占用存储空间
A: 插件会自动清理临时文件,可在配置中调整清理时间间隔。
日志查看
插件会在AstrBot日志中记录详细的运行信息,包括:
- 平台适配器检测结果
- 消息转发成功/失败信息
- 文件上传和下载过程
- 配置变更记录
- 错误详情和堆栈信息
开发信息
- 版本: v0.0.2
- 作者: nulijiazaizhong
- 许可证: 与AstrBot主项目相同
- 仓库: https://github.com/nulijiazaizhong/astrbot_plugin_Discord_sync_to_kook
贡献
欢迎提交Issue和Pull Request来改进这个插件!
更新日志
v0.0.3 (最新版本)
- ✨ 新增智能翻译功能: 支持腾讯翻译、百度翻译、谷歌翻译API
- 🌐 多语言支持: 自动检测源语言并翻译为目标语言
- ⚙️ 灵活配置: 可配置翻译阈值、服务商选择和语言设置
- 🔧 智能处理: 翻译失败时自动降级为原文显示
- 📝 格式优化: 翻译消息采用原文+译文的清晰格式
- ⚙️ 配置优化: webui界面重写,更加直观和易用
v0.0.2
- ✨ 新增多频道转发功能: 支持配置多个Discord频道到不同Kook频道的映射关系
- 🎯 文本格式配置: 使用简洁的"Discord频道ID 空格 Kook频道ID"格式进行配置
- 📝 WebUI界面优化: 改进配置界面,支持文本区域批量配置频道映射
- 🔄 实时配置同步: WebUI配置修改后立即生效,无需重启服务
- 🛠️ 向下兼容: 完全兼容旧版本的单频道配置方式
- 📊 增强日志记录: 添加详细的频道映射解析和转发决策日志
v0.0.1.8
- ✨ 新增视频转发功能: 完整支持Discord视频文件转发到Kook
- ✨ 新增图片转发功能: 自动下载并重新上传图片文件
- 🔧 修复重启问题: 解决AstrBot重启后需要手动重载插件的问题
- 🔧 修复视频消息类型: 使用正确的type=3发送视频消息
- 📝 增强日志系统: 添加详细的调试日志和错误追踪
- ⚡ 优化上传机制: 添加服务器处理等待时间和重试机制
- 🧹 自动文件清理: 自动清理临时下载的媒体文件
- 🎯 智能文件识别: 根据文件扩展名自动选择最佳处理方式
v0.0.1.5
- ✨ 新增WebUI配置支持: 通过管理界面进行可视化配置
- 🔄 配置实时同步: WebUI配置自动同步到本地文件
- 🛠️ 改进错误处理: 更完善的异常处理和恢复机制
- 📊 增强日志记录: 更详细的运行状态和错误信息
v0.0.1.3
- 🎉 正式版本发布: 稳定的Discord到Kook消息转发功能
- 🎯 频道映射: 支持Discord频道到Kook频道的精确映射
- ⚙️ 配置管理: 完整的配置指令系统
- 🤖 消息过滤: 可配置的机器人消息过滤
- 🏷️ 消息前缀: 自定义转发消息标识
v0.0.1
- 🚀 初始版本: 基础的Discord到Kook消息转发
- 📝 文本转发: 支持纯文本消息转发
- 🔧 基础配置: 简单的配置管理系统