스터디 디스코드 봇 (1) - 시작

Jeuk Oh·2021년 9월 3일
0

디스코드 서버 내 스터디 관리용으로 개발하는 간단한 토이 프로젝트입니다.

기능

구현 전

  1. BOJ 문제 검색 (solved.ac 검색기능 활용)

  2. 스터디 멤버 커밋 체크

  3. 벌금 관리

  4. 랭킹 시스템?

  5. 투표 시스템?

  6. (HARD) 음악 봇 ?

로아 디스코드 봇은 로아를 안해서... 당분간 중단하고 ㅜ 알고리즘 스터디를 하게 되어서 디스코드 봇으로 스터디 운영에 도움 + 봇 개발은 계속 하고싶어서 간단한 토이프로젝트를 계획하게 되었습니다.

이번 연재에서는 좀 더 차근차근 진행해보고자 합니다.

시작

준비물

1. Python library

discord==1.7.3
pynacl==1.4.0
requests==2.25.1
urllib3==1.26.6
beautifulsoup4==4.9.3
websockets==9.1

가상환경을 만드신 뒤 프로젝트 requirements.txt에 그대로 복사하시고 터미널에 pip install requirements.txt를 타이핑하시면 준비 끝. 저기서 안쓰는 것도 있긴할텐데... 일단 저는 다 쓸거라서.. 허허

IDE은 편한거 쓰시면 됩니다. 저는 IDE은 Pycharm, 가상환경 관리는 conda를 씁니다.

2. Discord Bot

https://discord.com/developers/applications

링크에서 Application을 만들고, Bot 텝에서 Bot이 되도록 활성화하신 뒤 (이 때 TOKEN을 복사해놓습니다.)
OAuth2 텝으로 넘어갑니다.

사진처럼 bot을 체크하시고 밑에 있는 하이퍼링크를 주소창에 타이핑하셔서 봇을 원하시는 서버에 초대할 수 있습니다.

main.py 작성

이번 프로젝트는 깃허브에 업로드할 것이라 토큰을 잘 숨겨놓읍시다. 저는 Secure.py를 만들고 거기에 token을 잘 포개어 넣고 .gitignore에 Secure.py를 넣었습니다. 왜 py로 하였냐면 귀찮아서..

main.py

import datetime, os, sys
from discord.ext import commands
from discord.utils import get, find
# Secure
from Secure import *

@client.event
async def on_ready():
    print("다음으로 로그인합니다")
    print(client.user.name)
    print(client.user.id)
    print(client.get_all_channels())
    print("================")

#test
@client.command(name="ping",
                brief = "test 명령입니다")
async def _ping(ctx):
    await ctx.send('pong')

client.run(token)

실행시키면 on_ready 함수가 실행되면서 로그가 뜨고 초대된 봇이 켜집니다.

테스트용 함수 ping을 사용하여 잘 작동하나 확인해봅시다.

EASY 합니다.


가장 먼저 Solved.ac의 검색 기능을 이용해서 BOJ 문제를 난이도와 유형별로 쉽게 검색할 수 있는 기능을 추가하고자 합니다.

profile
개발을 재밌게 하고싶습니다.

0개의 댓글