Skip to content

Releases

lolterm v0.3.2

Choose a tag to compare

@m16khb m16khb released this 09 Nov 01:30

lolterm v0.3.2

방송을 틀 수 없을 때 경기 흐름을 macOS 메뉴 막대에서 확인할 수 있습니다. 터미널을 닫아도 킬 스코어, 골드 리드, 게임 시계가 메뉴 막대에 표시됩니다.

추가된 것

  • 메뉴 막대 요약(lolterm lol bar): 라이브 경기를 SwiftBar 스트리밍 플러그인 형식으로 출력합니다. 메뉴 막대에는 T1 3–10 BLG · BLG +5.8k · 23:19처럼 블루 팀이 왼쪽인 킬 스코어와 골드 리드, 게임 시계가 나오고, 일시정지 중이면 ⏸가 붙습니다.
  • 드롭다운: 클릭하면 세트 스코어, 킬·골드·타워·억제기·용·바론, 오브젝트 타이머, 선수별 K/D/A·CS·골드·부활 카운트다운이 펼쳐집니다. 라이브 보드와 대화형 앱도 여기서 터미널로 열 수 있습니다.
  • 옵션: -l로 리그를 고정하고, -i로 폴링 간격(기본 5s)을 정하며, -1로 한 블록만 출력합니다.

피드는 relay와 같은 방식으로 받으므로, 플러그인을 시작하기 전에 있었던 일시정지도 게임 시계에서 빠집니다.

문서

  • README와 웹 소개의 소개 문구를 새로 썼고, 메뉴 막대 설정 방법을 추가했습니다.

설치

brew install m16khb-org/tap/lolterm

Homebrew로 설치하면 Go를 따로 설치하지 않아도 됩니다. 처음 설치할 때는 위처럼 전체 이름을 씁니다. Go 1.21 이상이 있으면 다음 명령으로도 설치할 수 있습니다.

go install github.com/m16khb-org/lolterm@latest

메뉴 막대 설정 절차는 README에 있습니다. 전체 설치 안내는 INSTALL.md를 참고하세요.

검증

  • go build ./..., go vet ./...(macOS·Linux·Windows), go test -race ./...(macOS)를 통과했습니다.
  • 진행 중인 Worlds 4강 T1-BLG 경기에서 lolterm lol bar의 출력을 확인했습니다.

알아 두세요

  • 메뉴 막대 표시에는 macOS용 SwiftBar가 필요합니다.
  • lolesports.com의 비공식 엔드포인트를 사용합니다. Riot Games와 공식적인 관련이 없습니다.

lolterm v0.3.0

Choose a tag to compare

@m16khb m16khb released this 07 Nov 02:51

lolterm v0.3.0

보드가 이제 livestats 피드가 주는 정확한 값만 보여 줍니다.
방송 영상을 읽어 챔피언 위치와 텔레포트를 추정하던 기능은 모두 뺐습니다. 실제 방송과 비교해 보니 틀리는 경우가 너무 많았기 때문입니다.

바뀐 것

  • 피드 값만 표시 — 킬·골드 바, 용·바론·타워·억제기 수, 용·바론 등장 타이머, 선수별 KDA·CS·골드·HP, 부활 카운트다운. 라이브 부활 시간만 추정이라 ~가 붙고, 다시 보기에서는 피드에 기록된 실제 시각을 씁니다.
  • 다시 보기 — 끝난 세트를 피드만으로 재생합니다. 공식 VOD는 쓰지 않습니다.
  • 외부 도구 불필요 — yt-dlp, ffmpeg, JS 런타임이 더 이상 필요 없습니다. Go 표준 라이브러리만 쓰는 단일 바이너리입니다.

고친 것

  • 팀 이름과 킬이 엇갈려 보이던 문제 — 진영이 바뀐 세트에서 레드 팀 이름 아래에 블루 팀의 킬·골드가 나왔습니다. 이제 블루 팀이 항상 왼쪽입니다.
  • 일시정지 뒤에 연 보드의 시계 — 보드를 열기 전에 있었던 일시정지를 피드 기록에서 찾아 게임 시계에 반영합니다. 예를 들어 6분 46초 일시정지가 있었던 Worlds 8강 T1-KC 3세트에서 시계가 33:39로 앞서 나오던 것이 26:53으로 맞습니다.
  • 리그 지정 — lolterm lol relay -l lck가 다른 리그의 라이브 경기를 보여 주지 않습니다.
  • 명령 오류 — 알 수 없는 리그나 네트워크 오류가 나면 streams·standings 명령이 오류 메시지를 보여 주고 종료 코드 1로 끝납니다. standings는 이긴 팀에 *를 붙입니다.

없어진 것 (호환되지 않는 변경)

  • m(미니맵)·v(영상 동기화) 키, -src·-icons 옵션, lolterm lol minimap 명령
  • 옵션 메뉴의 "미니맵 그리기"·"방송 영상 동기화", 세트 목록의 VOD 표시

챔피언 위치, 텔레포트·귀환, 밴픽, 전령·공허 유충은 공식 피드에 없어서 보여 주지 않습니다.

설치

go install github.com/m16khb-org/lolterm@latest

자세한 내용은 INSTALL.md를 참고하세요.

이전 버전에서 옮겨 오는 경우

  • 더 이상 쓰지 않는 캐시 폴더는 지워도 됩니다: <UserCacheDir>/lolterm/ddragon, <UserCacheDir>/lolterm/backtest (Windows: %LocalAppData%\lolterm)
  • LOLTERM_FFMPEG, LOLTERM_YTDLP 환경 변수는 더 이상 읽지 않습니다.
  • v0.1.0은 철회(retract)했습니다. 모듈 경로가 예전 이름(esterm)이라 설치되지 않습니다.

검증

  • go build, go vet(Windows·Linux·macOS), go test ./...(Windows)과 go test -race ./...(Linux)를 통과했습니다.
  • 실제 Worlds 8강 T1-KC 경기로 확인했습니다: 라이브 4세트 보드, 3세트 다시 보기, 일시정지 뒤 시계 보정, 블루 팀 왼쪽 배치.

알아 두세요

  • lolesports.com의 비공식 엔드포인트를 사용합니다. Riot Games와 공식적인 관련이 없습니다.

전체 문서는 README와 웹 소개에서 확인할 수 있습니다.

lolterm v0.1.0

Choose a tag to compare

@m16khb m16khb released this 06 Nov 01:41

lolterm v0.1.0

첫 공개 릴리스입니다. 리그 오브 레전드 e스포츠를 터미널에서 보는 단일 Go 바이너리입니다.
프로젝트 이름이 esterm에서 lolterm으로 바뀌었습니다. 이 태그는 새 이름의 커밋을 가리킵니다.

포함된 것

  • 라이브 보드 — 킬·골드 바, 오브젝트 수, 선수별 KDA·CS·골드·HP를 0.5초마다 갱신
  • 다시 보기 — 공식 VOD와 livestats 피드를 같은 게임 시각에 맞춰 재생
  • 방송 미니맵 — 공식 1080p 방송에서 10명의 챔피언 위치를 직접 추적
  • 상태 표시 — 사망, 놓침, 귀환·텔레포트, 레드 팀 채널링을 아이콘과 아우라로 구분
  • 텔레포트 도착 지점 — 방송이 도착 지점에 그리는 팀 색 소용돌이를 찾아 표시. 레드 팀 빨간 링도 도착 지점이 보이면 T로 표시. -json에 teleports[{team,pid,x,y}]
  • 터미널 네이티브 — lazygit 스타일 창, 마우스 클릭·더블클릭·휠, kitty/blocks/text 모드
  • 3개 언어 — 한국어·영어·중국어 UI (-lang ko|en|zh, LOLTERM_LANG)
  • macOS · Linux · Windows — Windows 10 1809 이상에서 네이티브로 빌드·실행. 자식 프로세스는 잡 객체에 묶여 함께 종료

설치

go install github.com/m16khb-org/lolterm@latest

미니맵을 쓰려면 yt-dlp, ffmpeg, JS 런타임(deno 권장)이 필요합니다. Windows는 winget으로 설치합니다.
자세한 내용은 INSTALL.md를 참고하세요.

esterm에서 옮겨 오는 경우

  • 실행 파일 esterm → lolterm, 모듈 경로 github.com/m16khb-org/esterm → github.com/m16khb-org/lolterm
  • 환경 변수 ESTERM_* → LOLTERM_* (LOLTERM_FFMPEG, LOLTERM_YTDLP, LOLTERM_LANG 등). 예전 이름은 읽지 않습니다.
  • 캐시 폴더 <UserCacheDir>/esterm → <UserCacheDir>/lolterm. 처음 실행할 때 Data Dragon 이미지를 다시 받습니다.
  • 예전 바이너리는 지워 주세요: rm "$(go env GOPATH)/bin/esterm" (Windows: Remove-Item $env:USERPROFILE\go\bin\esterm.exe)

검증

  • Worlds·LCK·LPL·LEC 16경기 백테스트에서 생존 챔피언 검출 94.0%, 죽은 챔피언 오검출 0.00%, 킬 플립 동기 오차 1초 이내 97.2%를 기록했습니다.
  • 텔레포트 도착 지점: 눈으로 표시한 도착 지점 Worlds 9/9, LPL 7/7, LEC 6/6을 찾았고 오검출은 0건이었습니다.
  • Windows: 대화형 앱, 메인 뷰를 포함한 미니맵, 강제 종료 뒤 ffmpeg가 남지 않는 것을 확인했습니다.

알아 두세요

  • 한타에 가려진 텔레포트 도착 지점은 아직 놓칩니다.
  • Windows의 kitty 그래픽은 TERM_PROGRAM=WezTerm일 때만 고릅니다.
  • lolesports.com의 비공식 엔드포인트를 사용합니다. 영상은 개인 시청 목적으로만 처리합니다.
  • Riot Games와 공식적인 관련이 없습니다.

전체 문서는 README와 웹 소개에서 확인할 수 있습니다.