3.9 KiB
3.9 KiB
nexdex.space — sources
это открытая версия исходников (для гита) — читаемый python/flask код без
скомпилированных бинарей. если нужен готовый инструмент — смотри релиз
nexdex.space-setup.exe, который разворачивает всё сам (portable python +
ffmpeg внутри, ничего ставить не надо). лицензия — MIT, см. LICENSE.
структура
app/ — flask-приложение (см. app/README.md — там всё подробно)
app.py
backend/ — downloader, converter, metadata, scripts_format, search, history
templates/
static/
installer/ — исходники установщика (реальный, рабочий C++)
installer.cpp — консольный лаунчер: при первом запуске достаёт из себя
зашитый ресурс (payload.zip — portable python + весь
app/ + ffmpeg), распаковывает в %LOCALAPPDATA%\nexdex.space,
создаёт ярлык на рабочем столе, дальше просто запускает
installer.rc — иконка + payload как RCDATA-ресурс + версия файла
(CompanyName/LegalCopyright = savsis)
icon.ico
extras/ — декоративное, в билд не входит, просто чтобы на гите было
видно "по чуть-чуть" разных языков
rust/ — тестовый cargo-проект (audio tag, playlist, crc32, progress bar)
cpp/ — отдельный от installer/ хедер-онли C++ (то же самое, что rust/)
go/ — тестовый go-тул (поиск/прогресс, аналогично)
batch/ — фенси .bat-меню (реальный лаунчер — app/start.bat, простой)
formats.ts
fortune.lua
LICENSE — MIT, savsis
как собрать установщик самому
- поставь python 3.11 embeddable (
python-3.11.9-embed-amd64.zipс python.org), включиimport siteвpython311._pth, добавь строкуLib\site-packages, поставь pip (get-pip.py), затемpip install -r app/requirements.txtэтим же python'ом. - положи скачанный/собранный
ffmpeg.exe+ffprobe.exeвapp/ffmpeg/. - запакуй
python\иapp\(портативный питон + приложение) вpayload.zipрядом с папкойinstaller\. - собери через MSVC:
rc.exe /fo installer.res installer.rc cl.exe /std:c++17 /EHsc /O2 installer.cpp installer.res /Fe:nexdex.space-setup.exe /link shell32.lib ole32.libinstaller.rcссылается на..\payload.zipи зашивает его прямо в exe как ресурс (RCDATA) — поэтому результат остаётся нормальным PE-файлом (в отличие от "приклеивания" zip после exe, что ломает Authenticode-подпись). - (опционально) подпиши бесплатным self-signed сертификатом:
самоподписанный сертификат уберёт "неизвестный автор" в свойствах файла (Windows покажет CN=savsis), но не уберёт предупреждение SmartScreen — для этого нужен платный сертификат от доверенного CA.New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=savsis" -CertStoreLocation Cert:\CurrentUser\My signtool sign /sha1 <thumbprint> /fd SHA256 nexdex.space-setup.exe
made by savsis with ♥