Discord 서버를 위한 올인원 멀티 모듈 봇입니다.
AI, 음악, 게임, 유틸리티 기능을 통합하여 서버 운영과 사용자 경험을 강화합니다.
/도움→ 카테고리별 명령어 안내 (드롭다운 UI 지원)/채널설정 [기능] [(선택)채널]→ 길드별 기념일/도박 채널 지정 또는 해제/채널설정확인→ 현재 설정된 기념일·도박 채널 확인/기념일업데이트→ 오늘 이미 올라간 기념일/사건 공지를 수정하여 최신 내용으로 갱신/환율 [기준통화] [대상통화] [(선택)기간]→ 한국은행 ECOS 기준 최신 환율과 기본 30일 그래프 출력 (최대 365일)/외환보유액 [(선택)기간]→ 한국은행 ECOS 기준 최신 외환보유액과 기본 12개월 그래프 출력 (최대 60개월)- 이모지 확대: 커스텀 이모지 단독 입력 시 원본 크기 이미지 출력
- 자동 태스크
- 매일 자정: 공휴일/기념일 알림
- 주기적 봇 상태(presence) 업데이트
/예약 일반 [날짜] [시간] [메시지]→ 특정 일시에 메시지 예약/예약 반복 [주기] [설정값] [메시지]→ 매시간/매일/매주/매달 반복 예약/예약 리스트→ 예약 목록 확인 및 삭제 (드롭다운 메뉴 제공)
- ChatGPT 연동 (
gpt-5.4-mini)/질문,/검색,/신이시여→ 대화 및 정보 검색/대화요약,/번역,/해석,/설명→ 최근 채팅 요약/번역/심층 해석/내용 설명
- 이미지 + 텍스트 해석 지원
/대화→ 음성 채널에서 봇과 실시간 음성 대화 시작- Whisper 모델을 이용한 고성능 STT (Speech-to-Text)
- 사용자 음성을 인식하여 텍스트로 변환 (현재 STT 기능 구현 완료)
/대화종료→ 대화 세션 종료
/요약→ 최근 유튜브 링크 10개의 제목을 보여주고 선택한 항목을 요약- 영상 요약 (자막 우선 → 오디오 STT → GPT 요약)
- 댓글 요약 → 최대 40개 댓글 GPT 요약
- 라이브 방송 알림 (YouTube WebSub +
videos.list후보 확인)
- 리그오브레전드 내전 팀 배정
/내전 [(선택)추가할사람] [(선택)뺄사람]→ 명령어 실행자가 들어가 있는 음성방 인원으로 레드/블루팀과 탑·정글·미드·원딜·서폿을 랜덤 배정추가할사람은 쉼표, 세미콜론, 줄바꿈으로 여러 명을 입력할 수 있음- 음성방 인원 + 추가 인원이 10명보다 적으면
인원1,인원2처럼 빈 자리를 채우고, 10명을 넘으면 배정하지 않음
- 리그오브레전드 랭크 조회
/솔랭,/자랭,/일일랭크,/일일랭크변경
- 도박 시스템
/뿌리기 [금액] [인원]→ 선착순 버튼으로 랜덤 분배 뿌리기/돈줘→ 매일 1회 10,000원 지급/잔액→ 보유 금액 확인/순위→ 길드 전체 보유 금액 랭킹 확인/송금 [유저] [금액]→ 다른 유저에게 송금/가위바위보 [선택] [배팅금액]→ 승리 시 2배, 무승부 시 절반, 패배 시 전액 잃음/도박 [배팅금액]→ 30%~70% 랜덤 확률, 당첨 시 2배/즉석복권→ 300원으로 복권 구매 (만원 1%, 삼천원 1.7%, 천원 5.6%, 삼백원 11.7%)/사다리 [배팅금액]→ 3개의 사다리 중 당첨을 골라 배팅/슬롯 [배팅금액]→ 3개 슬롯이 일치하면 최대 50배까지 배당/블랙잭 [배팅금액]→ Hit/Stand/Double 지원, 블랙잭 1.5배(총 2.5배 수령)- ※ 도박 관련 명령은
/채널설정 도박으로 지정한 채널에서만 사용 가능- 슬롯별 단일 확률: 🍒 40%, 🔔 25%, 🧩 20%,
♥️ 15% - 3개가 모두 일치할 때 배당: 🍒×3 → 5배, 🔔×3 → 15배, 🧩×3 → 30배,
♥️ ×3 → 50배 - 기대 환수율 ≈ 96.3% (하우스 엣지 ≈ 3.7%)
- 슬롯별 단일 확률: 🍒 40%, 🔔 25%, 🧩 20%,
/재생 [URL]→ 유튜브 음악 재생/일시정지,/다시재생,/스킵,/정지등 기본 컨트롤/대기열,/대기열삭제,/대기열비우기,/대기열이동,/셔플→ 대기열 관리/구간이동,/반복→ 재생 위치와 반복 제어- 패널 UI(버튼) 제공
/파티생성 [이름],/파티초대,/파티참가,/파티탈퇴- 서버 내 그룹 활동 지원
- Python (
discord.py,discord.ui,discord.ext.commands) - OpenAI API (gpt-5.4-mini)
- Google API
- YouTube Data API
- Riot API (리그오브레전드 랭크 데이터)
- Whisper (STT)
- yt-dlp (YouTube 다운로드)
# 1. 환경변수 설정 (.env)
OPENAI_KEY=...
GOOGLE_API_KEY=...
CELEBRATION_UPDATE_API_KEY=...
YOUTUBE_WEBSUB_CALLBACK_URL=https://bot.ios.kr/youtube/websub
YOUTUBE_WEBSUB_VERIFY_TOKEN=...
ECOS_API_KEY=...
# 2. 패키지 설치
pip install -r requirements.txt
# 3. 실행
python bot.pyWindows에서는 _launchBot.ps1 또는 _launchBot.bat로 같은 로컬 실행 경로를 사용할 수 있습니다.
-
POST /celebration/update -
헤더:
Host: bot.ios.kr,X-API-Key: <CELEBRATION_UPDATE_API_KEY> -
본문(JSON, 선택):
{"guild_id": 123456789012345678} -
guild_id를 생략하면 기념일 채널이 설정된 모든 길드의 오늘 공지를 갱신합니다. -
GET /youtube/websub→ YouTube WebSub 구독 검증 challenge 응답 -
POST /youtube/websub→ YouTube Atom 알림 수신 후videos.list로 라이브 여부 확인 -
YOUTUBE_WEBSUB_VERIFY_TOKEN을 설정하면 callback URL query의token값으로 요청을 검증합니다.