2.6 KiB
2.6 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
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-подпись).
made by savsis with <3