В течение октября команда PureStream сосредоточилась на оптимизации сканирования крупных медиатек, совместимости со сторонней экосистемой, обновлении веб-интерфейса домашнего сервера и повышении безопасности удалённого доступа. Для ценителей музыки первостепенное значение имеют плавное управление обширными коллекциями и стабильное прослушивание в любое время и в любом месте.
⚡️ Прорыв в скорости сканирования: Быстрая инвентаризация и бесперебойное добавление больших библиотек
При работе с массивными коллекциями на внешних механических жёстких дисках большой ёмкости (например, 10 ТБ и 500 000 треков) прежний алгоритм сканирования при повторной сверке глубоко считывал каждый файл по отдельности, вызывая сильный трэшинг диска и долгое ожидание.
В этом месяце мы полностью переработали архитектуру сканирования музыкальной библиотеки:
- Мгновенный пропуск неизменённых файлов: В сканирование внедрено сопоставление по быстрому пути (fast-path). Если размер файла и время его изменения совпадают, система сразу пропускает файл: без повторного открытия, без перечитывания аудиотегов и без пересчёта цифровых отпечатков.
- Существенное сокращение времени сканирования: В тестовой среде скорость сканирования медиатек объёмом в десятки тысяч треков заметно выросла (фактическое время зависит от оборудования и числа файлов):
| Масштаб библиотеки и сценарий | Время после оптимизации (ориентир) | Производительность и ощущения |
|---|---|---|
| 47 500 треков повторное сканирование (steady-state) | около 0,9 с | Завершается практически мгновенно, избыточные обращения к диску почти отсутствуют |
| 32 000 треков первичное сканирование | около 65 с | Анализ аудио стал легче и быстрее |
| 47 500 треков первичное сканирование | около 3 мин | Чтение и запись выполняются стабильно и упорядоченно на протяжении всего процесса |
- Предсказуемая обратная связь о ходе процесса: Страница сканирования в реальном времени отображает количество обработанных, доступных к воспроизведению и ошибочных треков, а также ориентировочное оставшееся время. При подключении нескольких папок чётко указывается «Музыкальная папка N из M». Для файлов с ошибками поддерживается предпросмотр и классификация, а состояние процесса можно отслеживать прямо из системного трея.
- Исправление сбоя завершения для огромных каталогов: Ранее в сверхкрупных единых каталогах с 47 500 файлами логика ожидания фоновых задач на финальном этапе содержала ошибку, из-за которой сканирование помечалось как сбойное даже после успешной обработки всех файлов. После исправления подобные каталоги завершают обработку стабильно.
🌐 Всесторонняя совместимость со сторонними клиентами Subsonic
Чтобы пользователи могли свободно выбирать удобные плееры, PureStream значительно улучшил совместимость с экосистемой сторонних клиентов Subsonic:
- Бесшовное подключение популярных клиентов: Протестировано с приложениями Feishin, Amperfy и другими; поддерживается навигация по музыке, поиск, избранное и плавное воспроизведение.
- Мгновенный отклик и сокращение объёма передаваемых данных: Время загрузки корневого каталога для библиотеки на 10 000 треков сократилось с примерно 1,3 секунды до около 40 миллисекунд; объём передаваемых данных для больших списков избранного уменьшился примерно до 1/12 от прежнего значения.
- Изолированное разделение источников: Одноимённые альбомы и исполнители из разных музыкальных источников теперь индексируются независимо и больше не перезаписывают друг друга.
🎨 Приятное обновление веб-интерфейса домашнего сервера
Веб-интерфейс домашнего сервера получил обновлённое визуальное оформление:
- Мягкая цветовая палитра: В тёмной теме применены более спокойные тёплые нейтральные тона, снижающие утомляемость глаз при длительном просмотре.
- Акцент на обложки и минималистичный макет: Сетка альбомов ориентирована на обложки пластинок с удалением лишних рамок карточек; список композиций стал более строгим и аккуратным.
- Структурированная навигация: Боковая панель десктопной версии реорганизована в разделы «Медиатека / Сейчас играет / Управление». По умолчанию сразу открывается библиотека альбомов, при этом страница состояния остаётся доступной в любой момент. На экранах мобильной ширины навигация автоматически перемещается вниз.
- Удобная панель управления воспроизведением: Полоса прогресса воспроизведения расположена у верхней границы, на маленьких экранах сворачивается в две строки, а область нажатия ползунка сохраняется не менее 44 пикселей для предотвращения случайных касаний.
- Проверка на различных экранах: 11 ключевых страниц протестированы в тёмном и светлом режимах, а также на экранах десктопного и мобильного форматов; горизонтальная прокрутка и ошибки на стороне фронтенда отсутствуют.
🔐 Повышенная стабильность удалённого доступа и безопасность аккаунтов
- Автоматическая сверка подписок: Подписки App Store и Microsoft Store ежедневно сверяются в автоматическом режиме, оперативно и корректно отражая возвраты, отмены и истечения срока действия.
- Мягкое управление правами: Изменение статуса подписки фиксируется служебной отметкой и ни в коем случае не прерывает звучащую композицию; отзыв устройств всегда производится администратором вручную.
- Мгновенная перепривязка устройств: При повторной привязке или смене устройства старая авторизация удаляется, а новая выпускается в одно действие, без сообщений «Повторите попытку позже».
- Контроль состояния онлайн: Домашний сервер регулярно отправляет отчёты о подключении к сети, что позволяет легко проверить доступность устройства в панели управления.
- Поддержка двух устройств воспроизведения: По умолчанию одно домохозяйство поддерживает одновременное подключение двух устройств воспроизведения (например, Mac в связке с iPhone).
- Усиление безопасности аккаунтов: Сервер больше не сохраняет пароли учётных записей воспроизведения. Плеер запрашивает одноразовые временные учётные данные напрямую у домашнего сервера на основании авторизации устройства и удаляет их сразу после использования. Кроме того, система наглядно дифференцирует недоступность сети, сбой привязки и истечение авторизации вместо обобщённого сообщения «Ошибка подключения».
🖥 Полировка настольного приложения и среды исполнения
- Автозапуск при старте системы: Меню в трее теперь официально поддерживает настройку автозапуска при загрузке операционной системы.
- Бесшумное перенаправление сессий: При истечении срока действия сеанса происходит прямой переход на страницу входа без всплывающего окна «Сеанс истёк».
- Нативный разбор аудиотегов: Чтение тегов переведено на нативную статическую библиотеку вместо динамической компиляции компонентов во время работы, что делает запуск и сканирование значительно легче.
- Полнота журналов событий: Добавлены журналы системных сбоев и аномальных запросов для ускорения поиска и устранения потенциальных неполадок.
- Фильтрация файлов и наглядный статус: Скрытые системные файлы и мусорные элементы игнорируются по умолчанию; в трее можно сразу увидеть три показателя: обработано, готово к воспроизведению и с ошибками.
📌 Известные вопросы и дальнейшие шаги
В текущей версии продолжается работа над следующими задачами:
- Продолжается проверка поведения сканирования на отдельных внешних жёстких дисках, сетевых ресурсах и устройствах под управлением Windows; реальная скорость зависит от накопителя и количества файлов.
- Совершенствуется голосовое сопровождение скринридера на странице сканирования, а также дополняются описания отдельных категорий ошибок.
- Расширяется тестирование сценариев работы с подписками Microsoft Store (включая отмену и возврат средств).
В дальнейшем мы завершим тестирование внешних дисков, сетевых хранилищ и Windows-систем, дополним описания доступности и формулировки причин ошибок, а также расширим охват автоматической сверки подписок.
