Система плагинов (дополнений). Плагин - это веб-приложение, которое подключается к серверу Moera (на уровне сервера или на уровне конкретной ноды) и отличается от скрипта тем, что, кроме выполнения обычных операций, может получать от сервера уведомления о разных событиях (добавлен комментарий, отредактирован пост и т.д.), расширять API сервера и иметь настройки.
Плагины на уровне сервера требуют корневой ключ для аутентификации, поэтому их может запускать только владелец сервера. Плагины на уровне ноды может добавлять каждый пользователь на своей ноде - для этого он должен сгенерировать токен аутентификации и отдать его плагину или скрипту. На странице настроек теперь есть интерфейс для этого.
Переработана страница настроек. Настройки скомпонованы по группам, расставлены в удобном порядке и т.д. Для чисел показывается диапазон допустимых значений. Добавлен механизм кеширования настроек на клиенте, а также привязка некоторых настроек к конкретному устройству или типу устройства (компьютер/телефон).
Перевод на другие языки. Добавлен механизм локализации интерфейса и сделан перевод на русский и украинский языки. Желающие поучаствовать в переводе на другие языки или внести исправления могут сделать это тут: https://app.tolgee.io/projects/1120 При формировании сообщений теперь учитывается пол/гендер пользователя, если он задан. Язык по умолчанию определяется автоматически из настроек браузера и может быть изменён в настройках или при регистрации.
- Исправлены ошибки (надеюсь, последние) при вырезании аватара (спасибо @edjekora за сообщение).
- Разрешена вставка изображений с gifer.com.
- Исправлена ошибка при создании превью ссылок в комментариях к чужим постам.
- При возврате из поста в ленту теперь показывается небольшой фрагмент ленты над постом (спасибо Дракониха за предложение).
- При просмотре галереи теперь показывается сообщение, когда с последней картинки галереи переходим опять на первую (спасибо Дракониха за предложение).
- Исправлена ошибка при обрезании заголовка поста для показа в ленте, если в заголовке есть эмодзи (спасибо Tigra за сообщение).
- ...и еще много исправленных ошибок.
Comments (23)
то есть теперь есть сервер как отдельная сущность отдельная от ноды?
а плагины могут изменять клиент?
Она уже давно есть. Например, есть чисто серверное API
/domains
, которое управляет созданием/удалением нод. Доступ к нему идёт через корневой ключ. А плагин на уровне сервера получает уведомления обо всех событиях всех нод.Нет. У плагина могут быть настройки, тогда они будут видны в клиенте. Но больше нет никаких способов вставить что-то из плагина в клиент. И я пока не представляю, как это можно было бы реализовать в общем виде. Но можно расширять конфигурацию плагина, чтобы он мог, например, добавлять пункты в меню постов и комментов, какие-то диалоги простой структуры и т.д.
Оо попробую ещё раз на досуге, если не забуду)))
Что можно сделать с помощью написания плагина?
А где переключается язык?
В настройках 😉
Не вижу что-то.
Ага. После переоткрытия приложения подтянуло 🙂
Логично, что без переоткрытия приложения у тебя продолжает работать старая версия 😉
Плагины на уровне сервера я изначально задумывал для сбора статистики: сколько заходов, постов, лайков за какой-то период времени, как меняется посещаемость и т.д. Еще, например, для уведомления админа, что кто-то новый зарегистрировался. Плагины на уровне ноды можно использовать, например, для автоматических перепостов в другие соцсети (причём с обновлением, когда обновляется пост на Мойре). Или, скажем, для отправки уведомление в Телеграм.
Но вообще, надо думать в другом порядке. Сначала придумать, что хотелось бы сделать, а потом понять, каких возможностей в API не хватает для реализации.
Понятно, что плагином можно, например, индексировать пост в поисковой системе.
Да. Но это можно сделать и просто отдельной нодой, которая подписана на ленту ноды, которую нужно индексировать. Разница в том, что плагин может индексировать даже подзамочные посты.
моя первая мысль - кастомное управление доступом
А подробнее?
А у меня пропали все мордочки эмоджи(((( Только один пальцеверховый остался(((
Не понял. Где пропали?
Когда хочу поставить лайк - при длительном нажатии выскакивала строчка с разными эмодзи. Сейчас не выскакивает. Только отмечает значок лайка для копирования.
Это на айфоне?
Да
Плагин может делать от имени пользователя всё, что может сам пользователь? Тогда с помощью плагинов можно делать ботов. Например, тегнул бота в посте или комменте, он тебе ответил, который час.
Да, вполне.