discord timeout bot - chilyoon/Badwords_timeout_bot GitHub Wiki

1. λ””μŠ€μ½”λ“œ 비속어 필터링 νƒ€μž„μ•„μ›ƒ 봇

λ””μŠ€μ½”λ“œλ‚΄μ— μ±„νŒ…μ°½μ—μ„œ 비속어λ₯Ό μ‚¬μš©ν•˜κ²Œ λœλ‹€λ©΄ 봇이 비속어λ₯Ό νƒμ§€ν•˜μ—¬ 비속어λ₯Ό μ‚¬μš©ν•œ μœ μ €μ—κ²Œ νƒ€μž„μ•„μ›ƒμ„ μ μš©ν•˜λŠ” κΈ°λŠ₯이닀.

1.1 νƒ€μž„μ•„μ›ƒμ˜ κΈ°λŠ₯

μ„œλ²„μ— μžˆλŠ” κ΄€λ¦¬μžκ°€ μœ μ €μ—κ²Œ νƒ€μž„μ•„μ›ƒμ„ μ μš©ν•˜κ²Œ λœλ‹€λ©΄ λ‹€μŒκ³Ό 같은 μƒνƒœκ°€ μ μš©λœλ‹€.

1. μ±„νŒ…μ°½μ— μ±„νŒ…μ„ μΉ˜κ±°λ‚˜ μ±„νŒ…μ— λ°˜μ‘ν•  수 μ—†μŒ
2. μŒμ„± 채널에 접속 λΆˆκ°€
3. 기쑴에 μŒμ„± 채널에 μ°Έκ°€ μ€‘μ΄μ—ˆλ‹€λ©΄ μžλ™μœΌλ‘œ μ—°κ²° ν•΄μ œ
  • μ„œλ²„μ— μžˆλŠ” μœ μ €λ₯Ό μš°ν΄λ¦­ν•˜λ©΄ νƒ€μž„μ•„μ›ƒμ„ ν•  수 μžˆλŠ” λ²„νŠΌμ΄ μžˆλ‹€.

timeout

  • νƒ€μž„μ•„μ›ƒ μ‹œκ°„ μ„€μ • ν™”λ©΄

duration

  • νƒ€μž„μ•„μ›ƒμ΄ 적용된 ν™”λ©΄

status1 status2

1.2 비속어 필터링 κΈ°λŠ₯

word_decection.pyμ—μ„œ μ‹€ν–‰λ˜λ©°

korean_one = ['γ„±','γ„²','γ„΄','γ„·','γ„Έ','γ„Ή','ㅁ','γ…‚','γ…ƒ','γ……',
              'γ…†','γ…‡','γ…ˆ','γ…‰','γ…Š','γ…‹','γ…Œ','ㅍ','γ…Ž']
korean_two = ['ㅏ','ㅐ','γ…‘','γ…’','γ…“','γ…”','γ…•','γ…–','γ…—','γ…˜',
              'γ…™','γ…š','γ…›','γ…œ','ㅝ','γ…ž','γ…Ÿ','γ… ','γ…‘','γ…’','γ…£']
korean_three = ['','γ„±','γ„²','γ„³','γ„΄','γ„΅','γ„Ά','γ„·','γ„Ή','γ„Ί',
                'γ„»','γ„Ό','γ„½','γ„Ύ','γ„Ώ','γ…€','ㅁ','γ…‚','γ…„','γ……',
                'γ…†','γ…‡','γ…ˆ','γ…Š','γ…‹','γ…Œ','ㅍ','γ…Ž']

WDLD.txtμ—μžˆλŠ” 비속어 λ¦¬μŠ€νŠΈμ— ν•΄λ‹Ήλ˜λŠ” 비속어λ₯Ό μž…λ ₯ν•˜κ²Œ 되면 필터링에 κ±Έμ³μ§€κ²Œ λœλ‹€.
μž…λ ₯ 받은 λ¬Έμžλ“€μ„ μœ„μ™€ 같이 단어λ₯Ό ν•˜λ‚˜μ”© λΆ„ν•΄ν•˜μ—¬ νƒμƒ‰ν•˜κΈ° λ•Œλ¬Έμ— 우회적인 단어 μž…λ ₯듀도 탐지가 κ°€λŠ₯ν•˜λ‹€.

  • 우회적인 단어 μž…λ ₯ 탐지

image

2. ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 방법

2.1 λ””μŠ€μ½”λ“œ 봇 생성 방법

  • 링크둜 μ ‘μ†ν•˜μ—¬ New Application λ²„νŠΌμ„ λˆ„λ₯Έ λ’€ μ›ν•˜λŠ” 이름을 μ„€μ •ν•˜λ©΄ λœλ‹€.
  • New Application을 생성 μ™„λ£Œ ν–ˆλ‹€λ©΄ SETTINGS에 Bot으둜 λ“€μ–΄κ°€μ„œ Add Bot을 눌러 봇을 μƒμ„±ν•œλ‹€.

2.2 token 생성 파일

  • Bot에 μžˆλŠ” TOKEN 번호λ₯Ό μƒμ„±ν•˜μ—¬ Copy λ²„νŠΌμ„ 눌러 볡사 ν›„ token.txt νŒŒμΌμ„ μƒμ„±ν•˜κ³  λΆ™μ—¬λ„£μœΌλ©΄ λœλ‹€.

token

2.3 μ‹€ν–‰ν•˜κΈ°

  • 2.1κ³Ό 2.2 λͺ¨λ‘ 생성 μ™„λ£Œ ν›„ timeout.pyλ₯Ό μ‹€ν–‰ν•˜λ©΄ λœλ‹€.

3. μΆ”κ°€ μ„€μ • κΈ°λŠ₯

3.1 νƒ€μž„μ•„μ›ƒ μ‹œκ°„ λ³€κ²½ 방법

  • $duration 만 μž…λ ₯ν•˜κ²Œ 되면 ν˜„μž¬ duration의 값을 μ•Œ 수 μžˆλ‹€.

duration default

  • $duration s μ—μ„œ s에 μ›ν•˜λŠ” μ‹œκ°„ 초λ₯Ό μž…λ ₯ν•˜κ²Œλ˜λ©΄ μ›ν•˜λŠ” μ‹œκ°„μœΌλ‘œ λ³€κ²½ κ°€λŠ₯ν•˜λ‹€.

change duration

3.2 비속어 리슀트 μΆ”κ°€/제거 방법

Badwords.txt에 ν…μŠ€νŠΈνŒŒμΌ 내에 μžμ„Έν•œ μ„€λͺ…이 μžˆμœΌλ‹ˆ μ°Έκ³ ν•  것.
μ΄ˆμ„± 비속어λ₯Ό μž…λ ₯ν•  땐 $λ₯Ό λ°˜λ“œμ‹œ μ•žμ— λΆ™ν˜€μ•Ό ν•˜λ©° λΉ„μ†μ–΄λŠ” μš°νšŒλ˜λŠ” 단어λ₯Ό 적을 ν•„μš”μ—†μ΄ κΈ°λ³Έν˜•λ§Œ νŒŒμΌλ‚΄μ— μΆ”κ°€ν•˜μ—¬ μ €μž₯ν•˜λ©΄ λœλ‹€.

4. ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ ν™”λ©΄

  • 총 3번의 μΉ΄μš΄νŠΈκ°€ 있으며 3번 이상 탐지될 μ‹œ νƒ€μž„μ•„μ›ƒμ„ μ μš©ν•œλ‹€.

count

  • 3번 이상 탐지 ν›„ νƒ€μž„μ•„μ›ƒ 적용 μž₯λ©΄

timeout

  • νƒ€μž„μ•„μ›ƒ ν•΄μ œ ν›„ νƒ€μž„μ•„μ›ƒ ν•΄μ œ 좜λ ₯ λ©”μ‹œμ§€

timeout remove

5. μ£Όμ˜ν•  점

1. λ””μŠ€μ½”λ“œ μ„œλ²„ κ΄€λ¦¬μžλŠ” 비속어 필터링이 λ˜μ–΄λ„ νƒ€μž„μ•„μ›ƒμ΄ μ μš©λ˜μ§€ μ•ŠλŠ”λ‹€.
2. token.txt 파일이 μ—†μœΌλ©΄ 싀행이 μ•ˆλ˜λ‹ˆ λ°˜λ“œμ‹œ 생성해야 ν•œλ‹€.
3. token 번호λ₯Ό 외뢀에 λ…ΈμΆœν•˜κ²Œλ˜λ©΄ λ‹€λ₯Έ μ‚¬λžŒλ“€λ„ 봇을 μˆ˜μ •ν•  수 μžˆμœΌλ‹ˆ μ£Όμ˜ν•  것.

6. μ‚¬μš© μ†ŒμŠ€

7. λΌμ΄μ„ΌμŠ€

MIT LICENCE