Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature v0.1/현재스케줄 #14

Merged
merged 3 commits into from
Sep 12, 2024

Conversation

mantaGIT
Copy link
Owner

@mantaGIT mantaGIT commented Sep 12, 2024

Feature v0.1

사용자가 선택한 게임 모드의 현재 스케줄 정보를 알려주는 봇 명령어 /현재스케줄을 추가합니다.

작업 내용 요약

  • 새로운 봇 명령어 /현재스케줄을 정의하고 명령어 동작을 구현합니다.
  • splatoon3.ink에서 제공하는 데이터 중 Schedules data URL로부터 데이터를 fetch하고 파싱하는 모듈을 구현합니다.
  • 봇 명령어 응답으로 임베드 메시지를 적용합니다.

작업 내용

새로운 봇 명령어 추가 9e3166f

로컬 환경에 원본 데이터 파일을 미리 저장한 후 활용하였습니다.

  • 명령어 사용 시 명령어 옵션을 통해 사용자가 스케줄을 확인할 게임 모드를 선택할 수 있도록 합니다.

    Pasted image 20240808221916
  • 명령어 응답에는 게임 모드, 스케줄 시작 시간, 스케줄 종료 시간, , 정보를 포함합니다.

    image
  • 데이터는 원본 데이터에서 필요한 정보만 파싱하여 활용하며, 파싱한 데이터는 게임 모드를 기준으로 나누어 파일에 저장합니다.

  • 출력 날짜 형식을 지정하고, 각 데이터는 id로 gamemodeKR.jsonko-KR.json에 대응하여 한국어로 출력합니다.

    image

Data-Fetch 모듈 6bb18f9

원본 데이터 활용 정책에 데이터 업데이트 주기에 대한 설명과 함께 데이터 캐싱을 권장하는 내용이 있습니다.
image

4가지 게임 모드 모두 스케줄 주기가 2시간으로 동일하므로 2시간마다 데이터를 가져와 파일로 저장하도록 합니다.

  • 봇 명령어의 execute 부분에 포함되어 있던 data-fetch 부분을 분리합니다.
  • node-schedule을 사용하여 홀수 시 3분마다 데이터를 가져오도록 data-fetch 모듈을 스케줄링합니다.
  • 스케줄링 발생을 확인하기 위해 로그 출력에 현재 날짜와 시간이 함께 출력되도록 합니다.

임베드 메시지 적용 e079571

제목, 아이콘, 이미지 등의 요소를 메시지에 넣기 위해 임베드 메시지를 적용합니다.

image
  • 원본 데이터에서 사용하는 명칭과 동일하도록 스테이지로 변경하여 표기합니다.
  • 모드 이미지는 static 이미지로, 스테이지 이미지는 원본 데이터 내의 image url을 활용합니다.
  • 임베드 메시지 이미지는 1개만 등록 가능하므로 @napi-rs/canvas를 활용하여 두 개의 스테이지 이미지를 하나의 이미지 파일로 만듭니다.
  • AttachmentBuilder()를 사용하여 메시지 내에 이미지를 URL 형태로 접근할 수 있도록 합니다.

< squashed commits >

add a new slash command "/현재스케줄"

parse schedules data and generate new data files

add command options and apply new data files

apply a date format in log

set the project PATH using dotenv

add locale-specific files

divide data structure codes and apply local-specific files

rename files and folders
< squashed commits >

node-schedule package usage test

rename files

add a schedules-data parser timer

refactor: divide a log module

refactor: divide a schedule-data parser timer into module

add a schedule-data fetch module

refactor: modify a log module

apply the external URL to a schedule-data fetch module
@mantaGIT mantaGIT added the enhancement New feature or request label Sep 12, 2024
@mantaGIT mantaGIT merged commit 15823cd into main-rebase Sep 12, 2024
mantaGIT added a commit that referenced this pull request Sep 12, 2024
@mantaGIT mantaGIT deleted the feature-v0.1/slashCommand-current branch September 12, 2024 08:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant