LoginSignup
5
4

More than 5 years have passed since last update.

Perlで :innocent: を 😇 に変換する 〜Slackの絵文字対応〜

Last updated at Posted at 2016-07-10

はじめに

最近, Slackが大流行していますね.
社内のコミュニケーションのためのチャットツールとしてはもちろん, それ以外の趣味やOSSなどのコミュニティでも活用されるパターンが増えてきていて, 何かしらの形でSlackを使ったことがある! という方は多いのではないでしょうか?

...さて, Slackはチャットという文章によるコミュニケーションを活発にするために, 様々な機能を提供していますが, その1つが「絵文字」です.
例えば, :innocent:を含むテキストを送信すると, Slackは自動的に😇に変換して表示してくれます:

slack.gif

非常に便利ですね.

さて, Slackの流行に伴って, Slackが提供する「キーワードと絵文字の対応」(:innocent:と😇, :+1:と👍など)が定着してくると, 開発しているサービスに, この変換機能を搭載したいと思う事もあるのではないでしょうか? 私は思いました.

そういう時に便利なPerlのCPANモジュールが, 今回ご紹介するText::SlackEmojiです.

使い方

SYNOPSISに書いてあるとおりです. Text::SlackEmoji->emoji_mapで, 「キーワード」をkey, 「絵文字」をvalueにしたハッシュリファレンスを取得することができるので, 後は正規表現で「キーワード」を取得して, 「絵文字」に置き換えていくだけです:

use strict;
use warnings;

use Text::SlackEmoji;

my $message = 'Hello! :innocent: :+1: :bow:';
my $emoji_map = Text::SlackEmoji->emoji_map;

$message =~ s!:([-+a-z0-9_]+):!$emoji_map->{$1} // ":$1:"!ge;

print "$message\n"; # => Hello! 😇 👍 🙇

まとめ

Perlで, Slackのメッセージにおける:innocent: -> 😇 のような変換を実現する, Text::SlackEmojiを紹介しました.
かなりニッチなモジュールではありますが, Slackが流行している昨今, 覚えておくとふとしたタイミングで使えそうなモジュールだと思います. 是非ご活用下さい.

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4