Misskeyでカスタム絵文字を一気に入れる
#Misskey
https://misskey-hub.net/en/docs/admin/emoji.html#bulk-emoji-import
ディレクトリに絵文字を入れる他に meta.json が必要になる
JSON ファイルの構造は https://misskey-hub.net/en/docs/admin/emoji.html#packed-emoji-format
つまりこんな感じ
code:meta.json
{
"emojis": [
{
"downloaded": true,
"fileName": "vrc_alert.png",
"emoji": {
"name": "vrc_alert",
"category": "vrc",
"aliases": []
}
},
...
]
}
JSON は手動で書くもんじゃないよ...!機械的に生成しよう
code:create-meta.ts
type Meta = {
metaVersion?: number;
host?: string;
exportedAt?: string;
emojis: Emoji[];
}
type Emoji = {
downloaded: boolean;
fileName: string;
emoji: {
id?: string;
updatedAt?: string;
name: string;
host?: null;
category: string;
originalUrl?: string;
publicUrl?: string;
uri?: null;
type?: string;
aliases: string[];
};
}
function get_name(str: String): str {
const re = /(.*)\..*/;
return str.match(re)1 || "";
}
const files = []
const path = Deno.args0;
for await (const file of Deno.readDir(path)) {
files.push(file);
}
const emojis = files.map((file): Emoji => ({
downloaded: true,
fileName: file.name,
emoji: {
name: get_name(file.name),
category: "vrc",
aliases: [],
},
}));
const meta: Meta = { emojis };
console.log(JSON.stringify(meta));
rm -f ~/Downloads/emojis/{.DS_Store,*.zip,*.json} && deno run create-meta.ts ~/Downloads/emojis > ~/Downloads/emojis/meta.json
ディレクトリの構造はこんな感じ
code:text
├── meta.json
├── vrc_alert.png
├── vrc_angry.png
├── vrc_bat.png
ZIP ファイルに固める際は、ディレクトリ選択して圧縮ではなく meta.json と画像ファイル全部選択して圧縮
journalctl -u misskey -f で眺めてようやく理解った
こうじゃないと展開時に1つディレクトリが掘られてしまい、 meta.json が見つからずにエラー
WebUI から ZIP ファイルをアップロード
コンソールで jouornalctl -u misskey -f を走らせて、エラーが無いか確認する