Compare commits
5 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b629de44fa | |||
| 4972c87c75 | |||
| 93e6ebb15f | |||
|
|
ef110fef36 | ||
|
|
d68e0619ef |
2 changed files with 7 additions and 39 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -19,3 +19,8 @@ target
|
||||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
#.idea/
|
#.idea/
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
.cursor/
|
||||||
|
.windsurf/
|
||||||
|
.claude/
|
||||||
|
|
|
||||||
41
README.md
41
README.md
|
|
@ -1,49 +1,12 @@
|
||||||
# nexdex.space — sources
|
# nexdex.space — sources
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
это открытая версия исходников (для гита) — читаемый python/flask код без
|
это открытая версия исходников (для гита) — читаемый python/flask код без
|
||||||
скомпилированных бинарей. если нужен готовый инструмент — смотри релиз
|
скомпилированных бинарей. если нужен готовый инструмент — смотри релиз
|
||||||
`nexdex.space-setup.exe`, который разворачивает всё сам (portable python +
|
`nexdex.space-setup.exe`, который разворачивает всё сам (portable python +
|
||||||
ffmpeg внутри, ничего ставить не надо). лицензия — MIT, см. `LICENSE`.
|
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
|
|
||||||
```
|
|
||||||
|
|
||||||
## как собрать установщик самому
|
|
||||||
|
|
||||||
1. поставь 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'ом.
|
|
||||||
2. положи скачанный/собранный `ffmpeg.exe`+`ffprobe.exe` в `app/ffmpeg/`.
|
|
||||||
3. запакуй `python\` и `app\` (портативный питон + приложение) в `payload.zip`
|
|
||||||
рядом с папкой `installer\`.
|
|
||||||
4. собери через 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.lib
|
|
||||||
```
|
|
||||||
`installer.rc` ссылается на `..\payload.zip` и зашивает его прямо в exe
|
|
||||||
как ресурс (RCDATA) — поэтому результат остаётся нормальным PE-файлом
|
|
||||||
(в отличие от "приклеивания" zip после exe, что ломает Authenticode-подпись).
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue