解锁并提取Linux客户端微信数据库 (vibe coded)
at 112 lines 3.2 kB view raw
1{ 2 description = "wxdump-linux: Linux "; 3 4 inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11"; 5 6 outputs = { self, nixpkgs }: 7 let 8 system = "x86_64-linux"; 9 10 # python package overlays (adds missing PyPI deps + local wxdump-linux) 11 pyOverlay = selfP: superP: { 12 blackboxprotobuf = superP.buildPythonPackage { 13 pname = "blackboxprotobuf"; 14 version = "1.0.1"; 15 src = superP.fetchPypi { 16 pname = "blackboxprotobuf"; 17 version = "1.0.1"; 18 sha256 = "1shw3rmbhnmcjyvw20gc9xz1gy8a48m4cwdq40f9vki4di772fr3"; 19 }; 20 doCheck = false; 21 }; 22 23 silk_python = superP.buildPythonPackage { 24 pname = "silk_python"; 25 version = "0.2.8"; 26 format = "wheel"; 27 src = builtins.fetchurl { 28 url = "https://files.pythonhosted.org/packages/fc/0b/898bccc48a88bd2e29e782a7a89ed5334464c3dea24a5c1a56e9d9891889/silk_python-0.2.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl"; 29 sha256 = "1gvw5a8s0xzq553lkha106lyxshdj85r511k1fw8m15mwrxyiqk2"; 30 }; 31 doCheck = false; 32 }; 33 34 "silk-python" = selfP.silk_python; # alias for dash style name 35 36 wxdump-linux = superP.buildPythonPackage { 37 pname = "wxdump-linux"; 38 version = "0.1.0"; 39 src = ./.; 40 pyproject = true; 41 build-system = [ superP.setuptools superP.wheel ]; 42 dependencies = with selfP; [ 43 psutil 44 pycryptodomex 45 requests 46 fastapi 47 uvicorn 48 python-dotenv 49 lz4 50 lxml 51 protobuf 52 pyahocorasick 53 pyaudio 54 blackboxprotobuf 55 silk_python 56 dbutils 57 pydantic 58 zstandard 59 ]; 60 doCheck = false; 61 }; 62 }; 63 64 pkgs = import nixpkgs { 65 inherit system; 66 overlays = [ 67 (final: prev: { 68 python3 = prev.python3.override { 69 packageOverrides = pyOverlay; 70 }; 71 python3Packages = prev.python3Packages.overrideScope pyOverlay; 72 }) 73 ]; 74 }; 75 in { 76 packages.${system}.default = pkgs.python3Packages.wxdump-linux; 77 78 devShells.${system}.default = pkgs.mkShell { 79 packages = [ 80 (pkgs.python3.withPackages (ps: with ps; [ 81 psutil 82 pycryptodomex 83 requests 84 fastapi 85 uvicorn 86 python-dotenv 87 lz4 88 lxml 89 protobuf 90 pyahocorasick 91 pyaudio 92 blackboxprotobuf 93 silk_python 94 dbutils 95 pydantic 96 zstandard 97 ])) 98 pkgs.portaudio # for pyaudio 99 pkgs.ffmpeg # media helpers 100 pkgs.tesseract4 # optional OCR helper 101 pkgs.lz4 102 pkgs.openssl 103 pkgs.libxml2 104 pkgs.libxslt 105 pkgs.zlib 106 ]; 107 shellHook = '' 108 export PYTHONPATH="$PWD:$PYTHONPATH" 109 ''; 110 }; 111 }; 112}