
Вышла новая версия Elengrab 0.24.0. В этом обновлении появилось много изменений, связанных с работой с медиаконтентом и веб-интерфейсом. Теперь в списке видео можно видеть прогресс просмотра, отмечать уже просмотренные ролики и запускать их предпросмотр прямо на миниатюре. Также была улучшена загрузка динамического содержимого и проведён ряд изменений во внутренних компонентах приложения.
Предыдущую статью об Elengrab я опубликовал ещё в прошлом году. С тех пор проект продолжал развиваться, поэтому здесь я решил отдельно рассказать об изменениях, которые вошли в версию 0.24.0. О более ранних изменениях расскажу в отдельной статье.
Прогресс просмотра
Одно из заметных изменений — прогресс просмотра видео непосредственно на миниатюре.
Если видео было просмотрено не полностью, на его миниатюре теперь отображается соответствующий прогресс. При возвращении к списку можно сразу увидеть, какие видео уже начали смотреть и на каком месте остановились.
Также появился индикатор просмотренного видео. Он позволяет быстро отличить уже просмотренные ролики от остальных.

Предпросмотр видео
В Elengrab появился автоматический предпросмотр видео при наведении на миниатюру.
Теперь, чтобы понять содержимое ролика, не обязательно открывать его отдельной страницей. Достаточно навести курсор на миниатюру — видео начнёт воспроизводиться непосредственно в списке.

Для мобильных устройств реализован другой сценарий. При прокрутке списка видео автоматически запускает предпросмотр, когда его миниатюра попадает в область просмотра.

Для коротких видео добавлено автоматическое повторное воспроизведение после завершения.
Миниатюры и типы медиаконтента
Для аудиофайлов появился значок ноты рядом с длительностью. Теперь тип медиаконтента можно определить непосредственно по карточке.

Кроме того, добавлена ленивая загрузка миниатюр и аватаров. Изображения загружаются по мере необходимости, а не все сразу при открытии страницы.
Обновление списков
Изменён механизм обновления строк через SSE. Теперь сервер может передавать только изменившиеся поля, вместо того чтобы отправлять всю строку целиком.
Например, если у загрузки изменился только статус или один из счётчиков, интерфейсу достаточно обновить конкретное поле, не перерисовывая остальные данные.
Worker Pool
Были исправлены проблемы в dynamic worker pool, связанные с жизненным циклом worker’ов и синхронизацией.
Это внутреннее изменение не заметно непосредственно в интерфейсе, но важно для стабильной работы параллельных задач.
Итоги
В этом обновлении Elengrab получил сразу несколько заметных изменений в интерфейсе. Просмотр видео теперь теснее интегрирован со списком: можно видеть прогресс и состояние просмотра, запускать предпросмотр непосредственно на миниатюре, а на мобильных устройствах — просматривать видео во время прокрутки.
Одновременно были улучшены загрузка списков, работа с изображениями и обновление данных через SSE. Внутри приложения переработана подготовка загрузок, изменён workflow работы с yt-dlp и исправлены проблемы динамического worker pool.
В результате версия 0.24.0 принесла много визуальных изменений, а также заметные улучшения в производительности и внутренней архитектуре приложения.
Ссылки
- Демо онлайн-версия Elengrab: elengrab.n-hub.ru
- Исходный код и исходники проекта: GitHub
- Docker-образы: Docker Hub
- Поддержать развитие проекта: Donate