Skip to content

[feature] CLI 에 메가박스 명령 추가 (서버는 구현되어 있으나 megabox-* 명령이 없습니다) #179

Closed

Description

@bgmbgm94

배경/문제

메가박스는 서버 쪽 구현이 모두 갖춰져 있는데 CLI 명령만 없습니다. 의도된 것인지 확인하고 싶어 이슈로 남깁니다.

서버는 정상 동작합니다.

$ daiso get /api/megabox/theaters --limit 1 --json
{ "success": true, "data": { "areaCode": "11", "theaters": [ ... ] } }
  • src/services/megabox/ 에 api.ts / client.ts / location.ts / types.ts / index.ts / tools/ 가 롯데시네마와 같은 구성으로 있습니다.
  • MCP 도구 3종(megabox_find_nearby_theaters, megabox_list_now_showing, megabox_get_remaining_seats)이 등록되어 있습니다.
  • src/index.ts 에 createMegaboxService 와 registerMegaboxRoutes(app) 가 모두 들어가 있고, GET API 3종(/api/megabox/theaters|movies|seats)도 배포본에서 응답합니다.

반면 CLI 명령은 없습니다. daiso --help 기준입니다.

cgv-theaters        CGV 극장 검색
cgv-movies          CGV 영화 검색
cgv-timetable       CGV 시간표 조회
lottecinema-theaters롯데시네마 주변 지점 조회
lottecinema-movies  롯데시네마 영화/회차 조회
lottecinema-seats   롯데시네마 잔여 좌석 조회

영화관 3사 중 메가박스만 CLI로 조회할 수 없어서, daiso get /api/megabox/... 로 경로를 직접 적어야 합니다. 다른 두 체인은 전용 명령이 있어 사용 경험이 갈립니다.

제안 내용

lottecinema-* 와 같은 형태로 메가박스 명령 3종을 추가하면 어떨까 합니다.

명령 대응 API
megabox-theaters /api/megabox/theaters
megabox-movies /api/megabox/movies
megabox-seats /api/megabox/seats

lottecinema-* 가 이미 같은 3종 구조라 그대로 복제하면 될 것으로 보입니다. 손볼 파일은 아래 정도로 파악했습니다.

  • src/cli/commands/cinema.ts — 명령 정의 3개
  • src/cli.ts — 명령 라우팅
  • src/cli/commandOptions.ts — 옵션 정의
  • src/cliHelpDefinitions.ts — 타입 유니온, 명령 목록, 설명, 예시

추가 비용은 없어 보입니다. 메가박스는 createMegaboxService() 가 인자를 받지 않고 client.ts 도 fetch 로 직접 호출해서 Zyte 를 경유하지 않습니다. CLI 는 mcp.aka.page 의 HTTP API 를 부르는 구조라 업스트림 호출량이 늘지도 않습니다.

의도적으로 CLI 에서 제외하신 것이 아니라면 PR 을 준비해 보겠습니다. 명령 이름이나 옵션을 다르게 가져가고 싶으시면 맞추겠습니다.

대안/검토 사항

  • 현행 유지: daiso get /api/megabox/... 로 조회는 가능하므로 기능 자체가 막혀 있지는 않습니다. 다만 다른 두 체인과 사용 방식이 달라집니다.
  • 명령 이름: 롯데시네마가 theaters / movies / seats 를, CGV 가 theaters / movies / timetable 을 쓰고 있어 어느 쪽에 맞출지 판단이 필요해 보입니다. 메가박스 API 경로가 theaters|movies|seats 라 롯데시네마 쪽에 맞추는 편이 자연스러울 것 같습니다.
  • 위치 검색: megabox_find_nearby_theaters 는 지오코딩에 GOOGLE_MAPS_API_KEY 를 쓰지만 키가 없으면 우회하도록 되어 있어, 좌표를 직접 넘기는 경로는 키 없이도 동작합니다. 롯데시네마와 같은 방식이라 CLI 추가로 달라지는 부분은 없어 보입니다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions