カスタム絵文字とセット¶
カスタム絵文字¶
カスタム絵文字は、ゲスト以外の誰でも追加できます(絵文字のピッカーの「絵文字を追加」)。管理 →「絵文字」では、 すべてのカスタム絵文字を見て、表示名・キーワード・色・セットと順番を直したり、削除したりできます。
| 種類 | 内容 |
|---|---|
| 画像の絵文字 | PNG・GIF・JPEG・WebP、256 KB 以下、512 px 以下。横長は 3:1 まで縦横比どおりに表示 |
| 文字の絵文字 | 1〜12 文字の言葉を、色付きのラベルとして表示(色は gray・red・orange・yellow・green・blue・purple・pink) |
- 名前(ショートコード)は英小文字・数字で始まる 2〜32 文字(
a-z 0-9 _ + -)です。IME を切り替えずに打てる形です。 - 日本語は 表示名 と キーワード(20 個まで)に入れます。検索と
:の補完で日本語でも見つかります。
絵文字のセット¶
いくつかの絵文字を セット にまとめると、絵文字のピッカーにセットごとのタブができます。LINE のスタンプのような オリジナルの絵(例:180×180 の透過 PNG を 40 個)に向いています。セットの絵文字を 1 つだけ送ると、スタンプとして 大きく表示されます。
- セットの作成・名前の変更・並べ替え・削除は管理者だけです。
- セットを消しても絵文字は残ります(「カスタム」のタブに移ります)。本文やリアクションで使われている絵文字が 消えないようにするためです。絵文字ごと消すときは、絵文字を一つずつ削除してください。
セットを取り込む¶
管理 →「絵文字」→「セットを追加」で、画像と pack.json の入った フォルダ か ZIP を選びます。
pack.json の形式:
{
"name": "どうぶつ",
"tab": "tab.png",
"items": [
{"file": "001_ok.png", "shortcode": "anm-ok", "label": "オーケー", "keywords": ["了解", "OK"]},
{"file": "002_thanks.png", "shortcode": "anm-thanks", "label": "ありがとう", "keywords": ["感謝", "おじぎ"]}
]
}
| 項目 | 内容 |
|---|---|
name |
セットの名前(64 文字まで)。同じ名前のセットがあれば、そこに足します |
tab |
タブのアイコンの画像(任意)。無ければ最初の絵文字を使います |
items[].file |
画像のファイル名(日本語の名前も使えます) |
items[].shortcode |
絵文字の名前。セットごとに接頭辞(例 anm-)を付けると、ほかの絵文字とぶつかりません |
items[].label |
表示名(任意) |
items[].keywords |
検索のキーワード(任意) |
取り込みの決まりと上限は次のとおりです。
- 全部か何もしないか:先にすべてを確かめ、1 つでも問題があれば何も取り込みません。問題のファイルが表示されます。
- 名前がほかのセットやセットなしの絵文字に使われているとエラーになります(その名前の一覧が出ます)。
- やり直しても重複しません:同じセットに同じ名前があれば、表示名・キーワード・順番を
pack.jsonに合わせます (画像は差し替えません)。pack.jsonから外した絵文字は消しません。 - 画像は 256 KB・512 px 以下、
pack.jsonは 1 MB・300 項目まで、ZIP は展開後 64 MB まで。__MACOSXとドットファイルは 無視します。フォルダや ZIP の中のほかのファイル(メモなど)は読みません。
サーバのフォルダから入れる(プリセット)¶
管理画面を使わずに、サーバに置いたフォルダから絵文字のセットを入れることもできます(サーバの担当者の作業です)。
- 本番では
/srv/chikuwachat/infra/emoji-presets/<フォルダ>/に、上と同じ形(pack.jsonと画像)で置きます。 - アプリは 起動のたびに そのフォルダを読み、新しいもの・変わったものだけを取り込みます。画像を直したら同じ名前で 置き直せば差し替わります。
- 今すぐ取り込むには
python -m app.cli import-emoji-presetsを実行します。 - 管理者が画面で消したセットや絵文字は、次の起動でも戻りません。戻すときは
import-emoji-presets --restore <フォルダ名>を使います。 - 1 つのフォルダに問題があっても、そのフォルダが飛ばされるだけで、アプリはふつうに起動します。
コマンドの詳しい例は infra/README.md の「絵文字のセット(プリセット)」、 仕組みは docs/EMOJI.md をご覧ください。