(작은 재료) discord.js로 메시지에서 이모티콘 가져오기

소개



비망록도 겸해, discord.js 에서 메세지로부터 Unicode 이모티콘을 판별해, 취득하는 방법을 소개합니다.
Discord에서 유니코드 이모티콘은 각 서버에 등록된 커스텀 이모티콘 이외의 처음부터 모든 사용자가 할 수 있는 이모티콘입니다.

Discord는 이모티콘에 Twemoji을 사용하므로 Twemoji와 호환됩니다.
그 때문에 이번은 Twemoji의 이모티콘 판정 처리에 사용되고 있는 twemoji-parser 를 이용한 Unicode 이모티콘 판정 처리의 방법을 소개합니다.
twemoji-parser는 twemoji와 마찬가지로 Twitter 사에 의해 관리되는 라이브러리이므로 안심감이 있습니다.

사전 준비



적절한 프로젝트를 준비하고 twemoji-parser를 설치하십시오.
npm install twemoji-parser

주제



이번은 샘플로서, message 이벤트로 받은 메세지내에 포함되는 Unicode 이모티콘을, 리액션으로서 돌려줄 뿐의 코드를 소개합니다.
코드로서는 심플하기 때문에, 해설은 생략하겠습니다.
const { Client } = require('discord.js');

// twemoji-parserから判定用の正規表現を取得(gオプション付き)
const twemojiRegex = require('twemoji-parser/dist/lib/regex').default;

const client = new Client();

client.on('message', message => {
  // メッセージから正規表現でUnicode絵文字を取得
  const mathEmojis = message.content.match(twemojiRegex);

  for (const emoji of mathEmojis) {
    // 取得したUnicode絵文字をリアクションで返す
    message.react(emoji)
      .catch(console.error);
  }
});

client.login('Your bot token')
  .catch(console.error);

이런 식으로 작동합니다.


주의점



twemoji-parser의 정규식에는 g 옵션이 있습니다.
그러므로, 사용 목적에 따라서는 그대로 이용할 수 없기 때문에, 스스로 정규 표현을 재생성할 필요가 있습니다.
예를 들어, 단순히 g 옵션을 제거하고 싶다면,
const twemojiRegex = require('twemoji-parser/dist/lib/regex').default;
const onceRegex = new RegExp(twemojiRegex, '');

후기



메세지내의 유니코드 이모티콘을 판별해 취득하는 처리는, 스스로 쓰려고 하면(자) 꽤 난난의 기술입니다.
twemoij-parser를 사용하면 Unicode 이모티콘의 복잡한 조합도 확실히 1문자로 판정되므로 복잡한 것을 생각하지 않고 끝납니다.
또, 이것을 응용하면 스프레드 구문 하지만 실현할 수 없었던, 실태에 맞는 Unicode의 퍼스도 실시할 수 있을 것 같습니다.

좋은 웹페이지 즐겨찾기