Skip to content

디렉터리 구조

├── app/                       # 핵심 패키지
│   ├── config.py              # 경로/환경 변수/로컬 설정 통합 관리
│   ├── crypto.py              # MySekai 저장 파일 AES-128-CBC 복호화
│   ├── parser.py              # msgpack 파싱+사이트 좌표 회전(순수 함수)
│   ├── har.py                 # Reqable 보고서 서버 HAR 파싱 및 압축 해제(순수 함수)
│   ├── render.py              # 드롭 지점 추출 → matplotlib 플로팅+희귀 자원 통계
│   ├── notify.py              # 푸시: Telegram 미디어 그룹/Bark, 플레이어별 라우팅
│   ├── server.py              # FastAPI 업로드 서비스(분할 업로드 + Reqable 보고서 서버)
│   └── cli.py                 # 명령줄 진입점
├── assets/                    # 정적 리소스(저장소에 커밋됨)
│   ├── resourceId.csv         # 아이템 ID → 이름+아이콘(base64)
│   └── NotoSansSC-Regular.ttf # 중국어 폰트(OFL 라이선스)
├── config/                    # 로컬 설정(실제 파일은 커밋하지 않음, *.example.json 참조)
│   ├── bark_map.example.json  # Bark 별칭 → 기기 key 템플릿
│   └── push_map.example.json  # 플레이어 ID → 푸시 방식 템플릿
├── data/                      # 런타임 데이터(디렉터리 전체 gitignore)
│   ├── tmp/                   # 분할 업로드 임시 저장, 병합 후 즉시 삭제
│   ├── raw_mysekai/           # 병합된 원본(암호화) 저장 파일, 영구 보존
│   ├── archive/               # 완성품 보관 by-id/<user>/<타임스탬프>/(Bark 직링크가 이곳을 가리킴)
│   └── latest/                # 가장 최근에 생성된 완성품
├── cli.py                     # 통합 진입점
├── tests/                     # 단위 테스트(pytest)
├── .env.example               # 환경 변수 템플릿(복사하여 .env로 작성)
└── requirements.txt           # 런타임 의존성(정확한 버전 고정)

테스트

bash
python -m pytest