본문 바로가기

하라는 공부는 안하고/파이썬하고있네

파이썬으로 디스코드 봇이나 만들어보자


왜 만드냐?


24시간 값싸게 돌릴 수 있는 라즈베리파이가 있고, 요즘 디스코드 음악봇들이 너무 자주 끊겨서 직접 만들어보기로 했다.

사실 시험이 끝나서다.





어떤 언어로 만들 것인가?


아직 프로그래밍을 제대로 배운 적은 없지만 그나마 써본 언어중에서 가장 코드가 짧았던 파이썬을 쓰기로 했다.

나는 타자가 70타 언저리기 때문에 파이썬을 쓸 것이다. 

그리고 난 신세대기 때문에 python3를 쓴다.




라이브러리부터 받아보자


python3 -m pip install --upgrade pip

python -m pip install --upgrade pip

cmd같은데다가 위에꺼중에 되는걸로 pip를 업그레이드 한다.


python3 -m pip install discord

python -m pip install discord

그리고 discord.py를 받는다.

파이썬을 설치할 때 광고프로그램 따라오는줄 알고 PATH에 추가를 체크하지 않았다면,

파이썬이 설치된 폴더를 찾아가서 python.exe의 경로를 복사한다.

그리고 python대신에 그 주소를 넣어주면 될 것 같다.


"C:\Python\Python36\python.exe" -m pip install discord

난 안해봐서 모른다. 그러니 안되면 검색을 하도록 하자.





어떤식으로 만들면 될지 감을 잡아보자


https://discordapp.com/developers/applications/me

디스코드 앱을 만들 수 있는 사이트고

http://discordpy.readthedocs.io/en/latest/index.html

만들 때 참고할만한 사이트다.

그리고 적당적당히 남의코드를 뒤져본 결과

discord.ext에서 commands를 불러오고

commands.Bot()이라는 놈을 하나 만들고

@"그 놈".command()라는 데코레이터를 이용해 함수를 정의하면

디스코드 채팅에서 명령어를 이용해 함수를 실행할 수 있는 것 같다.

이렇게 써두면 직접 쓴 나도 못알아 먹으니 코드...코드를 보자!


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from discord.ext import commands
 
bot = commands.Bot(command_prefix='!')
 
@bot.event
async def on_ready():
    print('logged in as \nname: {}\n  id: {}'.format(bot.user.name, bot.user.id))
    print('='*80)
 
@bot.command(pass_context=True)
async def hello(ctx):
    for i in range(5):
        await bot.say('hello {}'.format(ctx.message.author.name))
 
bot.run('봇의 토오오오오오오오크으으으으으은')
 
cs


!hello라고 채팅창에 입력하면

봇이 내 이름을 5번 쌔빠지게 외칠 것이다.