Diary

@ssig33

10 Oct 2017 Tue 14:42

Slack で大きい絵文字を簡単に作る という遊びがあります。

スクリーンショット 2017-10-10 14.34.53.png

こんなん。画像を 4x4 で 16 枚で分割して

:yos-1-1::yos-2-1::yos-3-1::yos-4-1:
:yos-1-2::yos-2-2::yos-3-2::yos-4-2:
:yos-1-3::yos-2-3::yos-3-3::yos-4-3:
:yos-1-4::yos-2-4::yos-3-4::yos-4-4:

みたいな感じで貼るわけです。

スクリーンショット 2017-10-10 14.34.16.png

とか

スクリーンショット 2017-10-10 14.34.45.png

中身としては 16 枚の絵文字なので適当に差し替えて遊んだりできます。

Kobito.7WlpYO.png

とか。

これを手で作るのはだるいので簡単に作る方法です。

画像の用意についてはこれを読んでください。

そのようにして画像が用意されると、これをアップロードしないといけないのですがこれを手でやるとだるいです。そこで emojipacks という悪魔のツールを使います。

emojipacks は以下のような yaml があれば一括で絵文字を登録してくれるという便利ツールです。

---
title: yame
emojis:
- name: yame-1-1
  src: http://s.ssig33.com/s/7da3f11bcf7a4062b12057a4a884f02b
- name: yame-2-1
  src: http://s.ssig33.com/s/391026804f5943bb8feaad01b1660c84
- name: yame-3-1
  src: http://s.ssig33.com/s/77a642d788a84a3fbc8c9ba4c4d35710
- name: yame-4-1
  src: http://s.ssig33.com/s/7202e75135624c67a09b32edb4e1084b
- name: yame-1-2
  src: http://s.ssig33.com/s/0516e5e9861248b4a348fbfa7dfbdd09
- name: yame-2-2
  src: http://s.ssig33.com/s/ea88903d5567426dbaf49138480f7d6b

こういう絵文字のデータは http でアクセスできるところに存在している必要があります。これを手でやるのはだるいので、適当に画像をアップロードする場所をなんか用意したうえで以下のようなスクリプトを書きましょう。

require 'yaml'
hash = {"title" => 'yame', "emojis" => []}

Dir.glob("sob*").sort_by{|x| x.scan(/d+/).first.to_i}.each_with_index do |s,i|
  x = i % 4 + 1
  y = i / 4 + 1

  src  = upload(s) # この upload メソッドはなんか各自の事情で実装したらいい
  hash["emojis"] << {"name" => "yame-#{x}-#{y}", "src" => src}
end
puts YAML.dump(hash)

あとは emojipacks で登録するだけ。

これを全部一括でうまいところやるようにしてガンガン巨大絵文字を登録できるようにしてもいいとは思うんですけど、まだそこまで自動化してません。