跳转到主要内容

从Slack导出中提取数据并将其导入Discord

项目描述

slack-to-discord

此工具可以将Slack导出文件导入Discord服务器

Demonstration

功能

  • 导入完整的消息历史记录(已测试导入超过10,000条消息)。
  • 处理私人频道(如果它们包含在您的Slack导出中)。
  • 处理图片和其他文件(如果文件太大而无法上传,则会回退到链接到Slack托管的文件)。
  • 保留Slack用户的原始名称和头像
  • 保留消息的emoji和反应。自定义emoji也将工作,但需要在导入之前手动添加到Discord中(emoji名称中的任何-都需要更改为_
  • 保留线程式对话。
  • 保留置顶消息。
  • 消息之间的日界限由一个--------YYYY-MM-DD--------消息标记,并且每个消息都以前发送的时间作为前缀。
  • 太长的消息(>2000字符)将被拆分并发送为多个较小的消息。

限制

  • 消息的时间戳将由Discord标记为导入的时间,而不是原始发送时间。通过在每条消息的文本中添加时间戳来解决这个问题。
  • 不会导入任何私人消息
  • 消息的反应将以自定义嵌入的形式显示,而不是正常反应
  • 不会保留来自Slack的嵌入(可以包含图片、按钮等)。
  • 不会保留来自Slack的画布。
  • 文件上传将在两条消息中完成。第一条是消息内容,第二条是包含上传文件标题并附加文件的消息。

一般建议

程序将从Slack导出中读取所有消息,并使用机器人将它们发布到Discord服务器。建议在导入历史记录之前使用一个完全干净的服务器。由于脚本只能发布消息,而不能重写历史记录,因此任何以前的内容都会被导入的数据埋没。在邀请其他用户之前确保一切正常工作也是一个好主意。

私人频道(如果您能够从Slack中导出它们)将被创建,只有机器人和服务器管理员可以访问。导入完成后,邀请您的用户后,您需要手动更改角色/权限,以使每个人都能访问正确的频道。

如果导入过程中出现任何问题,您可以通过删除所有创建的频道来快速删除历史记录。在这种情况下,您可以选择自己修复问题并重新运行导出(请将您的修复贡献回项目!),或者在该项目中创建一个问题。

说明

  1. 通过https://my.slack.com/services/export从Slack导出您的数据
  2. 创建一个Discord机器人(请参阅https://discordpy.readthedocs.io/en/latest/discord.html),以下权限如下
    • 管理频道 - 创建导入的频道并更改它们的主题
    • 管理Webhooks - 允许机器人伪造Slack用户的用户名和头像
    • 发送消息
    • 创建公开线程
    • 在线程中发送消息
    • 嵌入链接 - 向消息添加反应(请参阅“限制”部分)
    • 附加文件
    • 管理消息 - 将消息固定[可选]
  3. 使用pip安装slack-to-discordpip install slack-to-discord
  4. 运行slack-to-discord --zipfile <slack导出zip> --guild <服务器名称> --token <机器人令牌>(使用slack-to-discord --help检查其他选项)。
  5. 等待。导入完成后,程序将退出。由于Discord速率限制,导入过程可能需要一些时间(我的速度大约是每分钟50条消息)
  6. 检查导入的历史记录。
  7. 邀请您的用户。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

slack-to-discord-1.1.7.tar.gz (18.4 kB 查看哈希值

上传时间

构建分布

slack_to_discord-1.1.7-py3-none-any.whl (16.6 kB 查看哈希值

上传时间 Python 3

由以下支持