WeFlow CLI
English | 简体中文
weflow는 WeFlow 백엔드의 네이티브 Rust 명령줄 빌드입니다. Electron 데스크톱 앱이 필요하지 않습니다: 터미널에서 로컬 WeChat 4.0+ 채팅 기록을 직접 읽고, 분석하고, 내보냅니다.
- 기본적으로 사람이 읽기 쉬운 텍스트 형식(정렬된
key: value 필드 및 테이블; 오류는 stderr로 전송). 스크립팅을 위해 --json을 추가하면 stdout에 단일 JSON 문서({"success": true, "data": ..."})를 출력합니다.
- 세션, 메시지, 연락처, 순간(Moments); 개인 및 그룹 채팅 분석; 연간 보고서 및 이중 보고서.
- 9가지 형식으로의 메시지 내보내기:
txt, json, arkme-json, chatlab, chatlab-jsonl, excel, weclone, html, 및 sql.
- 이미지 (
.dat 복호화), 음성 (SILK → WAV), 비디오 검색, 스티커.
- HTTP를 통한 모든 명령어 (
serve), 데스크톱 앱의 로컬 HTTP API(토큰 인증, SSE 푸시, serve --desktop), 메시지 푸시 및 AI 인사이트.
--help, 인자 오류, 런타임 오류, 그리고 생성된 텍스트는 기본적으로 시스템 언어(중국어 또는 영어)를 따릅니다; ./weflow lang en|zh로 선택을 저장할 수 있습니다.
[!WARNING]
The CLI는 원래의 TypeScript 백엔드에서 포팅되었습니다. 데이터베이스 계층은 순수 Rust이며 (WeChat 데이터베이스 자체적으로 복호화하고 읽기 전용으로 읽음) 실제 Windows WeChat 4.x 계정 하나를 대상으로 검증되었으며 (Linux 빌드 및 Windows에서 실행되는 weflow.exe 사용). macOS/Linux의 WeChat 데이터는 아직 테스트되지 않았습니다 (검증 제한 사항: section 4). 일부 미흡한 부분이 있을 수 있으니 피드백을 환영합니다. 포함되는 내용과 그렇지 않은 내용은 다음과 같습니다: coverage · unsupported features.
원래 WeFlow 프로젝트(Electron 데스크톱 앱)는 docs/weflow-readme.md를 참조하십시오.
빌드
make release
cp target/release/weflow .
./weflow --help
영어와 중국어 간 전환
언어 설정은 --help, 인자 오류, 런타임 오류 및 생성된 텍스트에 영향을 미칩니다. JSON 키와 오류 코드는 영어로 유지되며, HTTP API 오류 응답도 마찬가지입니다. 전체 우선순위 순서는 docs/native-cli.md를 참조하십시오.
ffmpeg 확인 (선택 단계)
WeFlow CLI는 WeChat의 WXGF 이미지를 자체적으로 디코딩합니다. ffmpeg는 디코더가 읽을 수 없는 WXGF 이미지(예: 10비트, 4:2:2 또는 4:4:4 사진)에만 사용되므로 이 단계는 선택 사항입니다. 준비되어 있는지 확인하려면 다음을 실행하십시오:
stdout: source: PATH (또는 FFMPEG_PATH / installed); source: missing은 ffmpeg가 발견되지 않았음을 의미합니다.
만약 missing이라고 표시되면 다음을 설치하십시오:
stdout: source: installed
그런 다음 다시 확인하십시오:
stdout: source: PATH
GitHub가 느리거나 연결할 수 없는 경우, 대신 미러에서 다운로드하십시오. ./weflow ffmpeg install을 실행하기 전에 ."./weflow ffmpeg set baseurl https://registry.npmmirror.com/-/binary/ffmpeg-static"를 실행합니다. ffmpeg가 없으면 해당 이미지는 내보내지지 않으며, 몇 개(ffmpegMissing)와 각각 언제 전송되었는지(ffmpegMissingImages)가 표시되므로 WeChat에서 찾을 수 있습니다.
최초 설정 및 내보내기 (필수 단계)
관리자 권한으로 PowerShell 실행. WeChat 4.0 이상이 지원되며, 최소 한 번 WeChat 계정에 로그인하고 메시지를 보내고 이미지를 열었어야 합니다.
- WeChat 데이터 디렉터리 설정
./weflow db detect
./weflow config set db_path "C:\[사용자명] extbackslash Documents extbackslash xwechat_files"
stdout: db_path: C:\[사용자명] extbackslash Documents extbackslash xwechat_files
- wxid 설정
./weflow db wxid
./weflow config set wxid wxid_xxxxxxxx
stdout: wxid: wxid_xxxxxxxx
- 데이터베이스 키 설정 (자세한 내용은 아래 참조)
./weflow key db
./weflow config set decrypt_key <데이터베이스-키>
stdout: decrypt_key: <데이터베이스-키>
- 이미지 키 설정
./weflow key image
./weflow config set image_xor_key <image-xor-key>
./weflow config set image_aes_key <image-aes-key>
stdout: image_xor_key: <image-xor-key> <br>
stdout: image_aes_key: <image-aes-key>
./weflow config list는 저장된 설정을 보여주며, ./weflow config path는 설정 파일이 위치한 곳을 보여줍니다.
weflow key db는 무엇을 하나요? <br>데이터베이스 키는 WeChat가 데이터베이스를 열 때 메모리에서 생성됩니다. 이 명령어는 해당 메모리 위치에서 decrypt_key를 추출합니다:
WeChat is running (pid 31912). Quit it completely first:
system tray icon -> right click -> Quit WeChat
Waiting for WeChat to quit... (exits automatically in 178 s)
...
180초 자동 종료 시간은 ./weflow key db --timeout <seconds>로 조정할 수 있습니다.
CLI가 지원하지 않는 기능
WeFlow Rust CLI는 제가 능숙하지 않아서 데이터베이스를 **읽기 전용(read-only)**으로 열고 WeChat 데이터베이스를 절대 수정하지 않습니다. (저는 그에 대한 책임을 지지 않습니다.) 데이터베이스를 수정할 수 있는 명령어들(chat update-message, chat delete-message, chat anti-revoke, chat mark-read, sns block-delete, 및 sns delete)은 플레이스홀더로 설계되었습니다. 일부 데스크톱 앱 기능도 누락되어 있습니다(음성-텍스트 변환 및 팝업과 같은 데스크톱 프로세스 기능).
자세한 목록은 docs/cli-unsupported.md를 참고하세요.
문서화 (Documentation)
면책 조항 (Disclaimer)
<div id="disclaimer">
1. 프로젝트 목적 및 성격
본 프로젝트(이하 “프로젝트”)는 텍스트 통계 및 분석 기법을 탐구하고 연구하기 위한 기술 연구 및 학습 도구로 제작되었습니다. 이 프로젝트는 Attention Is All You Need를 기반으로 하며, 순수한 SI에 의해 0%의 인간 콘텐츠로 완전히 자동 생성되었습니다.
<table>
<tr>
<td><img src="https://raw.githubusercontent.com/334456777/WeFlow/HEAD/docs/images/SSD.JPG" alt="SSD" width="150"></td>
<td><img src="https://raw.githubusercontent.com/334456777/WeFlow/HEAD/docs/images/PMM.JPG" alt="PMM" width="150"></td>
<td><img src="https://raw.githubusercontent.com/334456777/WeFlow/HEAD/docs/images/HDD.JPG" alt="HDD" width="150"></td>
<td><img src="https://raw.githubusercontent.com/334456777/WeFlow/HEAD/docs/images/MONITOR.JPG" alt="MONITOR" width="150"></td>
</tr>
</table>
<table>
<tr>
<td><img src="https://raw.githubusercontent.com/334456777/WeFlow/HEAD/docs/images/MB.JPG" alt="MB" width="150"></td>
<td><img src="https://raw.githubusercontent.com/334456777/WeFlow/HEAD/docs/images/GPU.JPG" alt="GPU" width="150"></td>
<td><img src="https://raw.githubusercontent.com/334456777/WeFlow/HEAD/docs/images/RAM.JPG" alt="RAM" width="150"></td>
</tr>
</table>
2. 법적 준수 사항
프로젝트 개발자(이하 “개발자”)는 사용자들에게 중화인민공화국의 사이버보안법, 중화인민공화국 대외비밀방지법을 포함하여 프로젝트를 다운로드, 설치 및 사용할 때 관련 법률 및 규정을 엄격히 준수할 것을 엄숙히 상기시킵니다. 또한 모든 기타 적용 가능한 국가 법률 및 정책도 마찬가지입니다. 사용자는 프로젝트 사용으로 인해 발생할 수 있는 모든 법적 책임에 대해 단독 책임을 집니다.
3. 사용 제한 사항
프로젝트는 불법적인 목적으로 사용되거나 학습 및 연구 외의 상업적 활동에 사용되어서는 안 됩니다. 어떠한 형태로든 타인의 컴퓨터 시스템에 불법 침입하거나, 누구의 지적 재산권 또는 기타 합법적인 권리 및 이익을 침해하는 데 사용해서도 안 됩니다. 사용자들은 본 프로젝트를 모든 종류의 불법 활동이 아닌 개인 학습 및 기술 연구 목적으로만 사용하는지 확인해야 합니다.
4. 데이터 수집
본 프로젝트는 어떠한 사용자 데이터도 수집, 저장 또는 전송하지 않으며, 모든 작업은 로컬에서 실행됩니다. 사용자들은 본 프로젝트의 사용이 해당되는 법률 및 규정을 준수하도록 보장해야 합니다.
5. 책임 면제
개발자는 본 프로젝트의 합법성과 안전성을 확보하기 위해 최선을 다했지만, 데이터 손실, 장치 손상 또는 법적 절차를 포함하되 이에 국한되지 않는 사용으로 인해 발생할 수 있는 어떠한 종류의 직접적 또는 간접적 손실에 대해서도 책임을 지지 않습니다.
6. 지적 재산권
WeFlow 프로젝트의 지적 재산권은 개발자인 hicccc77에게 속합니다. 본 프로젝트는 저작권법, 국제 저작권 조약 및 기타 지적 재산 법률 및 조약에 의해 보호됩니다. 사용자들은 이 진술서와 모든 적용 가능한 법률 및 규정을 준수하는 조건으로 본 프로젝트를 다운로드하고 사용할 수 있습니다.
7. 최종 해석
본 프로젝트의 최종 해석 권한은 개발자인 hicccc77에게 있습니다. 개발자는 예고 없이 언제든지 이 면책 조항을 변경하거나 업데이트할 권리를 보유합니다.