RSS Polling: точки расширения для плагинов (выход формы фида, ID фида при импорте, хук пути обновления)

Мы создали небольшой плагин-компаньон для RSS Polling (discourse-rss-onebox): импортированные записи блогов отображаются в виде onebox статьи, с опциональными сводками фидов, описаниями YouTube и форматами заголовков. Три пробела в API вынудили нас оборачивать основные методы вместо использования задокументированных хуков.

  1. Нет плагинного выхода (plugin outlet) в форме фида. В файле rss-polling-feed-form.gjs#L287-L351 отсутствует PluginOutlet, а контракт обновления принимает фиксированный набор атрибутов (update.rb#L9-L14). Плагин не может добавить опцию для отдельного фида, поэтому нашему пришлось создать отдельную страницу администрирования. Наличие outlet и способа сохранить дополнительные поля (например, пользовательские поля фида) решило бы эту проблему.

  2. ID фида никогда не передается в импорт. Задача опроса (poll job) знает rss_feed_id, но метод TopicEmbed.import (poll_feed.rb#L110) и модификатор topic_embed_import_create_args (topic_embed.rb#L108) его не получают. Мы оборачиваем задачу опроса, чтобы перехватить этот параметр. Передача ID фида как опции позволила бы плагинам работать с каждым фидом индивидуально.

  3. Нет хука на пути обновления. Когда содержимое элемента фида изменяется, TopicEmbed.import пересматривает (revise) пост с содержимым фида (topic_embed.rb#L147-L152), игнорируя то, что сделал модификатор создания. Если блогер редактирует пост, тема, сформированная плагином, молча возвращается к тексту фида. Модификатор для изменений обновления, аналогичный topic_embed_import_create_args, закрыл бы этот пробел.

Обходное решение для пунктов 2 и 3 заключается в добавлении (prepending) обертки над TopicEmbed.import и задачей опроса. Это хрупкое решение: в ветке main с тех пор был добавлен именованный параметр truncate: к TopicEmbed.import, что ломает любую обертку, воспроизводящую сигнатуру версии 2026.7 — нам пришлось выпустить релиз только для того, чтобы передать этот параметр. Задокументированные хуки позволили бы избежать подобных сбоев.