Add GUI, packaging and export/voice tools

Introduce a tkinter GUI and tooling to produce a single executable and export/convert message data. Adds app_gui.py (GUI launcher that runs decrypt/export/voice subtasks), export_messages.py (export messages to CSV/HTML/JSON), voice_to_mp3.py (extract SILK_V3 voice blobs and convert to MP3 via pilk + ffmpeg), WeChatDecrypt.spec and build.bat (PyInstaller spec and convenience build script), and EXE_USAGE.md (usage for the standalone exe). Update config.py to detect the application base directory when packaged, update README.md to document the GUI and packaging flow, and add pilk/pyinstaller to requirements.txt. Also expand .gitignore with common IDE/build/temp patterns and add output/data directories to ignore. These changes enable one-file packaging and provide end-user tools for decrypting, exporting and converting audio.
This commit is contained in:
xincheng
2026-04-04 06:12:03 +08:00
parent b80e7d1c14
commit a84698b9fc
10 changed files with 1355 additions and 30 deletions

53
build.bat Normal file
View File

@@ -0,0 +1,53 @@
@echo off
chcp 65001 >nul
echo ========================================
echo WeChatDecrypt 打包脚本
echo ========================================
echo.
:: 检查 pyinstaller
where pyinstaller >nul 2>&1
if errorlevel 1 (
echo [!] 未找到 pyinstaller正在安装...
pip install pyinstaller
)
echo [*] 开始打包...
echo.
pyinstaller --noconfirm --onefile --console --name "WeChatDecrypt" ^
--add-data "main.py;." ^
--add-data "config.py;." ^
--add-data "decrypt_db.py;." ^
--add-data "export_messages.py;." ^
--add-data "voice_to_mp3.py;." ^
--add-data "find_all_keys.py;." ^
--add-data "find_all_keys_windows.py;." ^
--add-data "find_all_keys_linux.py;." ^
--add-data "key_scan_common.py;." ^
--add-data "key_utils.py;." ^
--add-data "decode_image.py;." ^
--add-data "find_image_key.py;." ^
--add-data "find_image_key_monitor.py;." ^
--add-data "monitor.py;." ^
--add-data "monitor_web.py;." ^
--add-data "mcp_server.py;." ^
--add-data "config.example.json;." ^
--collect-all pilk ^
app_gui.py
if errorlevel 1 (
echo.
echo [!] 打包失败
pause
exit /b 1
)
echo.
echo ========================================
echo 打包完成!
echo 输出: dist\WeChatDecrypt.exe
for %%F in (dist\WeChatDecrypt.exe) do echo 大小: %%~zF bytes
echo ========================================
echo.
pause