Новые фичи
Прямая отдача картинок. Для ускорения выдачи картинок клиенту появилась возможность сконфигурировать сервер так, чтобы веб-сервер отдавал картинки прямо из локальной файловой системы, без обращения к ноде. (В случае, если вы используете отдельный веб-сервер в качестве reverse proxy.) Приватные картинки при этом получают случайный идентификатор, который периодически меняется, чтобы избежать неавторизованного доступа к ним. Это также позволило исключить аутентификацию при непосредственном обращении к картинкам и избавиться от связанных с этим ошибок: когда картинки переставали загружаться, например, при переключении с Wi-Fi на мобильную связь.
Сортировка уведомлений по важности. Теперь более важные уведомления (комментарии, упоминания) будут показываться в списке выше, чем менее важные (лайки). Это касается только уведомлений, которые ещё не просмотрены. Как только уведомление просмотрено, оно больше перемещаться не будет. Это поведение можно выключить в настройках. (спасибо Дракониха за идею и Orbb_1974 за замечания)
Замораживание неактивных нод. Ноды, на которые их владелец не заходил ни разу за последний год, теперь замораживаются. Это означает, что уведомления на них отправляются другими нодами в последнюю очередь и не обрабатываются самой нодой, а только записываются в базу данных. Если нода остаётся неактивной, старые записи о уведомлениях стираются без обработки. Таким образом, нода перестаёт формировать ленту новостей и освобождает другие ноды от лишней работы. При этом свой контент замороженная нода продолжает выдавать как обычно. В момент, когда администратор заходит на замороженную ноду, она размораживается, все записанные уведомления обрабатываются и лента новостей формируется в ускоренном режиме.
FCM relay. Уведомления для мобильных клиентов теперь могут отправляться через релей, который является посредником между сетью Moera и централизованными системами доставки сообщений. Первый такой релей сделан для Firebase Cloud Messaging (FCM), который используется в Android. Подробнее читайте в описании релея.
Запросы на удаление аккаунта. Добавлен механизм отправки провайдеру просьбы об удалении аккаунта (то есть ноды). Наличие этой возможности является требованием Google Play и законодательства некоторых стран.
Другие изменения
- Отладочный лог теперь содержит больше информации, что позволяет отследить процесс и скорость выполнения каждого отдельного запроса. Добавлена также статистика по скорости выполнения запросов за всё время работы сервера.
- Оптимизированы запросы к базе данных, многие запросы стали выполняться быстрее.
- Добавлено кэширование информации о картинках, прикреплённых к посту или комментарию.
- Часть кода проекта Novacrypto перенесена в
moera-node
в связи со смертью репозитория этого проекта. - Исправлены ошибки в генерации sitemap и ускорена отдача sitemap клиенту, что улучшило индексацию поисковиками.
- Исключены из индексирования поисковиками дублирующиеся страницы (имеющие несколько адресов) и ленты. Оставлены только посты, комментарии и общая информация о блоге.
- Реализован универсальный механизм выполнения асинхронных задач с сохранением состояния, восстановлением после сбоев и перезагрузки сервера, обработкой ошибок и разными вариантами реагирования на ошибки. Все асинхронные задачи теперь используют этот механизм.
- При группировке нескольких уведомлений о комментариях в одно, ссылка теперь ведёт на первый из этих комментариев, а не на последний.
- Уведомления о комментариях больше не группируются с уже прочитанными.
- Не просмотренные уведомления о реакциях и комментариях теперь группируются, даже если между ними прошло много времени.
- Лента новостей теперь хранится в памяти клиента всё время, что позволяет быстро в неё вернуться.
- Реализован универсальный механизм управления всплывающими диалогами и выпадающими меню, что позволяет закрывать их по одному в порядке открытия - по клику за пределами диалога, кнопке Esc и кнопке "Назад" на мобильном устройстве.
- Добавлен service worker для кэширования кода клиента, часто используемых картинок и информации от сервера имён. Клиент теперь стартует быстро даже при плохой связи.
- В ленте добавлена кнопка, позволяющая быстро пропустить все прикреплённые посты и перейти к первому не прикреплённому. (спасибо Tigra за идею)
- Исправлена ошибка, не позволявшая скрывать под спойлером несколько абзацев текста.
- При вставке текста, скопированного из Facebook, хэштеги теперь превращаются в обычный текст.
- При вставке текста, скопированного из Facebook, теперь корректно обрабатываются эмодзи, состоящие из нескольких символов.
- В диалог логина добавлена кнопка регистрации.
- Исправлена ошибка с показом чужих аватарок в комментариях в Web UI.
- Исправлена ошибка с исчезновением курсора при выборе имени из списка.
- Везде в API слово
complain
заменено наcomplaint
.
Comments (2)
а что была за ошибка со спойлером?
Он не считался блочным элементом (block-level element) при валидации тегов.