126 views
# 如何把 Telegram 表情包添加到 Mastodon ## 过程概要 * STEP 1:导出 TG 表情专属格式 .tgs 文件 * STEP 2:转换为符合 Mastodon 要求的 gif 文件 * STEP 3:打包上传到 Mastodon ## 导出 TG 表情专属格式 .tgs 文件 1. 在 Telegram PC 端启动一个空白对话,发送该表情包中的所有表情。 ![](https://www.onedoc.xyz/uploads/1fba6276314529d4fde7e6a00.png) 2. 点击对话上方的三个点,导出对话记录,选择 Stickers ![](https://www.onedoc.xyz/uploads/1fba6276314529d4fde7e6a01.png) ![](https://www.onedoc.xyz/uploads/1fba6276314529d4fde7e6a02.png) 4. 在导出的文件夹中 stickers 目录下有所有的 .tgs 文件 ![](https://www.onedoc.xyz/uploads/1fba6276314529d4fde7e6a03.png) ## 转换为符合 Mastodon 要求的 gif 文件 ### 转换 GIF 使用以下工具: https://github.com/hadis898/tgbot-to-gif 在 stickers 目录下,通过 docker 执行以下命令,把 tgs 转换为 gif。转换完后的 gif 文件会在相同目录下。 ```shell docker run --rm -v <path to directory with stickers>:/source edasriyan/tgs-to-gif ``` ### 压缩文件尺寸 Masoton 要求表情文件必须小于 50K。一般 emoji 尺寸有 32x32 大小即可。使用 gifsicle 压缩 gif 尺寸。在 gif 目录中,执行以下命令: ```shell= for g in *.gif; do d=${g%.gif}; gifsicle --resize 32x32 < "$g" > "$d-resized.gif"; done ``` 命令运行结束后,所有的 \*-resized.gif 文件即是满足 Mastodon 要求的表情文件。 ## 上传到 Mastodon ### 压缩表情包 包结构需要是直接压缩文件,而非压缩文件夹。如果直接压缩文件夹,下一步会出错。 ```bash= cd stickers tar -czvf upload.tar.gz *.gif ``` ### Docker 操作 以下情况是针对 Docker 部署 Mastodon。如果使用非 Docker 部署的可以跳过此步骤。 上传文件后,复制压缩包到 docker 共享目录 ```bash mv upload.tar.gz public/system ``` 修改文件权限 ```bash sudo chmod 991:991 public/system ``` 进入容器交互环境 ```bash sudo docker compose exec web bash ``` ### 批量添加表情 使用以下命令批量添加自定义表情 ```bash tootctl emoji import /mastodon/public/system/emoji.tar.gz ```