从Slack导出中提取数据并将其导入Discord
项目描述
slack-to-discord
此工具可以将Slack导出文件导入Discord服务器
功能
- 导入完整的消息历史记录(已测试导入超过10,000条消息)。
- 处理私人频道(如果它们包含在您的Slack导出中)。
- 处理图片和其他文件(如果文件太大而无法上传,则会回退到链接到Slack托管的文件)。
- 保留Slack用户的原始名称和头像
- 保留消息的emoji和反应。自定义emoji也将工作,但需要在导入之前手动添加到Discord中(emoji名称中的任何
-
都需要更改为_
) - 保留线程式对话。
- 保留置顶消息。
- 消息之间的日界限由一个
--------YYYY-MM-DD--------
消息标记,并且每个消息都以前发送的时间作为前缀。 - 太长的消息(>2000字符)将被拆分并发送为多个较小的消息。
限制
- 消息的时间戳将由Discord标记为导入的时间,而不是原始发送时间。通过在每条消息的文本中添加时间戳来解决这个问题。
- 不会导入任何私人消息
- 消息的反应将以自定义嵌入的形式显示,而不是正常反应
- 不会保留来自Slack的嵌入(可以包含图片、按钮等)。
- 不会保留来自Slack的画布。
- 文件上传将在两条消息中完成。第一条是消息内容,第二条是包含上传文件标题并附加文件的消息。
一般建议
程序将从Slack导出中读取所有消息,并使用机器人将它们发布到Discord服务器。建议在导入历史记录之前使用一个完全干净的服务器。由于脚本只能发布消息,而不能重写历史记录,因此任何以前的内容都会被导入的数据埋没。在邀请其他用户之前确保一切正常工作也是一个好主意。
私人频道(如果您能够从Slack中导出它们)将被创建,只有机器人和服务器管理员可以访问。导入完成后,邀请您的用户后,您需要手动更改角色/权限,以使每个人都能访问正确的频道。
如果导入过程中出现任何问题,您可以通过删除所有创建的频道来快速删除历史记录。在这种情况下,您可以选择自己修复问题并重新运行导出(请将您的修复贡献回项目!),或者在该项目中创建一个问题。
说明
- 通过https://my.slack.com/services/export从Slack导出您的数据
- 创建一个Discord机器人(请参阅https://discordpy.readthedocs.io/en/latest/discord.html),以下权限如下
- 管理频道 - 创建导入的频道并更改它们的主题
- 管理Webhooks - 允许机器人伪造Slack用户的用户名和头像
- 发送消息
- 创建公开线程
- 在线程中发送消息
- 嵌入链接 - 向消息添加反应(请参阅“限制”部分)
- 附加文件
- 管理消息 - 将消息固定[可选]
- 使用
pip
安装slack-to-discord
(pip install slack-to-discord
) - 运行
slack-to-discord --zipfile <slack导出zip> --guild <服务器名称> --token <机器人令牌>
(使用slack-to-discord --help
检查其他选项)。 - 等待。导入完成后,程序将退出。由于Discord速率限制,导入过程可能需要一些时间(我的速度大约是每分钟50条消息)
- 检查导入的历史记录。
- 邀请您的用户。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
slack-to-discord-1.1.7.tar.gz (18.4 kB 查看哈希值)
构建分布
slack_to_discord-1.1.7-py3-none-any.whl (16.6 kB 查看哈希值)