90 lines
9.1 KiB
Markdown
90 lines
9.1 KiB
Markdown
# rimpac_gif_creator
|
||
|
||
Локальная Windows-утилита для записи выделенной области экрана в маленький GIF через вложенный `ffmpeg.exe`.
|
||
|
||
## Запуск
|
||
|
||
1. Один раз установите локальный FFmpeg, если `vendor/ffmpeg/ffmpeg.exe` отсутствует:
|
||
|
||
```powershell
|
||
powershell -ExecutionPolicy Bypass -File .\tools\install_ffmpeg.ps1
|
||
```
|
||
|
||
2. Установите локальный Gifsicle для дополнительного сжатия, если `vendor/gifsicle/gifsicle.exe` отсутствует:
|
||
|
||
```powershell
|
||
powershell -ExecutionPolicy Bypass -File .\tools\install_gifsicle.ps1
|
||
```
|
||
|
||
3. Запустите приложение двойным кликом по `rimpac_gif_creator.vbs`.
|
||
|
||
`run.bat` оставлен как технический запуск с консолью, если нужно увидеть ошибки.
|
||
|
||
## Тесты
|
||
|
||
Быстрый набор unit/integrity-тестов запускается без дополнительных зависимостей:
|
||
|
||
```powershell
|
||
python -m unittest discover -s tests -v
|
||
```
|
||
|
||
Тесты проверяют логику версий и обновлений, утилиты сборки GIF, кастомный установщик, Stream Deck-плагин, тёмный логотип, а также то, что публичный release-payload не содержит исходники приложения и установщика.
|
||
|
||
## Установка и обновления
|
||
|
||
Для продуктовой сборки используется кастомный русский GUI-инсталлятор:
|
||
|
||
```powershell
|
||
powershell -ExecutionPolicy Bypass -File .\tools\build_custom_installer.ps1 -PublicRepoUrl "https://git.safe-cap.com/RIMPAC/Gif_Generator_Releases.git"
|
||
```
|
||
|
||
Скрипт готовит приватную промежуточную папку `build/package/rimpac_gif_creator`, компилирует `app.py` и `updater.py` в `app.pyc` / `updater.pyc`, собирает публичный `build/release_repo` без `.py` исходников приложения, а затем упаковывает этот payload внутрь одного `build/installer/RIMPAC_GIF_Creator_Setup.exe` через PyInstaller.
|
||
|
||
Инсталлятор на русском языке, по умолчанию ставит программу в `C:\RIMPAC\GIF Creator`, создаёт ярлык `RIMPAC GIF Creator` на рабочем столе и использует иконку из `assets/rimpac_gif_creator.ico`. Это один `RIMPAC_GIF_Creator_Setup.exe`: `ffmpeg.exe`, `ffprobe.exe`, `gifsicle.exe` и release-payload кладутся внутрь установщика заранее, без видимых командных строк, UAC-запросов и загрузок после установки. В главном окне установщика есть явная галка Stream Deck с объяснением: если у пользователя есть Stream Deck, инсталлятор дополнительно ставит плагин в `%APPDATA%\Elgato\StreamDeck\Plugins`; если галочку не ставить, устанавливается только программа и ярлык.
|
||
|
||
В папку установки также кладётся `Uninstall.exe`. Установщик регистрирует удаление в Windows для текущего пользователя, поэтому программу можно удалить через `Приложения и компоненты` или прямым запуском `C:\RIMPAC\GIF Creator\Uninstall.exe`. Удалятор убирает папку программы, ярлык с рабочего стола, запись удаления Windows и, по галочке, Stream Deck-плагин.
|
||
|
||
Текущая версия release-пакета: `beta 0.1`. Версия хранится в `version.json` и поднимается только вручную перед выпуском новой версии.
|
||
|
||
Кнопка `Проверить обновления` запускает `updater.pyc`: он делает `git fetch`, читает `version.json` из установленной программы и из `origin/main`, а затем обновляется только если в публичном релизном репозитории версия новее и канал совпадает. Если версия такая же, новый коммит в релизном git не будет устанавливаться автоматически. При наличии новой версии updater закрывает программу, выполняет `git pull --ff-only`, обновляет зависимости из `requirements.txt` и запускает программу снова. За счёт git скачиваются только изменившиеся объекты, а не весь проект архивом.
|
||
|
||
Публичный URL обновлений хранится в `update_config.json`: `https://git.safe-cap.com/RIMPAC/Gif_Generator_Releases.git`. В этом репозитории должны лежать только release-файлы (`*.pyc`, конфиги, иконки, launcher-скрипты), без `app.py` и `updater.py`.
|
||
|
||
## Управление
|
||
|
||
- Зажмите левую кнопку мыши и выделите прямоугольник.
|
||
- До начала записи можно тянуть рамку за края/углы, чтобы изменить размер, или за центр, чтобы перенести всю область.
|
||
- На панели рамки кнопка `Папка` открывает `generated`, кнопка `Очист.` удаляет все GIF из этой папки.
|
||
- Нажмите красный круг, чтобы начать запись.
|
||
- Во время записи красный круг становится квадратом, а рамка светится красным.
|
||
- Во время записи большой оверлей скрывается: остаются только тонкая красная рамка и маленькая панель, а клики за их пределами проходят в игру/систему.
|
||
- Нажмите красный квадрат, чтобы остановить запись.
|
||
- Нажмите крестик на панели, чтобы отменить и закрыть приложение.
|
||
- После записи у выбранной рамки появится предпросмотр: двумя ползунками можно обрезать начало и конец.
|
||
- При движении конечного ползунка предпросмотр сразу показывает последний кадр выбранного диапазона.
|
||
- На экране предпросмотра или прогресса `Escape` отменяет операцию и удаляет временные файлы.
|
||
- Нажмите `Создать GIF`.
|
||
- После нажатия `Создать GIF` окно предпросмотра заменяется экраном прогресса там, где была выбранная рамка.
|
||
- После сборки в этом же окне показывается итоговый размер GIF и статус копирования в буфер.
|
||
- После успешной сборки это же окно остается открытым, пока вы не закроете его крестиком или `Escape`.
|
||
- После галочки GIF уже лежит в буфере обмена как файл и сохраняется в `generated`.
|
||
- Кнопки `Папка GIF` / `Папка` открывают `generated`, кнопки `Очистить` / `Очист.` удаляют все GIF из этой папки.
|
||
|
||
GIF создается с частотой 12 кадров/с, шириной до 640 px, ограниченной палитрой и финальной оптимизацией через локальный `gifsicle`.
|
||
|
||
Бинарники `ffmpeg.exe`, `ffprobe.exe` и `gifsicle.exe` не хранятся в git, чтобы репозиторий не раздувался. Их можно восстановить скриптами из `tools`.
|
||
|
||
При запуске приложение автоматически открывает оверлей на том мониторе, где сейчас находится курсор. Захват кадров выполняется через `mss`, чтобы корректно работать с несколькими мониторами.
|
||
|
||
## Stream Deck
|
||
|
||
Плагин лежит в `streamdeck/com.rimpac.gif-creator.sdPlugin` и установлен в:
|
||
|
||
```text
|
||
C:\Users\User\AppData\Roaming\Elgato\StreamDeck\Plugins\com.rimpac.gif-creator.sdPlugin
|
||
```
|
||
|
||
В Stream Deck ищите категорию `RIMPAC` и кнопку `GIF Creator`.
|
||
|
||
Если кнопка не появилась сразу, перезапустите приложение Stream Deck.
|