Версия: 2.3.8
Платформа: Windows / macOS / Linux (Electron + Express)
MediaMatrix — это десктопное приложение для установки, запуска и управления пользовательскими плагинами. Плагины пишутся на JavaScript и могут расширять функциональность приложения: добавлять пункты меню, создавать новые страницы, взаимодействовать с интерфейсом и API. Приложение включает встроенный магазин плагинов, настраиваемую тему оформления, систему уведомлений и работает как локальный веб-сервер.
- Управление плагинами – установка из файла
.js, по URL или прямым вводом кода. - Магазин плагинов – подключение внешнего JSON‑каталога, установка и автоматическая проверка обновлений.
- Карусель плагинов – горизонтальная лента установленных плагинов на главной странице.
- Настройка порядка меню – перетаскивание пунктов бокового меню, сохранение порядка.
- Темы оформления – светлая, тёмная, океан, лес, закат.
- Настраиваемая верхняя панель – отображение часов, иконок переходов и уведомлений.
- Система уведомлений – всплывающие сообщения и история.
- Экспорт / импорт данных – резервное копирование всех плагинов и настроек.
- Работа в системном трее – приложение сворачивается в трей, продолжает работу в фоне.
- Локальный сервер – раздача статических файлов через Express (порт настраивается).
- Electron 28 – десктопная оболочка
- Express 5 – локальный веб‑сервер
- HTML5 / CSS3 / JavaScript (ES6) – интерфейс
- LocalStorage – хранение данных
- Font Awesome 6 – иконки
- Node.js 18+
- npm или yarn
npm install
Запуск в режиме разработки
bash
npm start
Сборка готового приложения
bash
npm run dist
Сборка создаст установщик (Windows – NSIS) в папке dist/.
Структура проекта
text
MediaMatrix/
├── engine/ # Клиентские скрипты (UI, плагины, навигация)
├── component/ # Карусель, магазин, настройки меню
├── index.html # Главная страница
├── styles.css # Все стили и темы
├── main.js # Electron + Express сервер
├── preload.js # Мост между рендерером и main процессом
├── package.json # Зависимости и скрипты сборки
└── build/ # Иконки и ресурсы для сборки
Конфигурация
Все настройки сохраняются в localStorage:
plugins – массив установленных плагинов.
generalSettings – уведомления, автозапуск, показ карусели, настройки верхней панели.
storeSettings – URL магазина, автообновление.
menuOrder – порядок пунктов бокового меню.
theme – текущая тема оформления.
Настройки сервера (порт, CORS, webSecurity) хранятся в файле %APPDATA%/MediaMatrix/config.json (Windows) или ~/Library/Application Support/MediaMatrix/config.json (macOS).
Разработка плагинов
Плагин – это JavaScript-код, который выполняется в изолированном окружении. В коде можно использовать комментарии @name, @version, @description, @author для автоматического распознавания метаданных. Также можно объявить настраиваемые параметры через @settings [...] (JSON массив).
Пример простого плагина
javascript
/**
* @name Мой плагин
* @version 1.0.0
* @description Добавляет кнопку приветствия
* @author Ivan
*/
(function(api) {
api.showNotification('Плагин загружен', 'success');
api.addMenuItem('greeting', 'fas fa-smile', 'Привет');
api.addPage('greeting', '<h2>Привет, мир!</h2>');
})(pluginAPI);
API, доступное плагину
Метод Описание
showNotification(message, type) Показать уведомление (success, error, info).
getSettings() Получить текущие настройки плагина.
saveSettings(settings) Сохранить настройки плагина.
addMenuItem(id, icon, label) Добавить пункт в боковое меню.
removeMenuItem(id) Удалить пункт меню.
addPage(id, htmlContent) Создать новую страницу.
removePage(id) Удалить страницу.
updatePageContent(id, htmlContent) Обновить содержимое страницы.
navigateTo(pageId) Переключиться на указанную страницу.
getStorePlugins() Получить список плагинов из магазина.
installFromStore(pluginId) Установить плагин из магазина по ID.
checkForUpdates() Проверить обновления для установленных плагинов.
Настраиваемые параметры
В коде плагина можно определить блок @settings:
javascript
/**
* @settings [
* {
* "id": "apiKey",
* "label": "API ключ",
* "type": "text",
* "placeholder": "Введите ключ",
* "default": ""
* },
* {
* "id": "darkMode",
* "label": "Тёмный режим",
* "type": "switch",
* "default": false
* }
* ]
*/
Эти параметры автоматически появятся в интерфейсе настроек плагина.
Лицензия
Проект распространяется под лицензией MIT. Вы можете свободно использовать, изменять и распространять код.
Разработчик: MediaMatrix Team
Контакты: mediamatrix.helpdesk@mail.ru
Версия: 2.3.8