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

Здесь содержатся плагины, графические оболочки, наборы смайлов и другие дополнения к CommFort.
Аватара пользователя
Orchestra
Сообщения: 9
Зарегистрирован: 16:32, 04.10.2025
Откуда: https://nostr.com/npub12k6u3g3rn0w92wx4 ... 7mjs7ljkc8

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

Сообщение Orchestra »

Изображение
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀PluginExpress
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀v1.0.0 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 и могут быть высланы повторно при утере. Обработка выполняется вручную.

PluginExpress SHA256:

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

03f086f90235db8383175d451f27c12bbfe4a91b2b26188a92010ef58cee4b42

Download:
PluginExpress_v1.0.0_BETA.7z
(3.3 МБ) 0 скачиваний
EN_Integration_Guide.7z
(3.36 КБ) 0 скачиваний

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