everydayminder
디스코드 봇 커맨드 파라미터에 공백문자가 포함된 단어/ 문장을 전달하려면? 디스코드 봇 커맨드에 파라미터를 전달할 때 커맨드가 파라미터를 받지 않는 경우도 있지만, 사용자로부터 파라미터를 받아야 하는 경우도 있다. 게다가 파라미터에 공백 문자가 들어간 경우 혹은 문장 전체가 파라미터로 쓰이는 경우도 있다. 만약, 별다른 조치를 하지 않는다면, 입력값이 의도한 대로 전달되지 않는 것을 확인할 수 있다. 본 포스트에서는 이러한 현상을 확인하고, 어떻게 개선할 수 있는지에 대해 정리해 본다. 테스트 코드 @bot.command() async def echo(ctx, parameter): await ctx.reply(f'echo {parameter}') 위와 같이 명령어를 작성했다고 하자. 이 명령어는 커맨드 ..
Heroku 앱의 코드에서 설정은 외부로 만약 깃헙 등에 디스코드 봇 등의 앱을 작성해서 커밋했다면 꼭 체크해야할 사항이 있다. public으로 노출했는가? (다른 사람들이 다 본다는 뜻) 혹시 app token 정보를 그대로 노출했나? (다른 사람들이 도용할 수 있다는 뜻) 비밀번호는 외부에 노출되지 않도록 해야 하므로, 토큰 정보도 노출되지 않도록 조치를 해야 한다. 토큰을 Heroku 외부 설정으로 빼놓기 Heroku 대쉬보드의 Settings 메뉴로부터 Config Vars 섹션에 본인이 원하는 설정 값을 선언할 수 있다. 위의 스크린샷의 예는, BOT_TOKEN이라고 선언하고 그에 해당하는 값을 지정한 것이다. 여러 개의 변수를 상황에 맞게 선언하고 사용하면 된다. 외부 환경변수로부터 토큰을 사..
Heorku에 파이썬 디스코드 봇 연동하기 (깃헙기반) 앞서 Heroku의 기본 설정을 진행했다면, 이제는 실제 디스코드 봇을 연동해볼 차례이다. Heroku CLI를 사용하거나, 깃헙 연동을 하면 되는데 이 포스트에서는 깃헙 연동을 하는 방법을 다룬다. 사용한 코드 앞서 테스트한 디스코드 봇을 바탕으로 기본 디스코드 봇을 Heroku에 연동해 보고자 한다. 파이썬으로 디스코드 봇 개발 시작하기 (기본 구조 잡기) discord.py를 사용하여 디스코드 봇 개발 시작하기 디스코드 봇 개발을 위해 사전준비를 마쳤다면, 이제 본격적으로 개발하기 위해 틀을 잡아본다. discord.py 설치 아래 글들을 참고하여, discord.py 사 luran.me 깃헙 프로젝트 생성 혹은 연동 깃헙 프로젝트를 아래와 같..
Heroku를 사용하여 디스코드 봇 무료 호스팅 준비하기 만약 디스코드 봇을 개발했다면, 어디에 띄워둬야 실제 봇으로서 제대로 동작할까? 물론 내 PC에서 봇을 띄워놓고, 24시간 365일 운영해도 된다. 그러나, 개인 용도의 봇이 아니라 다른 사람들도 쓸 수 있는 봇이라면 별도의 서버 환경에서 봇을 실행시키는 것이 바람직하다. AWS, GCP, Azure 등의 클라우드 환경이 적합한 타겟이 될텐데, Heroku를 쓰면 가벼운 디스코드 봇을 무료로 띄울 수 있다. Heroku 가입하기 Heroku의 공식 사이트 링크는 아래와 같다. https://www.heroku.com/ 혹시 미리 가입했다면, 상단의 log in 버튼을 클릭하여 로그인하면 되고, 계정이 없다면 sign up 버튼을 눌러서 가입한다. ..
파이썬 디스코드 봇 - 사용자 커맨드로부터 파라미터를 전달받으려면? 봇에 입력한 커맨드만으로 동작하는 경우도 있지만, 일부 커맨드는 명령어와 함께 파라미터를 전달 받을 필요가 있다. 커맨드에 파라미터를 전달해 주려면, 다음과 같이 하면 된다. 커맨드에 파라미터 전달하기 @bot.command() async def talk(ctx, arg1, arg2): await ctx.reply('{} talks to {}.'.format(arg1, arg2)) 위와 같이 파이썬 함수에 파라미터를 정의하는 것만으로도 충분하다. 위의 코드는 커맨드가 'talk'이고, args1과 args2를 파라미터로 받는 코드이다. 전체 구조는 지난 글을 참고한다. 파이썬으로 디스코드 봇 개발 시작하기 (기본 구조 잡기) discor..
discord.py를 사용하여 디스코드 봇 개발 시작하기 디스코드 봇 개발을 위해 사전준비를 마쳤다면, 이제 본격적으로 개발하기 위해 틀을 잡아본다. discord.py 설치 아래 글들을 참고하여, discord.py 사용 준비를 마친다. 디스코드 서버-봇 설정하기 디스코드란? 디스코드는 인스턴트 메신저 중의 하나로 음성, 채팅, 화상통화 등을 지원하는 VoIP 솔루션이다. 2015년 9월에 모바일 게임인 Fates Forever 지원하기 위해 최초 출시되었으며, 뛰어난 성 luran.me 디스코드 봇 준비- discord.py 설치하기 (feat 맥북, 구글 코랩) 로컬 맥북 혹은 구글 코랩에 discord.py 설치하기 파이썬용 디스코드 봇 API로, discord.py를 사용하면 손쉽게 디스코드 봇..
디스코드 서버/ 봇 설치 후, 실행하다 이 에러가 난다면? 구글 코랩 및 주피터에서 디스코드(discord.py) 실행시 겪을 수 있는 오류이다. 내 경우는, 구글 코랩에서 디스코드 봇 실행과정에서 발생했고, 다음과 같이 문제를 해결했다. 혹시나 유사한 문제를 겪을 수도 있는 누군가를 위해 기록으로 남긴다. 디스코드 봇을 설치/ 테스트 해보고자 하는데, 기본 코드를 따라 하다 보니 RuntimeError: Cannot close a running event loop라는 에러가 발생하였다. 혹시나 하여, 로컬 PyCharm에서 실행해보니 정상적으로 실행되는 코드였다. 문제를 일으킨 코드 디스코드 채널이 정상적으로 생성되어 있고, 그 채널에 봇이 연결만 되어 있다면 아래 코드는 정상적으로 실행된다. 맥북에서..
로컬 맥북 혹은 구글 코랩에 discord.py 설치하기 파이썬용 디스코드 봇 API로, discord.py를 사용하면 손쉽게 디스코드 봇을 만들 수 있다. 파이썬이 있다는 전제가 깔려 있으므로, 맥북 로컬에 설치되어 있는 파이썬이 적어도 3.5 이상이면 좋고, 대안으로 구글 코랩이나 주피터 노트북/랩을 사용하여 파이썬 테스트 해볼 수 있을 것이다. 디스코드 설치하기 맥북에서 디스코드(discord.py)를 설치하는 방법과, 구글 코랩에서 설치하는 방법 순서로 살펴보자. 맥북에서 디스코드 설치하기 맥북에 discord.py가 기본적으로 설치되어 있지는 않다. discord.py의 설치 여부를 다음의 명령어 중 하나로 간단하게 확인해 볼 수 있다. $ python -c "import discord" 혹은 ..
디스코드란? 디스코드는 인스턴트 메신저 중의 하나로 음성, 채팅, 화상통화 등을 지원하는 VoIP 솔루션이다. 2015년 9월에 모바일 게임인 Fates Forever 지원하기 위해 최초 출시되었으며, 뛰어난 성능을 기반으로 그 이전의 다른 VoIP 기반 메신저를 제치고 주류 메신저가 되었다. 초기에는 음성채팅과 일반채팅을 지원하는 수준에 지나지 않았으나, 직관적이고 게임 친화적인 다양한 업데이트를 꾸준히 지원하여 현재는 게임 메신저의 대명사가 되었다. 윈도우즈, 안드로이드, iOS, 리눅스, 맥, 웹브라우저 등 다양한 플랫폼을 지원하며, 디스코드 봇을 통해 디스코드 서버의 다양한 기능을 사용할 수 있도록 지원하고 있다. 디스코드의 소개 페이지를 살펴보면, 굉장히 젊고, 트렌디함을 느낄 수 있다. 왜 디..