# 如何把 Telegram 表情包添加到 Mastodon
## 过程概要
* STEP 1:导出 TG 表情专属格式 .tgs 文件
* STEP 2:转换为符合 Mastodon 要求的 gif 文件
* STEP 3:打包上传到 Mastodon
## 导出 TG 表情专属格式 .tgs 文件
1. 在 Telegram PC 端启动一个空白对话,发送该表情包中的所有表情。

2. 点击对话上方的三个点,导出对话记录,选择 Stickers


4. 在导出的文件夹中 stickers 目录下有所有的 .tgs 文件

## 转换为符合 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
```