정구리의 우주정복

Python Project 03. 디스코드 봇 만들기 (5) - Embed 와 욕설 필터링 하기 본문

PYTHON/PROJECT

Python Project 03. 디스코드 봇 만들기 (5) - Embed 와 욕설 필터링 하기

Jungry_ 2020. 6. 24. 01:27
반응형

Embed 에 관한 정보는 API 에서 discord.Embed 라고 검색을 하면 여러가지 인자값들을 확인할 수 있다 .

 

Embed 란 ?

그냥 메세지가 아니라 이렇게 창으로 이루어진 게 나온다

그냥 텍스트로 된 메시지를 보내는게 아니라 이렇게 박스 안에 메세지를 출력해준다 , 이 안의 내용은  글,사진,동영상  등 여러가지가 될 수 있음

 

#####  $help embed #####
helpEmbed = discord.Embed(title ='Welcome', color =0xFFBBC6)
helpEmbed.set_author(name='정구리',url='https://j-ungry.tistory.com/',icon_url='insert image Url')
helpEmbed.set_thumbnail(url='insert image url')
helpEmbed.add_field(name='$help,$도움말',value='도움이 필요하면 불러봐요',inline=True)
helpEmbed.add_field(name='다른 기능들',value='추후 업데이트 예정입니다',inline=True)

Embed 를 간단하게 이용해본 소스코드이다 !

@client.event
async def on_message(message):
    if message.author == client.user:
        return
    if message.content.startswith('$도움말') or message.content.startswith('$help'):
        await message.channel.send(embed=helpEmbed)

실행해보려면 이렇게 작성한 뒤에 채팅창에 $도움말 이나 $help 를 쓰면 동작한다

 

helpEmbed 라는 새로운 Embed 를 생성한다 이때 title 과 옆에 나오는 띠의 색상을 지정해준다

set_author 은 이 임베드를 제작한 사람의 이름을 넣는건데 안넣어도 상관은 없음 

set_thumbnail 은 현재 임베드 (helpEmbed) 의 썸네일을 지정해주는거다 여기서 주의할 점은 http(s) 만 사용가능하다

add_field 는 Embed의 내용을 넣어주는 부분인데 inline 을 사용하면 줄 바꿈을 하지 않는다 

 

이렇게 해서 만든 helpEmbed 는 이런 모습이다

귀엽다

이걸 이용해서 깔끔하게 여러가지 기능들을 구현해볼 예정

 

다음은 욕설 필터링 기능이다 (사실 좀 야매임)

bad = ['ㅅㅂ','시발','씨발']

async def on_message(message):

    ##### remove bad words
    message_contant=message.content
    for i in bad:
        if i in message_contant:
            await message.channel.send('욕설 검지검지')
            await message.delete()

bad에 욕설의 목록을 넣는다 (txt 파일로 넣는 사람들도 있더라구여)

message_contant=message.contant 를 이용해서 메세지를 message_contant 에 담아준다

메시지 안에 bad 의 인자가 있으면 '욕설 검지검지' 라는 메세지를 전송한 후 해당 욕설 메세지를 삭제해준다

(근데 for 문이라서 아마 bad 안의 인자가 많아지면 속도가 느려질거라구 생각이듬) 이건 추후에 다시 생각해봐야지

반응형
Comments