Страница 1 из 1

PluginExpress — менеджер обновлений для плагинов [универсальный плагин]

Добавлено: 17:16, 17.02.2026
Orchestra
Изображение
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀PluginExpress
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀v1.0.6 BETA
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀Просто 📦 Автоматически ⬇️ Универсально

PluginExpress — вероятно первый универсальный плагин в истории форума CommFort. Работает одновременно на клиенте и сервере. Автоматически проверяет, скачивает и устанавливает обновления для других плагинов - без ручного копирования файлов.

⚠️ Важно:
  • Требуется CommFort 5.xxx (клиент или сервер)
  • Плагин НЕ изменяет .cfplug файлы во время работы - обновления применяются только при перезапуске
  • Файлы .rar НЕ поддерживаются (недружелюбный формат)
  • Cloudflare-проксирование блокируется по заголовку CF-RAY - базовая защита от MITM
  • Все http ссылки блокируются по умолчанию, загрузка осуществляется только по https - базовая защита от утечки данных
  • Без наличия HashURL проверка целостности пропускается - вы доверяете источнику загрузки
  • LED имеет свойство быстро переключать яркие сигналы и может вызвать приступы эпилепсии
Имейте в виду, плагин предоставляет лишь базовую защиту от атак и не несёт ответственности за загрузку вредоносного ПО или утечку важных данных. Всегда проверяйте метаданные и ссылки перед загрузкой.

========== ДЛЯ ПОЛЬЗОВАТЕЛЕЙ ==========

Как это работает
  1. При старте: читает метаданные из Plugins/ИмяПлагина/.имяплагина_metadata
  2. Сравнивает версию с той что в указанной ссылке из метадаты
  3. При обнаружении новой версии: скачивает → распаковывает → проверяет целестность файла → готовит к установке
  4. При закрытии CommFort: копирует обновлённый .cfplug в папку Plugins/. ВАЖНО: нужно перезапустить CommFort, а не только плагин.
  5. При следующем запуске: плагин уже обновлён
Графическое меню
  • Таблица плагинов с версиями и статусами
  • Кнопка Проверить сейчас для ручного запуска проверки
  • Вкладки: Плагины / Настройки / События / Чёрный список / История изменений
  • Индикатор LED (6 состояний): простой визуальный статус операций
  • Работает на клиенте и сервере одинаково
Поддерживаемые источники
  • Форум: viewtopic.php?t=XXXX - автоматически находит вложения с версиями
  • Прямые ссылки: Nextcloud, CDN - надёжнее, но требуют обновления URL при релизе
  • Форматы: .zip (встроенный распаковщик) и .7z (7za.exe в комплекте)
========== ДЛЯ РАЗРАБОТЧИКОВ ==========

Интеграция за 30 секунд
1. Создайте файл Plugins/ВашПлагин/.вашплагин_metadata
2. Укажите поля:

Код: Выделить всё

PluginName=ВашПлагин
Version=1.0.0
URL=https://example.com/download.zip
HashURL=https://example.com/hash.txt # рекомендуется
Более детальные инструкции смотрите в документации.

Критически важно:
  • PluginName должно точно совпадать с именем .cfplug файла (регистр важен на Linux/Wine)
  • Если имена не совпадают - плагин будет скачиваться при каждой проверке
  • Обнаружение не происходит без метадаты в любой из папок в Plugins
  • Имя архива обязательно должно содержать _vX.Y.Z_:
    ✅ ВашПлагин_v1.0.0_BETA.zip
    ✅ ВашПлагин_v2.3_ALPHA.7z
    ✅ ВашПлагин_v3.0.7z
    ❌ ВашПлагин_3.0.7z → нет префикса версии → игнорируется
    ❌ ВашПлагин.zip → нет версии → игнорируется
    ❌ ВашПлагин_v1.0.0.cfplug → сырой бинарник → не скачивается
Ежедневная верификация целостности данных
  • Проверка хеша каждого установленного плагина выполняется не чаще одного раза в 24 часа
  • Интервал отсчитывается от последней успешной проверки и фиксируется в локальном хранилище (`hash_dates/`)
  • При недоступности удалённого хеш-файла используется локальный кэш (`.cfplug.sha256`) если он присутствует у пользователя в /Plugins/ВашПлагин
  • Архитектура минимизирует нагрузку на серверы распространения - один запрос в сутки на установленный экземпляр плагина. Исключение: проверка хэша при обновлении.
Самообслуживание метаданных
  • PluginExpress НЕ создаёт файлы метаданных - это задача для вашего плагина
  • PluginExpress обновляет поле Version после успешной установки обновления
  • Ваш плагин может обновлять другие поля (URL, HashURL) по своему усмотрению
Механизм проверки целостности
  • Проверяется хеш извлечённого .cfplug файла, а не архива
  • Формат hash.txt:

    Код: Выделить всё

    a1b2c3d4e5f67890123456789012345678901234567890123456789012345678 myplugin.cfplug
  • Создать хеш:

    Код: Выделить всё

    sha256sum ВашПлагин.cfplug > myplugin.cfplug.sha256
========== ОБЩЕЕ ==========

Известные ограничения
  • Параллельные загрузки не поддерживаются - очередь по одному плагину
  • Таймаут запроса: 15 секунд (повтор - кнопкой в GUI)
  • Cloudflare-защита базовая - не замена выбору надёжного хостинга
  • Фильтрация незащищённых соединений базовая - плагин лишь блокирует установку http-соединения
  • Тестировалось с Disroot Nextcloud, форумом CommFort, простым http сервером
  • Разработка и тестирование велось на Linux/Wine 8, тестирование на Win10 по остаточному принципу.
Лицензия и поддержка
PluginExpress распространяется бесплатно по лицензии PolyForm Noncommercial 1.0.0 - для личного и образовательного использования.
Коммерческая лицензия доступна от $50.

В связи с ограничениями на работу с международными платёжными системами, все пожертвования принимаются только в криптовалюте (≥0.003 XMR на 16.11.25):
Monero (XMR)

Код: Выделить всё

86XDziKaoAnGKvmxyzbT5jZjtvxeFLYNfdgPcArWwyVnatZizQNSfuVF18f3YQGTaZDpa3ENxZPPwT94v1miGsscKX8QqPi
После отправки пожертвования - спустя 2+ часа напишите на orchestra+support@disroot.org с темой «PluginExpress: [commercial license]» и укажите ID транзакции. Файлы привязываются к вашему e-mail и могут быть высланы повторно при утере. Обработка выполняется вручную.

История изменений
• v1.0.0 — релиз
v1.0.6 — исправления LED-индикаторов и звуков, стабильность GUI; форматирование журнала изменений, автопроверка обновлений, настройка шрифта


Download:
PluginExpress_v1.0.6_BETA.7z
(3.47 МБ) 5 скачиваний
EN_Integration_Guide.7z
(3.36 КБ) 3 скачивания
PluginExpress SHA256:

Код: Выделить всё

bc600b8b08caa670c5e7178962587cbdb2f177b9d8eed901713d04ae956e5fd4
Благодарности
Реализация на Free Pascal и архитектура плагина выполнены при участии Claude (Anthropic). Системный дизайн, логотип и подготовка документации - при содействии Qwen (Alibaba Cloud). Дополнительная помощь в отладке кода и исследовании дополнительных возможностей предоставлена GLM (Zhipu AI). Звуковые эффекты созданы с помощью aidubbing.io.

Re: PluginExpress — менеджер обновлений для плагинов [универсальный плагин]

Добавлено: 20:33, 20.02.2026
dv
Субъективно - несколько точек в имени файла - не оч. хорошо.

Re: PluginExpress — менеджер обновлений для плагинов [универсальный плагин]

Добавлено: 14:04, 25.02.2026
Orchestra
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀PluginExpress
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀v1.0.6 BETA
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀Список изменений
🔧 Исправления
- Статус LED-индикатора теперь корректно отображает жёлтый цвет при неудачной ежедневной проверке хеша — ранее после завершения проверки обновлений индикатор незаметно возвращался в режим ожидания (тусклый зелёный)
- Жёлтый индикатор теперь правильно показывается при ошибках загрузки отдельных файлов в смешанной очереди (ранее отображался сплошной зелёный статус «проверка»)
- Исправлен приоритет серьёзности LED-индикаторов: красный (безопасность) теперь имеет приоритет над жёлтым (хеш), который, в свою очередь, имеет приоритет над режимом ожидания
- Звук успеха больше не воспроизводится вместе с предупреждающим звуком при событиях, связанных с безопасностью
- Исправлен сбой «нарушение доступа» при закрытии графического интерфейса во время активных обратных вызовов таймера
- Подробное логирование больше не отображает «(new plugin)» для плагинов, которые просто удалены или деинсталлированы
- Плагины с ненастроенными или не-HTTP URL-адресами (например, текст-заглушка) теперь корректно пропускаются вместо попытки подключения
- Немного скорректирована высота графического интерфейса для устройств с небольшими экранами
✅ Новое
- Журнал изменений теперь поддерживает

Код: Выделить всё

[b]жирный[/b], [i]курсив[/i], [u]подчёркивание[/u], два типа заголовков (/h и /h2), [color=red]именованные цвета[/color] (aqua, blue, brown, darkblue, fuchsia, green, grey, lightblue, lime, magenta, maroon, navy, olive, orange, purple, red, silver, teal, white, yellow) и [url=https://commfort.com ]кликабельные ссылки[/url]
. Используйте именованные цвета вместо hex-кодов.
- Автоматическая проверка обновлений каждые 24 часа (использование на сервере требует коммерческой лицензии — свяжитесь: orchestra@disroot.org)
- Заголовок журнала изменений теперь использует независимый от локали формат даты yyyy-mm-dd на основе даты изменения файла changelog.txt
- Размер шрифта для журнала изменений и лога событий теперь настраивается через [GUI] FontSize в config.ini (по умолчанию: 10)