이번 시간에는 이모지를 달아볼 것입니다. 사실 이모지는 send를 통해 다는 거 외에는 없습니다. 그러나, 이모지를 보내기 위해선 :one: :two:등을 사용하여 출력할 수도 있으나, 오늘 알아볼 것은 파이썬 모듈과 기본 유니코드 기능을 사용하여 이모지를 출력해 볼 것입니다.
유니코드를 통하여 출력하기!
우선 모듈 없이 유니코드를 통하여 이모지를 출력해보도록 해보겠습니다. 우선 아래의 링크에 미리 들어갑니다.
http://www.unicode.org/emoji/charts/full-emoji-list.html#274c <- 유니코드 이모지 목록표
위 사이트에서 자신이 원하는 이모지를 택한 후 왼쪽의 U+XXXX라고 작성된 곳이 있을 겁니다. 그 내용을 복사합니다.
저는 이것을 출력해보고자 합니다. 우선 0️⃣의 유니코드는 "U+0030 U+FE0F U+20E3" 입니다.
파이썬에서는 유니코드를 출력하기 위해선 8자리로 변환해줘야 합니다. 그렇다고 변환기 혹은 계산기를 사용하는 것이 아닙니다! U+XXXX 기준 +를 000으로 변경해주고, 만약에 8자리 충족이 안됬다면 000 변경해준 곳에 0을 추가로 작성해주면 됩니다. 그리고 U 부분 앞쪽에 \를 작성해주면 변환이 끝났습니다! 참고로 지금 이모지처럼 유니코드가 2개 이상 붙어있으면 공백도 제거해주셔야 합니다. 변환해준 값은 "\U00000030\U0000FE0F\U000020E3"와 동일합니다.
이를 디스코드 봇에 응용하여 작성하면 아래의 코드가 됩니다.
if message.content == "이모지 출력":
await message.channel.send("\U00000030\U0000FE0F\U000020E3")
return
"이모지 출력"을 입력하게 되면 0️⃣를 출력하게 됩니다.
위 사진과 같이 이모지가 출력되게 합니다. 반응 또한 방법이 동일합니다.
if message.content == "이모지 출력":
msg = await message.channel.send("\U00000030\U0000FE0F\U000020E3 을 반응으로 추가")
await msg.add_reaction("\U00000030\U0000FE0F\U000020E3")
return
위 코드처럼 변경하면 아래의 사진처럼 출력되게 됩니다.
add_reaction의 경우 4편에서 서술했지만 정작 이모지를 다는 법에 대해 서술한 적이 없기 때문에 서술하는 것입니다.
이모지 모듈을 사용하여 출력하기!
이모지 모듈을 사용하여, 🏘를 출력해보겠습니다.
제가 출력할 이모지는 위 사진입니다. "houses"를 먼저 기억합시다. 우선 emoji 모듈을 받아주셔야 합니다.
py -m -3 -m pip install emoji #원도우
python3 -m pip install emoji #리눅스
위 코드를 CMD창 혹은 터미널에서 작성해 주세요.
import emoji #맨 윗부분에 추가해줍니다.
if message.content == "이모지 출력":
e = emoji.emojize(":houses:")
msg = await message.channel.send(str(e) + "을 반응으로 추가")
return
이렇게 작성해주시면 이모지가 출력됩니다.
위와 같이 emoji.emojiize를 사용하시면 디스코드 이모지를 출력하는 방식과 비슷하여 익숙하실 겁니다.
이렇게 한번 이모지를 다루어 보았습니다. 저는 이모지 모듈 쓰는 것보다, 유니코드를 쓰는 게 더 편합니다. 오히려 이모지 모듈로 안 되는 경우가 존재하기 때문에.. 크게 권장드리고 싶진 않습니다. 이상으로 디스코드 봇 강의를 마치겠습니다.
'미사용 > (舊)디스코드봇 강좌' 카테고리의 다른 글
당분간 강의는 진행되지 읺습니다. (503) | 2020.05.24 |
---|---|
디스코드봇(파이썬) 08 | 역할관리 해보자! (857) | 2020.05.10 |
디스코드봇(파이썬) 07 | 방을 관리해보고, 유저 정보에 대해 알아보자. (884) | 2020.05.03 |
디스코드봇(파이썬) 06 | discord.py의 이벤트함수를 알아보고 서로 상호작용을 해보자. (27) | 2020.04.18 |
디스코드봇(파이썬) 05 | 메세지의 특정부분만 읽어보자. (0) | 2020.04.11 |