-
Notifications
You must be signed in to change notification settings - Fork 0
discord timeout bot
chilyoon edited this page May 23, 2022
·
6 revisions
디스코드내에 채팅창에서 비속어를 사용하게 된다면 봇이 비속어를 탐지하여 비속어를 사용한 유저에게 타임아웃을 적용하는 기능이다.
서버에 있는 관리자가 유저에게 타임아웃을 적용하게 된다면 다음과 같은 상태가 적용된다.
1. 채팅창에 채팅을 치거나 채팅에 반응할 수 없음
2. 음성 채널에 접속 불가
3. 기존에 음성 채널에 참가 중이었다면 자동으로 연결 해제
- 서버에 있는 유저를 우클릭하면 타임아웃을 할 수 있는 버튼이 있다.

- 타임아웃 시간 설정 화면

- 타임아웃이 적용된 화면
word_decection.py에서 실행되며
korean_one = ['ㄱ','ㄲ','ㄴ','ㄷ','ㄸ','ㄹ','ㅁ','ㅂ','ㅃ','ㅅ',
'ㅆ','ㅇ','ㅈ','ㅉ','ㅊ','ㅋ','ㅌ','ㅍ','ㅎ']
korean_two = ['ㅏ','ㅐ','ㅑ','ㅒ','ㅓ','ㅔ','ㅕ','ㅖ','ㅗ','ㅘ',
'ㅙ','ㅚ','ㅛ','ㅜ','ㅝ','ㅞ','ㅟ','ㅠ','ㅡ','ㅢ','ㅣ']
korean_three = ['','ㄱ','ㄲ','ㄳ','ㄴ','ㄵ','ㄶ','ㄷ','ㄹ','ㄺ',
'ㄻ','ㄼ','ㄽ','ㄾ','ㄿ','ㅀ','ㅁ','ㅂ','ㅄ','ㅅ',
'ㅆ','ㅇ','ㅈ','ㅊ','ㅋ','ㅌ','ㅍ','ㅎ']
WDLD.txt에있는 비속어 리스트에 해당되는 비속어를 입력하게 되면 필터링에 걸쳐지게 된다.
입력 받은 문자들을 위와 같이 단어를 하나씩 분해하여 탐색하기 때문에 우회적인 단어 입력들도 탐지가 가능하다.
- 우회적인 단어 입력 탐지

- 링크로 접속하여 New Application 버튼을 누른 뒤 원하는 이름을 설정하면 된다.
- New Application을 생성 완료 했다면 SETTINGS에 Bot으로 들어가서 Add Bot을 눌러 봇을 생성한다.
- Bot에 있는 TOKEN 번호를 생성하여 Copy 버튼을 눌러 복사 후 token.txt 파일을 생성하고 붙여넣으면 된다.
- 2.1과 2.2 모두 생성 완료 후 timeout.py를 실행하면 된다.
- $duration 만 입력하게 되면 현재 duration의 값을 알 수 있다.

- $duration s 에서 s에 원하는 시간 초를 입력하게되면 원하는 시간으로 변경 가능하다.

Badwords.txt에 텍스트파일 내에 자세한 설명이 있으니 참고할 것.
초성 비속어를 입력할 땐 $를 반드시 앞에 붙혀야 하며 비속어는 우회되는 단어를 적을 필요없이 기본형만 파일내에 추가하여 저장하면 된다.
- 총 3번의 카운트가 있으며 3번 이상 탐지될 시 타임아웃을 적용한다.

- 3번 이상 탐지 후 타임아웃 적용 장면

- 타임아웃 해제 후 타임아웃 해제 출력 메시지

1. 디스코드 서버 관리자는 비속어 필터링이 되어도 타임아웃이 적용되지 않는다.
2. token.txt 파일이 없으면 실행이 안되니 반드시 생성해야 한다.
3. token 번호를 외부에 노출하게되면 다른 사람들도 봇을 수정할 수 있으니 주의할 것.