Issues with embedding from RSS

Привет, Саймон,

Похоже, это ещё не было слито. Я пытаюсь уже несколько часов… просто не получается.
Я настроил форум так, чтобы не было некатегоризированных категорий, но все RSS-каналы всё равно попадают в «Некатегоризированные», что бы я ни делал.

Не могли бы вы добавить поле категории на страницу опроса RSS? Feed URL — Автор — Класс — Категория… и чтобы встраивание происходило автоматически на стороне сервера?

Я не понимаю.

Домен атрибутов link канала?
Я думал, что выбираю категорию из выпадающего списка?

Но я ввожу полный URL канала на странице опроса RSS?
Кажется, я ввошу одну и ту же информацию в двух разных местах в разных форматах, и они не совпадают.
Я не понимаю смысла разрешённых хостов / белого списка путей.

Я только что проверил и увидел, что PR ещё не принят. Я попрошу кого-нибудь быстро посмотреть мои изменения и слить их в основной код. Исходя из ваших вопросов, я не уверен, что объяснение, которое я добавил в плагин о том, как настроить категории для тем ленты, будет понятным. Попробую объяснить это здесь ещё раз.

Категория, в которую публикуются темы RSS-ленты, определяется доменом атрибутов link в ленте, а не доменом самой ленты. Например, если ваша лента находится по адресу https://example.com/feed, но атрибуты link в вашей ленте указывают на посты по адресу https://www.example.com/, то домен, который нужно добавить в раздел Администрирование / Настройка / Хосты для встраивания, — это www.example.com, а не example.com. Пример ниже приведёт к тому, что все посты из ленты будут опубликованы в категории «fun»:

Чтобы найти значение атрибутов link вашей ленты, вам нужно посмотреть разметку ленты. Это можно сделать, открыв URL ленты в браузере.

Это позволяет публиковать посты из определённого пути вашего блога в категорию Discourse. Например:

Это приведёт к публикации всех постов из пути www.example.com/fun в мою категорию «fun», а всех постов из пути www.example.com/support — в категорию «Поддержка клиентов».

Я не понимаю, почему я вообще нахожусь на странице встраивания.
Полный URL-адрес ленты уже введён.
Не может ли плагин самостоятельно разбить URL на «Разрешённые хосты» и «Белый список путей», чтобы мне не пришлось вводить всё дважды?

Пример ввода в плагине RSS-опроса и на странице встраивания не совпадают.
«feeds» — это поддомен в одном случае, а затем — путь?

Я пробовал несколько RSS-лент.
Вот эта: BBC Health - BBC Health — пользователь-администратор.

Разрешённые хосты: feeds.bbci.co.uk
Белый список путей: /health/.*
в категорию «Здоровье».

Кажется, что вышеописанное должно работать, но не работает.
Я уже часами пробовал все возможные комбинации.

Я согласен, что настройка RSS-ленты довольно сложна. Некоторые проблемы связаны с тем, что мы вынесли код RSS-ленты из основного кода Discourse в плагин. Насколько мне известно, не так много сайтов используют функциональность RSS-лент Discourse.

Чтобы протестировать работу, я настроил ленту на https://feeds.bbci.co.uk/health/rss.xml на своём сайте. Вот как выглядит эта настройка:

Когда я только настроил это, все темы из ленты автоматически публиковались в моей категории «Без категории». Чтобы исправить это, я зашёл на несколько созданных тем и посмотрел на этот фрагмент сообщения:

Из этого следует, что URL сообщения находится по адресу http://www.bbc.co.uk/news/uk-politics-21668349#sa-ns_mchannel=rss&ns_source=PublicRSS20-sa. Домен сообщения — www.bbc.co.uk. Затем я добавил этот домен как «Разрешённый хост» на странице «Встраивание». Я установил путь /news/.* для публикации в мою категорию «fun»:

После этого я удалил первую партию тем, созданных лентой. Discourse снова начинает их подтягивать. Теперь они публикуются в правильной категории.

Привет, я наконец-то разобрался… извините.
Кажется, лента BBC была не самым удачным местом для начала.

Теперь я понимаю вашу терминологию.
Я не осознавал, что речь шла о ссылках внутри RSS-ленты.
Мне казалось, что достаточно было URL-адреса ленты.

Да, это, пожалуй, самая сложная из тех, с которыми мне приходилось сталкиваться. Ссылки перенаправляются серверами BBC, и ленту нельзя открыть напрямую в браузере. Единственный способ, который я нашёл, чтобы получить правильный домен для встраивания, — сначала опубликовать посты на моём сайте. Обычно настройка плагина происходит гораздо проще.

К сожалению, лента здоровья BBC собирает данные из множества разных путей.
Только что появилась статья по тропической медицине из раздела истории. Поэтому мне тоже нужен /history/.* для моей ленты здоровья.
Но это сработает, если я добавлю только одну ленту BBC.
Так что большое спасибо за ваше время и терпение. :clap: :clap:

Возвращаюсь к довольно старой теме, чтобы поблагодарить вас за отличное объяснение. К сожалению, это помогло мне понять, что плагин, скорее всего, не подойдёт для моих задач. Я пытаюсь внедрить ленту, сгенерированную экземпляром Shaarli, но атрибут ссылки в каждой записи указывает на совершенно другой домен (поскольку Shaarli — это инструмент для архивации закладок). Предполагаю, что использовать подстановочный знак в пути невозможно (и, следовательно, нельзя перенаправить любой элемент входящей ленты в определённую категорию), верно?

Ой, забыл. Я нашёл способ генерировать другую ленту из источника в Shaarli. Для моих нужд задача решена.

Как я писал здесь пару недель назад, использование другого источника ленты решило проблему с постоянными ссылками. Но теперь плагин не получает содержимое каждого элемента.

Тема создаётся с правильным заголовком, от нужного пользователя и в соответствующей категории, настроенной в конфигурации. Однако тело темы содержит текст (извините за неточность, я использую португальскую локаль) вроде «это обсуждение, связанное с этим исходным сообщением», и ссылается на правильный URL.

Затем есть кнопка с надписью «показать полное сообщение». Когда я нажимаю на неё, она остаётся в состоянии «загрузка» неопределённо долгое время. Я полагал, что если вернуться к теме во второй раз, кэш будет создан, но, похоже, это не так.

Пример:
https://rede.tropixel.org/t/greentech-alliance/418

Источник ленты:

Буду благодарен за любые советы.

Я думаю, что проблема в том, что Discourse не может найти контент на странице по адресу https://links.efeefe.me/?xZVQww. На странице очень мало текста. При нажатии кнопки «Показать полный пост» Discourse пытается извлечь основной контент со страницы. Если на странице мало контента, вы можете помочь определить основной контент, настроив параметр сайта embed whitelist selector в Discourse. Подробную информацию о том, как это сделать, можно найти здесь: Configuring allowed embed selectors.

Спасибо, я попробовал это (в моём случае — добавление «linklist-item-description» в белый список), но никакого эффекта не последовало, даже после ожидания обновления кэша и добавления новых записей в источник RSS.

Попробуйте .linklist-item (обратите внимание на . в начале имени класса. Она должна быть включена.)

Также можно попробовать .linklist-item .linklist-item-title, .linklist-item .linklist-item-description

Вам может потребоваться до 10 минут, чтобы увидеть изменения. Если у вас есть доступ к консоли Rails вашего сайта Discourse, вы можете очистить кэш, выполнив команду Rails.cache.clear. Тогда вы сможете увидеть изменения сразу.