목록디스코드 (3)
변명은 만개 결과는 한개
메시지에 이모지 받아 처리하기 디스코드 봇 (discord.py) 을 통해 특정 메시지에 부여되는 이모지에 따라 원하는 동작을 실행하는 메시지 이모지 처리방법 두 가지에 대해 예제와 함께 다룹니다 wait_for 를 이용하여 특정 이모지 부여 1회 대기 및 액션 취하기 bot event on_raw_reaction_add 를 이용하여 이모지 부여에 따른 액션 취하기 1️⃣ wait_for 를 이용하여 특정 이모지(🙌) 부여 1회 대기 및 액션 취하기 1. 메시지 생성 및 가이드 이모지 부여 msg = await.channel.send("Sample message") await msg.add_reaction('🙌') 메시지를 생성하는 동시에 msg.add_reaction() 으로 유저가 손쉽게 이모지를 부..
결론은 포스트 최하단에 있습니다 :) 서론 처음에 디스코드 python 봇 코드를 본 뒤 조금 만지작 거리다 의아했던점은 @bot.command() 와 @bot.event 의 on_message 이벤트는 같이 쓰지 못하는걸까? 였다. 그도 그럴것이, 1 2 3 4 5 6 7 8 9 @bot.command() async def ABC(ctx): print("ABC 커맨드 호출 :)") pass @bot.event async def on_message(message): print("on_message 이벤트 호출 :)") pass cs 일때, ABC 커맨드는 호출되지 않고 on_message 이벤트만 호출되었기 때문이다. 아니면, @bot.command() 와 @bot.event 가 양립하지 못하는건가? ㅎ..
들어가며 제가 소속되어있는 디스코드 커뮤니티에서는 3개월간 텍스트채널에서 아무런 활동을 하지 않는 회원을 휴면 회원으로 간주하고 GrayMember Role을 부여합니다. 기존에는 기회가 있을 때마다 관리자님들이 모여 일일이 확인하며 진행하였는데, 이를 봇으로 진행하면 실수도 없고 좋을 것 같다는 의견이 있어 고찰해보기로 하였습니다. 첫 시도 디스코드에는 (텍스트)채널 단위로 원하는만큼의 텍스트 내역을 볼 수 있는 history 라는 API가 존재하는데, 부끄럽지만 처음에는 단순하게 Member in channel.history(limit=세달): 의 느낌으로 접근했다가, 무수히 많은 멤버에 대한 Worst case (GRAY 후보 멤버 한사람당 3시간)의 말도 안되는 연산시간으로 포기했습니다. 두번째 ..