From 925c5e166b01592561753766425b17d1c496db41 Mon Sep 17 00:00:00 2001 From: Friendfeng <3880261409@qq.com> Date: Fri, 6 Jun 2025 23:33:48 +0800 Subject: [PATCH] new file: FFAI/__pycache__/analyzer.cpython-313.pyc new file: FFAI/__pycache__/crawlers.cpython-313.pyc new file: FFAI/analyzer.py new file: FFAI/crawlers.py new file: FFAI/main.py renamed: main/build/newtest/Analysis-00.toc -> test/build/newtest/Analysis-00.toc renamed: main/build/newtest/COLLECT-00.toc -> test/build/newtest/COLLECT-00.toc renamed: main/build/newtest/EXE-00.toc -> test/build/newtest/EXE-00.toc renamed: main/build/newtest/PKG-00.toc -> test/build/newtest/PKG-00.toc renamed: main/build/newtest/PYZ-00.pyz -> test/build/newtest/PYZ-00.pyz renamed: main/build/newtest/PYZ-00.toc -> test/build/newtest/PYZ-00.toc renamed: main/build/newtest/base_library.zip -> test/build/newtest/base_library.zip renamed: main/build/newtest/localpycs/pyimod01_archive.pyc -> test/build/newtest/localpycs/pyimod01_archive.pyc renamed: main/build/newtest/localpycs/pyimod02_importers.pyc -> test/build/newtest/localpycs/pyimod02_importers.pyc renamed: main/build/newtest/localpycs/pyimod03_ctypes.pyc -> test/build/newtest/localpycs/pyimod03_ctypes.pyc renamed: main/build/newtest/localpycs/pyimod04_pywin32.pyc -> test/build/newtest/localpycs/pyimod04_pywin32.pyc renamed: main/build/newtest/localpycs/struct.pyc -> test/build/newtest/localpycs/struct.pyc renamed: main/build/newtest/newtest.exe -> test/build/newtest/newtest.exe renamed: main/build/newtest/newtest.pkg -> test/build/newtest/newtest.pkg renamed: main/build/newtest/warn-newtest.txt -> test/build/newtest/warn-newtest.txt renamed: main/build/newtest/xref-newtest.html -> test/build/newtest/xref-newtest.html new file: test/dist/newtest/_internal/VCRUNTIME140.dll renamed: main/dist/newtest/_internal/_bz2.pyd -> test/dist/newtest/_internal/_bz2.pyd renamed: main/dist/newtest/_internal/_decimal.pyd -> test/dist/newtest/_internal/_decimal.pyd renamed: main/dist/newtest/_internal/_hashlib.pyd -> test/dist/newtest/_internal/_hashlib.pyd renamed: main/dist/newtest/_internal/_lzma.pyd -> test/dist/newtest/_internal/_lzma.pyd renamed: main/dist/newtest/_internal/_socket.pyd -> test/dist/newtest/_internal/_socket.pyd renamed: main/dist/newtest/_internal/api-ms-win-core-console-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-console-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-datetime-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-datetime-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-debug-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-debug-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-errorhandling-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-errorhandling-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-fibers-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-fibers-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-file-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-file-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-file-l1-2-0.dll -> test/dist/newtest/_internal/api-ms-win-core-file-l1-2-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-file-l2-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-file-l2-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-handle-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-handle-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-heap-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-heap-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-interlocked-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-interlocked-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-libraryloader-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-libraryloader-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-localization-l1-2-0.dll -> test/dist/newtest/_internal/api-ms-win-core-localization-l1-2-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-memory-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-memory-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-namedpipe-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-namedpipe-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-processenvironment-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-processenvironment-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-1.dll -> test/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-1.dll renamed: main/dist/newtest/_internal/api-ms-win-core-profile-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-profile-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-string-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-string-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-synch-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-synch-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-synch-l1-2-0.dll -> test/dist/newtest/_internal/api-ms-win-core-synch-l1-2-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-sysinfo-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-sysinfo-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-timezone-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-timezone-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-core-util-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-core-util-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-crt-conio-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-crt-conio-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-crt-convert-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-crt-convert-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-crt-environment-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-crt-environment-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-crt-filesystem-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-crt-filesystem-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-crt-heap-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-crt-heap-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-crt-locale-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-crt-locale-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-crt-math-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-crt-math-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-crt-process-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-crt-process-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-crt-runtime-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-crt-runtime-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-crt-stdio-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-crt-stdio-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-crt-string-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-crt-string-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-crt-time-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-crt-time-l1-1-0.dll renamed: main/dist/newtest/_internal/api-ms-win-crt-utility-l1-1-0.dll -> test/dist/newtest/_internal/api-ms-win-crt-utility-l1-1-0.dll renamed: main/dist/newtest/_internal/base_library.zip -> test/dist/newtest/_internal/base_library.zip renamed: main/dist/newtest/_internal/libcrypto-3.dll -> test/dist/newtest/_internal/libcrypto-3.dll renamed: main/dist/newtest/_internal/python313.dll -> test/dist/newtest/_internal/python313.dll renamed: main/dist/newtest/_internal/select.pyd -> test/dist/newtest/_internal/select.pyd renamed: main/dist/newtest/_internal/ucrtbase.dll -> test/dist/newtest/_internal/ucrtbase.dll renamed: main/dist/newtest/_internal/unicodedata.pyd -> test/dist/newtest/_internal/unicodedata.pyd renamed: main/dist/newtest/newtest.exe -> test/dist/newtest/newtest.exe renamed: main/newtest.py -> test/newtest.py renamed: main/newtest.spec -> test/newtest.spec --- FFAI/__pycache__/analyzer.cpython-313.pyc | Bin 0 -> 2586 bytes FFAI/__pycache__/crawlers.cpython-313.pyc | Bin 0 -> 4682 bytes FFAI/analyzer.py | 39 ++++++++++ FFAI/crawlers.py | 71 ++++++++++++++++++ FFAI/main.py | 59 +++++++++++++++ {main => test}/build/newtest/Analysis-00.toc | 0 {main => test}/build/newtest/COLLECT-00.toc | 0 {main => test}/build/newtest/EXE-00.toc | 0 {main => test}/build/newtest/PKG-00.toc | 0 {main => test}/build/newtest/PYZ-00.pyz | Bin {main => test}/build/newtest/PYZ-00.toc | 0 {main => test}/build/newtest/base_library.zip | Bin .../newtest/localpycs/pyimod01_archive.pyc | Bin .../newtest/localpycs/pyimod02_importers.pyc | Bin .../newtest/localpycs/pyimod03_ctypes.pyc | Bin .../newtest/localpycs/pyimod04_pywin32.pyc | Bin .../build/newtest/localpycs/struct.pyc | Bin {main => test}/build/newtest/newtest.exe | Bin {main => test}/build/newtest/newtest.pkg | Bin {main => test}/build/newtest/warn-newtest.txt | 0 .../build/newtest/xref-newtest.html | 0 test/dist/newtest/_internal/VCRUNTIME140.dll | Bin 0 -> 120400 bytes .../dist/newtest/_internal/_bz2.pyd | Bin .../dist/newtest/_internal/_decimal.pyd | Bin .../dist/newtest/_internal/_hashlib.pyd | Bin .../dist/newtest/_internal/_lzma.pyd | Bin .../dist/newtest/_internal/_socket.pyd | Bin .../api-ms-win-core-console-l1-1-0.dll | Bin .../api-ms-win-core-datetime-l1-1-0.dll | Bin .../api-ms-win-core-debug-l1-1-0.dll | Bin .../api-ms-win-core-errorhandling-l1-1-0.dll | Bin .../api-ms-win-core-fibers-l1-1-0.dll | Bin .../_internal/api-ms-win-core-file-l1-1-0.dll | Bin .../_internal/api-ms-win-core-file-l1-2-0.dll | Bin .../_internal/api-ms-win-core-file-l2-1-0.dll | Bin .../api-ms-win-core-handle-l1-1-0.dll | Bin .../_internal/api-ms-win-core-heap-l1-1-0.dll | Bin .../api-ms-win-core-interlocked-l1-1-0.dll | Bin .../api-ms-win-core-libraryloader-l1-1-0.dll | Bin .../api-ms-win-core-localization-l1-2-0.dll | Bin .../api-ms-win-core-memory-l1-1-0.dll | Bin .../api-ms-win-core-namedpipe-l1-1-0.dll | Bin ...-ms-win-core-processenvironment-l1-1-0.dll | Bin .../api-ms-win-core-processthreads-l1-1-0.dll | Bin .../api-ms-win-core-processthreads-l1-1-1.dll | Bin .../api-ms-win-core-profile-l1-1-0.dll | Bin .../api-ms-win-core-rtlsupport-l1-1-0.dll | Bin .../api-ms-win-core-string-l1-1-0.dll | Bin .../api-ms-win-core-synch-l1-1-0.dll | Bin .../api-ms-win-core-synch-l1-2-0.dll | Bin .../api-ms-win-core-sysinfo-l1-1-0.dll | Bin .../api-ms-win-core-timezone-l1-1-0.dll | Bin .../_internal/api-ms-win-core-util-l1-1-0.dll | Bin .../_internal/api-ms-win-crt-conio-l1-1-0.dll | Bin .../api-ms-win-crt-convert-l1-1-0.dll | Bin .../api-ms-win-crt-environment-l1-1-0.dll | Bin .../api-ms-win-crt-filesystem-l1-1-0.dll | Bin .../_internal/api-ms-win-crt-heap-l1-1-0.dll | Bin .../api-ms-win-crt-locale-l1-1-0.dll | Bin .../_internal/api-ms-win-crt-math-l1-1-0.dll | Bin .../api-ms-win-crt-process-l1-1-0.dll | Bin .../api-ms-win-crt-runtime-l1-1-0.dll | Bin .../_internal/api-ms-win-crt-stdio-l1-1-0.dll | Bin .../api-ms-win-crt-string-l1-1-0.dll | Bin .../_internal/api-ms-win-crt-time-l1-1-0.dll | Bin .../api-ms-win-crt-utility-l1-1-0.dll | Bin .../dist/newtest/_internal/base_library.zip | Bin .../dist/newtest/_internal/libcrypto-3.dll | Bin .../dist/newtest/_internal/python313.dll | Bin .../dist/newtest/_internal/select.pyd | Bin .../dist/newtest/_internal/ucrtbase.dll | Bin .../dist/newtest/_internal/unicodedata.pyd | Bin {main => test}/dist/newtest/newtest.exe | Bin {main => test}/newtest.py | 0 {main => test}/newtest.spec | 0 75 files changed, 169 insertions(+) create mode 100644 FFAI/__pycache__/analyzer.cpython-313.pyc create mode 100644 FFAI/__pycache__/crawlers.cpython-313.pyc create mode 100644 FFAI/analyzer.py create mode 100644 FFAI/crawlers.py create mode 100644 FFAI/main.py rename {main => test}/build/newtest/Analysis-00.toc (100%) rename {main => test}/build/newtest/COLLECT-00.toc (100%) rename {main => test}/build/newtest/EXE-00.toc (100%) rename {main => test}/build/newtest/PKG-00.toc (100%) rename {main => test}/build/newtest/PYZ-00.pyz (100%) rename {main => test}/build/newtest/PYZ-00.toc (100%) rename {main => test}/build/newtest/base_library.zip (100%) rename {main => test}/build/newtest/localpycs/pyimod01_archive.pyc (100%) rename {main => test}/build/newtest/localpycs/pyimod02_importers.pyc (100%) rename {main => test}/build/newtest/localpycs/pyimod03_ctypes.pyc (100%) rename {main => test}/build/newtest/localpycs/pyimod04_pywin32.pyc (100%) rename {main => test}/build/newtest/localpycs/struct.pyc (100%) rename {main => test}/build/newtest/newtest.exe (100%) rename {main => test}/build/newtest/newtest.pkg (100%) rename {main => test}/build/newtest/warn-newtest.txt (100%) rename {main => test}/build/newtest/xref-newtest.html (100%) create mode 100644 test/dist/newtest/_internal/VCRUNTIME140.dll rename {main => test}/dist/newtest/_internal/_bz2.pyd (100%) rename {main => test}/dist/newtest/_internal/_decimal.pyd (100%) rename {main => test}/dist/newtest/_internal/_hashlib.pyd (100%) rename {main => test}/dist/newtest/_internal/_lzma.pyd (100%) rename {main => test}/dist/newtest/_internal/_socket.pyd (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-console-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-datetime-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-debug-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-errorhandling-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-fibers-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-file-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-file-l1-2-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-file-l2-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-handle-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-heap-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-interlocked-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-libraryloader-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-localization-l1-2-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-memory-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-namedpipe-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-processenvironment-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-1.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-profile-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-string-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-synch-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-synch-l1-2-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-sysinfo-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-timezone-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-core-util-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-crt-conio-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-crt-convert-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-crt-environment-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-crt-filesystem-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-crt-heap-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-crt-locale-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-crt-math-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-crt-process-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-crt-runtime-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-crt-stdio-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-crt-string-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-crt-time-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/api-ms-win-crt-utility-l1-1-0.dll (100%) rename {main => test}/dist/newtest/_internal/base_library.zip (100%) rename {main => test}/dist/newtest/_internal/libcrypto-3.dll (100%) rename {main => test}/dist/newtest/_internal/python313.dll (100%) rename {main => test}/dist/newtest/_internal/select.pyd (100%) rename {main => test}/dist/newtest/_internal/ucrtbase.dll (100%) rename {main => test}/dist/newtest/_internal/unicodedata.pyd (100%) rename {main => test}/dist/newtest/newtest.exe (100%) rename {main => test}/newtest.py (100%) rename {main => test}/newtest.spec (100%) diff --git a/FFAI/__pycache__/analyzer.cpython-313.pyc b/FFAI/__pycache__/analyzer.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ca0b8e422b164659d8737b9fe9df67685ec01a0a GIT binary patch literal 2586 zcmaJ?U2Gdg5Z?Rs`SRoZG}KMw+ASun0Xs-dXhTh<{-h0rMv%i4l)&j~pJNy2F5Nqm zra}nuP^Ax05JV&bDG?xKkU*v4p&*ceCmw4oNLUI&f&hI>>x!y8F?)B;Pg_{~W@m4H zc6N5=yJ|y&j9?5&2XdnVLch^PZSWpby%(5iq#%VEK$y<#0P`@5*$4`vZAjtTk;3<| zt~TaInV4{yE(T)^@f|RWhOOhYD|M;QTT~whW*Utk%qR%63WK>3UhymJh@fyIVmGhw z?dUjvoayllun*+Ii0ElZ-J&8=jTO0H@nLyXipiw@(IVFO8CqfTl#VacqY&XlQOA=+ z#JXL?M%oM5aZMxQ;HkdB(1?bemy`^x)$-mBL85LRDW(T3>Db{;C3krqEFB z%$}4^wWtkl&3^th3Ld-ayA}282pRm7-T&ur57^P&j|34KuB-V=F^zD6DZUZybw%0s0j2|yWR*&u|t7Xy&9L|hnj2r>a2*0uV#5vRHOu3%Tfd# z8AYfLQGZdi72Ugfc#?D@YwKDYGcG-0|3gHH)XI~(5(#V6@T+RWsQ(ZN%E!aive6k{>H2;xhd zP?d%q^Apyz2tTgbIU?#O^OkK9pdY%wyB4H4Yp4;EVi}3IsDr2>rYR~mxAqc@~k}H`$I53)xQ|n zH22KxGnG*M`#}6s+oqYPW(MX@l!7JsV*Ac>%2&I-Ya96X#Nw9lTy{45R_@iq*Ew{@ zBh0T&p@pVsxhc9Bx@#d6FNfl#?73r=Q14>6^NPTAw)~B_=GH5Iv?;ONgqlJZrH<I*#oA>t$-}K4{e15`bG+SHOuM(&@{ThX8S=X=h?M-8~e+iG#_onA^2ZqXAIF~LW{!nMlQI3bH-zCpr7(vYo{ zLCtrBfPDjv@yjK z3jW-vZpT={Chj9l#-d0XiQo`S#Gf414gKUe-b=QxD`BtN6Ul;^)(Y0%#EK%dvpRrW zhI+oZIeFebw{@;>wr{?(v~8gyez7Bd-o9b+pzzX`2(#{_v?iRB-VMx}lR}2gW(Cni zc;^AMbk4&#=V6^59sGd8Mkgo{Cb#w!n3e{P0SUunwE%Hq>+Jjd=mn;<>HX(FKk7x) z+zQz!;(`MfF`oFW;@Fr5A0z2meR9IY84F&SMVtn}2-NT+2l!*+$(Vp?gqY$V;g6en z11IRZ3rI}F5z4!u<{1!4D-=}cCbm-{{d`-r`dplGZ@}kenrygT{x?#Smw`CY(HdT8 zNt9a>rDCO}XUexMq7570-2K|_^5*0xc4c$2(wdx-eyM9&tlu!h&7|jYv$=9--)BcF zoqd%pedSH zzbAikxExMi@e57zG7|jqjjJLG-gkq9lP)rBZQL(OU-vZbZ;Syji(OtC=udKCazD|nKC3eb!#yO1|@!=z%%*6e(GOt*7phH#b*m`}mqOL-=r zwlV!6k~UR!RaMQlasF7*)-6?aqNsu#IjMDTi(VNmMr#1bX|yObUtt46XvSJbFkOgV zqf?bbV#_jpzr4-k|aGMH}3!d literal 0 HcmV?d00001 diff --git a/FFAI/__pycache__/crawlers.cpython-313.pyc b/FFAI/__pycache__/crawlers.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8bfb92aa51875b57ef4fb4ddd4822aa4ba932db3 GIT binary patch literal 4682 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 R|1E~88F=n1g0-&Ue*g`=CDi}` literal 0 HcmV?d00001 diff --git a/FFAI/analyzer.py b/FFAI/analyzer.py new file mode 100644 index 0000000..19b68d5 --- /dev/null +++ b/FFAI/analyzer.py @@ -0,0 +1,39 @@ +import re +from collections import Counter + +class PureAnalyzer: + @staticmethod + def search_in_cache(query: str, cache_dir="cache") -> list: + """在缓存中检索历史记录""" + if not os.path.exists(cache_dir): + return [] + + related_files = [] + safe_query = query.lower() + for filename in os.listdir(cache_dir): + if safe_query in filename.lower(): + with open(f"{cache_dir}/{filename}", "r", encoding="utf-8") as f: + content = f.read() + related_files.append({ + "query": filename.replace(".txt", ""), + "content": content + }) + return related_files + + @staticmethod + def analyze(data: list, query: str) -> dict: + # 先检查缓存中的相关记录 + history = PureAnalyzer.search_in_cache(query) + + # 合并新旧数据 + all_text = " ".join(d.get("text", "") for d in data) + if history: + all_text += " " + " ".join(h["content"] for h in history) + + # ...(保持原有的分析逻辑)... + return { + "summary": summary, + "keywords": keywords, + "sources": [d["url"] for d in data], + "related_history": [h["query"] for h in history] + } \ No newline at end of file diff --git a/FFAI/crawlers.py b/FFAI/crawlers.py new file mode 100644 index 0000000..e0130b2 --- /dev/null +++ b/FFAI/crawlers.py @@ -0,0 +1,71 @@ +import urllib.request +import os +import time +from urllib.parse import quote +from html.parser import HTMLParser + +class PureHTMLParser(HTMLParser): + # ...(保持之前的HTML解析器代码不变)... + + class PureCrawler: + def __init__(self, cache_dir="cache"): + self.user_agent = "Mozilla/5.0" + self.parser = PureHTMLParser() + self.cache_dir = cache_dir + os.makedirs(cache_dir, exist_ok=True) + + def _get_cache_path(self, query: str) -> str: + """生成缓存文件名""" + safe_query = "".join(c if c.isalnum() else "_" for c in query) + return f"{self.cache_dir}/{safe_query}.txt" + + def _save_to_cache(self, query: str, data: list): + """保存搜索结果到缓存""" + with open(self._get_cache_path(query), "w", encoding="utf-8") as f: + for item in data: + f.write(f"URL: {item['url']}\n") + f.write(f"Text: {item['text']}\n") + f.write("="*50 + "\n") + + def _load_from_cache(self, query: str) -> list: + """从缓存加载数据""" + cache_file = self._get_cache_path(query) + if not os.path.exists(cache_file): + return None + + with open(cache_file, "r", encoding="utf-8") as f: + content = f.read() + + # 解析缓存文件 + items = [] + for block in content.split("="*50): + if not block.strip(): + continue + url = text = "" + for line in block.split("\n"): + if line.startswith("URL: "): + url = line[5:] + elif line.startswith("Text: "): + text = line[6:] + if url: + items.append({"url": url, "text": text}) + return items + + def fetch(self, query: str, force_update=False) -> list: + """优先读取缓存,不存在时爬取""" + if not force_update: + cached = self._load_from_cache(query) + if cached: + print("📂 从缓存加载数据") + return cached + + print("🌐 正在爬取网络数据...") + # ...(保持原有的爬取逻辑)... + data = [{"url": link, "text": self.extract_text(link)} for link in self.parser.links[:5]] + + self._save_to_cache(query, data) + return data + + def extract_text(self, url: str) -> str: + # ...(保持原有的正文提取逻辑).. + return extracted_text \ No newline at end of file diff --git a/FFAI/main.py b/FFAI/main.py new file mode 100644 index 0000000..10121fc --- /dev/null +++ b/FFAI/main.py @@ -0,0 +1,59 @@ +from crawlers import PureHTMLParser # type: ignore +from analyzer import PureAnalyzer # type: ignore + +class PureInfoHunter: + def __init__(self): + self.crawler = PureHTMLParser() + self.analyzer = PureAnalyzer() + + def run(self, query: str): + # 1. 获取数据(优先缓存) + data = self.crawler.fetch(query) + + # 2. 分析(自动检索历史缓存) + result = self.analyzer.analyze(data, query) + + # 3. 生成报告 + report = "="*40 + "\n" + report += f"搜索词: {query}\n" + + if result.get("related_history"): + report += f"关联历史记录: {', '.join(result['related_history'])}\n" + + report += "\n分析结果:\n" + result["summary"] + "\n" + report += "数据来源:\n" + for url in result["sources"]: + report += f"- {url}\n" + + # 保存本次报告 + self._save_report(query, report) + return report + + def _save_report(self, query: str, content: str): + """保存分析报告""" + safe_query = "".join(c if c.isalnum() else "_" for c in query) + with open(f"reports/{safe_query}_report.txt", "w", encoding="utf-8") as f: + f.write(content) + print(f"报告已保存到 reports/{safe_query}_report.txt") + +if __name__ == "__main__": + import sys + import os + os.makedirs("reports", exist_ok=True) + + if len(sys.argv) < 2: + print("使用方法: python pure_main.py '搜索关键词' [force_update]") + print("示例: python pure_main.py '人工智能' true") + # sys.exit(1) + + force_update = len(sys.argv) > 2 and sys.argv[2].lower() == "true" + hunter = PureInfoHunter() + + if force_update: + print("强制更新模式(忽略缓存)") + data = hunter.crawler.fetch(sys.argv[1], force_update=True) + result = hunter.analyzer.analyze(data, sys.argv[1]) + else: + result = hunter.run(sys.argv[1]) + + print(result) \ No newline at end of file diff --git a/main/build/newtest/Analysis-00.toc b/test/build/newtest/Analysis-00.toc similarity index 100% rename from main/build/newtest/Analysis-00.toc rename to test/build/newtest/Analysis-00.toc diff --git a/main/build/newtest/COLLECT-00.toc b/test/build/newtest/COLLECT-00.toc similarity index 100% rename from main/build/newtest/COLLECT-00.toc rename to test/build/newtest/COLLECT-00.toc diff --git a/main/build/newtest/EXE-00.toc b/test/build/newtest/EXE-00.toc similarity index 100% rename from main/build/newtest/EXE-00.toc rename to test/build/newtest/EXE-00.toc diff --git a/main/build/newtest/PKG-00.toc b/test/build/newtest/PKG-00.toc similarity index 100% rename from main/build/newtest/PKG-00.toc rename to test/build/newtest/PKG-00.toc diff --git a/main/build/newtest/PYZ-00.pyz b/test/build/newtest/PYZ-00.pyz similarity index 100% rename from main/build/newtest/PYZ-00.pyz rename to test/build/newtest/PYZ-00.pyz diff --git a/main/build/newtest/PYZ-00.toc b/test/build/newtest/PYZ-00.toc similarity index 100% rename from main/build/newtest/PYZ-00.toc rename to test/build/newtest/PYZ-00.toc diff --git a/main/build/newtest/base_library.zip b/test/build/newtest/base_library.zip similarity index 100% rename from main/build/newtest/base_library.zip rename to test/build/newtest/base_library.zip diff --git a/main/build/newtest/localpycs/pyimod01_archive.pyc b/test/build/newtest/localpycs/pyimod01_archive.pyc similarity index 100% rename from main/build/newtest/localpycs/pyimod01_archive.pyc rename to test/build/newtest/localpycs/pyimod01_archive.pyc diff --git a/main/build/newtest/localpycs/pyimod02_importers.pyc b/test/build/newtest/localpycs/pyimod02_importers.pyc similarity index 100% rename from main/build/newtest/localpycs/pyimod02_importers.pyc rename to test/build/newtest/localpycs/pyimod02_importers.pyc diff --git a/main/build/newtest/localpycs/pyimod03_ctypes.pyc b/test/build/newtest/localpycs/pyimod03_ctypes.pyc similarity index 100% rename from main/build/newtest/localpycs/pyimod03_ctypes.pyc rename to test/build/newtest/localpycs/pyimod03_ctypes.pyc diff --git a/main/build/newtest/localpycs/pyimod04_pywin32.pyc b/test/build/newtest/localpycs/pyimod04_pywin32.pyc similarity index 100% rename from main/build/newtest/localpycs/pyimod04_pywin32.pyc rename to test/build/newtest/localpycs/pyimod04_pywin32.pyc diff --git a/main/build/newtest/localpycs/struct.pyc b/test/build/newtest/localpycs/struct.pyc similarity index 100% rename from main/build/newtest/localpycs/struct.pyc rename to test/build/newtest/localpycs/struct.pyc diff --git a/main/build/newtest/newtest.exe b/test/build/newtest/newtest.exe similarity index 100% rename from main/build/newtest/newtest.exe rename to test/build/newtest/newtest.exe diff --git a/main/build/newtest/newtest.pkg b/test/build/newtest/newtest.pkg similarity index 100% rename from main/build/newtest/newtest.pkg rename to test/build/newtest/newtest.pkg diff --git a/main/build/newtest/warn-newtest.txt b/test/build/newtest/warn-newtest.txt similarity index 100% rename from main/build/newtest/warn-newtest.txt rename to test/build/newtest/warn-newtest.txt diff --git a/main/build/newtest/xref-newtest.html b/test/build/newtest/xref-newtest.html similarity index 100% rename from main/build/newtest/xref-newtest.html rename to test/build/newtest/xref-newtest.html diff --git a/test/dist/newtest/_internal/VCRUNTIME140.dll b/test/dist/newtest/_internal/VCRUNTIME140.dll new file mode 100644 index 0000000000000000000000000000000000000000..411009b50a62e84f065774f35f9b5773bf31b24d GIT binary patch literal 120400 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 literal 0 HcmV?d00001 diff --git a/main/dist/newtest/_internal/_bz2.pyd b/test/dist/newtest/_internal/_bz2.pyd similarity index 100% rename from main/dist/newtest/_internal/_bz2.pyd rename to test/dist/newtest/_internal/_bz2.pyd diff --git a/main/dist/newtest/_internal/_decimal.pyd b/test/dist/newtest/_internal/_decimal.pyd similarity index 100% rename from main/dist/newtest/_internal/_decimal.pyd rename to test/dist/newtest/_internal/_decimal.pyd diff --git a/main/dist/newtest/_internal/_hashlib.pyd b/test/dist/newtest/_internal/_hashlib.pyd similarity index 100% rename from main/dist/newtest/_internal/_hashlib.pyd rename to test/dist/newtest/_internal/_hashlib.pyd diff --git a/main/dist/newtest/_internal/_lzma.pyd b/test/dist/newtest/_internal/_lzma.pyd similarity index 100% rename from main/dist/newtest/_internal/_lzma.pyd rename to test/dist/newtest/_internal/_lzma.pyd diff --git a/main/dist/newtest/_internal/_socket.pyd b/test/dist/newtest/_internal/_socket.pyd similarity index 100% rename from main/dist/newtest/_internal/_socket.pyd rename to test/dist/newtest/_internal/_socket.pyd diff --git a/main/dist/newtest/_internal/api-ms-win-core-console-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-console-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-console-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-console-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-datetime-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-datetime-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-datetime-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-datetime-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-debug-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-debug-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-debug-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-debug-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-errorhandling-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-errorhandling-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-errorhandling-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-errorhandling-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-fibers-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-fibers-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-fibers-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-fibers-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-file-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-file-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-file-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-file-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-file-l1-2-0.dll b/test/dist/newtest/_internal/api-ms-win-core-file-l1-2-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-file-l1-2-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-file-l1-2-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-file-l2-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-file-l2-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-file-l2-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-file-l2-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-handle-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-handle-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-handle-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-handle-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-heap-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-heap-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-heap-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-heap-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-interlocked-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-interlocked-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-interlocked-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-interlocked-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-libraryloader-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-libraryloader-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-libraryloader-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-libraryloader-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-localization-l1-2-0.dll b/test/dist/newtest/_internal/api-ms-win-core-localization-l1-2-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-localization-l1-2-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-localization-l1-2-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-memory-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-memory-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-memory-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-memory-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-namedpipe-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-namedpipe-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-namedpipe-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-namedpipe-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-processenvironment-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-processenvironment-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-processenvironment-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-processenvironment-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-1.dll b/test/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-1.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-1.dll rename to test/dist/newtest/_internal/api-ms-win-core-processthreads-l1-1-1.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-profile-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-profile-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-profile-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-profile-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-string-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-string-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-string-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-string-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-synch-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-synch-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-synch-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-synch-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-synch-l1-2-0.dll b/test/dist/newtest/_internal/api-ms-win-core-synch-l1-2-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-synch-l1-2-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-synch-l1-2-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-sysinfo-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-sysinfo-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-sysinfo-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-sysinfo-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-timezone-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-timezone-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-timezone-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-timezone-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-core-util-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-core-util-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-core-util-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-core-util-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-crt-conio-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-crt-conio-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-crt-conio-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-crt-conio-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-crt-convert-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-crt-convert-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-crt-convert-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-crt-convert-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-crt-environment-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-crt-environment-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-crt-environment-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-crt-environment-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-crt-filesystem-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-crt-filesystem-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-crt-filesystem-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-crt-filesystem-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-crt-heap-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-crt-heap-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-crt-heap-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-crt-heap-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-crt-locale-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-crt-locale-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-crt-locale-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-crt-locale-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-crt-math-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-crt-math-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-crt-math-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-crt-math-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-crt-process-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-crt-process-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-crt-process-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-crt-process-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-crt-runtime-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-crt-runtime-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-crt-runtime-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-crt-runtime-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-crt-stdio-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-crt-stdio-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-crt-stdio-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-crt-stdio-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-crt-string-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-crt-string-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-crt-string-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-crt-string-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-crt-time-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-crt-time-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-crt-time-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-crt-time-l1-1-0.dll diff --git a/main/dist/newtest/_internal/api-ms-win-crt-utility-l1-1-0.dll b/test/dist/newtest/_internal/api-ms-win-crt-utility-l1-1-0.dll similarity index 100% rename from main/dist/newtest/_internal/api-ms-win-crt-utility-l1-1-0.dll rename to test/dist/newtest/_internal/api-ms-win-crt-utility-l1-1-0.dll diff --git a/main/dist/newtest/_internal/base_library.zip b/test/dist/newtest/_internal/base_library.zip similarity index 100% rename from main/dist/newtest/_internal/base_library.zip rename to test/dist/newtest/_internal/base_library.zip diff --git a/main/dist/newtest/_internal/libcrypto-3.dll b/test/dist/newtest/_internal/libcrypto-3.dll similarity index 100% rename from main/dist/newtest/_internal/libcrypto-3.dll rename to test/dist/newtest/_internal/libcrypto-3.dll diff --git a/main/dist/newtest/_internal/python313.dll b/test/dist/newtest/_internal/python313.dll similarity index 100% rename from main/dist/newtest/_internal/python313.dll rename to test/dist/newtest/_internal/python313.dll diff --git a/main/dist/newtest/_internal/select.pyd b/test/dist/newtest/_internal/select.pyd similarity index 100% rename from main/dist/newtest/_internal/select.pyd rename to test/dist/newtest/_internal/select.pyd diff --git a/main/dist/newtest/_internal/ucrtbase.dll b/test/dist/newtest/_internal/ucrtbase.dll similarity index 100% rename from main/dist/newtest/_internal/ucrtbase.dll rename to test/dist/newtest/_internal/ucrtbase.dll diff --git a/main/dist/newtest/_internal/unicodedata.pyd b/test/dist/newtest/_internal/unicodedata.pyd similarity index 100% rename from main/dist/newtest/_internal/unicodedata.pyd rename to test/dist/newtest/_internal/unicodedata.pyd diff --git a/main/dist/newtest/newtest.exe b/test/dist/newtest/newtest.exe similarity index 100% rename from main/dist/newtest/newtest.exe rename to test/dist/newtest/newtest.exe diff --git a/main/newtest.py b/test/newtest.py similarity index 100% rename from main/newtest.py rename to test/newtest.py diff --git a/main/newtest.spec b/test/newtest.spec similarity index 100% rename from main/newtest.spec rename to test/newtest.spec