Skip to content

scsc-init/homepage_init_bot

Repository files navigation

homepage_init_bot

SCSC 홈페이지 봇 서버 문서

최초작성일: 2025-06-29
최신개정일: 2025-09-02 최신개정자: 윤영우 작성자: 이한경, 윤영우 ECE, 황민기

브랜치 설명

  • main: 배포된 코드를 저장하며 버전 별로 태그가 붙어 있습니다.
  • develop(default): 개발 중인 코드를 저장합니다.

AQMP Request Format (JSON)

check /docs

.env 파일 형식

.env 파일은 반드시 root에 위치해야 하며 아래 형식으로 작성합니다. 아래 예시 env에 없는 항목은 하드코딩된 기본 값이 설정되어 있습니다. src.core.config.py에서 확인할 수 있습니다. env 파일에서 이를 설정하면 기본 값보다 env 파일 값이 우선하여 적용됩니다.

TOKEN="..."
API_SECRET="some-secret-code"
Key Name Description
RABBITMQ_HOST RabbitMQ가 돌아가는 호스트명. docker의 경우 container 이름과 동일. 메인 BE의 환경 변수명과 동일해야 함.
MAIN_BACKEND_HOST MainBE가 돌아가는 호스트명. docker의 경우 container 이름과 동일. 메인 BE의 환경 변수명과 동일해야 함.
DISCORD_RECEIVE_QUEUE 메인 서버에서 요청을 받는 큐의 명칭. 메인 BE의 환경 변수명과 동일해야 함.
TOKEN 디스코드 봇의 토큰. 디스코드 개발자 사이트 참고.
COMMAND_PREFIX 봇의 커맨드 호출자. 현재는 slashcommand로 구현되어 있으므로 불필요.
API_SECRET API 요청 시 검증에 사용되는 비밀 코드. 메인 BE의 환경 변수명과 동일해야 함.

data.json 파일 형식

./src/bot/discord/data/data.json에 디스코드 봇 구동을 위한 SCSC 디스코드 서버에 대한 필수 정보가 담겨 있습니다. 디스코드 봇이 명령에 따라 이 데이터를 업데이트하기도 합니다. 초기 설정 방식은 다음과 같습니다.

{
  "guildID": 0,
  "channelID": 0,
  "adminRoleID": 0,
  "executiveRoleID": 0,
  "sigCategoryID": 0,
  "sigArchiveCategoryID": 0,
  "pigCategoryID": 0,
  "pigArchiveCategoryID": 0,
  "defaultReason": "from SCSCBot",
  "previousSemester": ""
}

data.example.json의 내용을 수정 후 파일명을 data.json으로 바꿔주세요.

Key Name Description
guildID 디스코드 서버의 ID
channelID 새로운 사용자가 초대될 디스코드 서버의 메인 채널 ID(SCSC 서버의 경우 chat)
adminRoleID 필요 없음. 0으로 고정.
executiveRoleID 필요 없음. 0으로 고정.
sigCategoryID 현재 시점에서 활성화되어 있는 시그 카테고리의 ID. 서버 세팅 후 ID를 복사해서 직접 입력.
sigArchiveCategoryID 바로 직전 학기에 활성화되어 있던 시그 카테고리의 ID. 서버 세팅 후 ID를 복사해서 직접 입력.
pigCategoryID 현재 시점에서 활성화되어 있는 피그 카테고리의 ID. 서버 세팅 후 ID를 복사해서 직접 입력.
pigArchiveCategoryID 바로 직전 학기에 활성화되어 있던 피그 카테고리의 ID. 서버 세팅 후 ID를 복사해서 직접 입력.
defaultReason 필요 없음. ''으로 고정.
previousSemester 직전 학기의 이름(ex. 2025-1, 2025-S). 학기가 바뀐 후 자동 업데이트됨.

디스코드 UI에서 객체를 우클릭하고 Copy xxx ID를 누르면 오브젝트 ID를 얻을 수 있습니다.

Developer Dependencies

environment.yml에서 conda로 환경 설치.

How to Run

logs/

  • 루트에 logs/ 폴더를 추가합니다

디스코드 서버 세팅

Discord 봇 생성에 관해서는, discord.py 공식 문서를 참고하세요.

SCSC 디스코드 서버에서 dormant, newcomer, member, oldboy, executive, president와 같은 6가지 role을 각각의 권한에 맞게 추가합니다. SIG, PIG라는 이름의 카테고리를 생성(이미 없다면)하고 각각의 ID를 복사하여 data.json에 삽입합니다. SIG Archive, PIG Archive로 사용될 카테고리를 생성(이미 없다면)하고 각각의 ID를 복사하여 data.json에 삽입합니다. 카테고리의 이름은 2025-1 SIG Archive, 2025-W PIG Archive 등의 형식으로 하고, case sensitive 입니다. previousSemester에 지난 학기의 명칭을 기입합니다(ex. "2025-1"또는 "2025-S").

실행

In root directory,

docker-compose up --build

For the whole MSA, check main repo.

실행 후 로그

start() called with token='...'
Logged in as Tester2(...)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors