Поиск RSS-лент Discourse

:bookmark: Полное справочное руководство по всем доступным RSS-каналам в Discourse, включая структуру URL, требования аутентификации и рекомендации по использованию для RSS-ридеров.

:person_raising_hand: Требуемый уровень пользователя: Все пользователи

RSS (Really Simple Syndication) — это стандартизированный, машиночитаемый формат, который позволяет легко обмениваться контентом между сайтами и платформами. Discourse предоставляет широкий спектр RSS-каналов для тем, сообщений, категорий, тегов, пользователей и групп.

:information_source: Стабильные URL: Ссылки RSS, содержащие идентификатор (например, идентификатор категории, темы или значка), определяются этим идентификатором. Ссылки не будут сломаны, если изменится «slug» (текстовая часть URL), но slug всё равно обязателен в пути URL.

Например, все эти ссылки ведут на один и тот же RSS-канал:

  • https://meta.discourse.org/t/events-plugin/69776.rss
  • https://meta.discourse.org/t/a-random-slug/69776.rss
  • https://meta.discourse.org/t/-/69776.rss

Значки (Badges)

Получите канал для конкретного значка.
https://meta.discourse.org/badges/[id]/[badge_name].rss

Категории

Получите канал с последними темами в конкретной категории.
https://meta.discourse.org/c/[category_slug]/[id].rss

Категории и теги

Получите канал тем в конкретной категории, которые также имеют определенный тег.

:exclamation: Важно: В отличие от стандартных каналов категорий, каналы «категория+тег» размещаются по пути /tags/, а не /c/.

Канонический URL (Рекомендуется): Использует числовой ID тега для стабильности.
https://meta.discourse.org/tags/c/[category_slug]/[id]/[tag_slug]/[tag_id]/l/latest.rss

Устаревший URL: Использует только имя тега.
https://meta.discourse.org/tags/c/[category_slug]/[id]/[tag_name]/l/latest.rss

Примечание: Вы можете заменить latest другими фильтрами, такими как top, hot, new или unread.

Группы

Получите каналы активности групп. Работают оба префикса /groups/ и /g/.

Упоминания: Темы, в которых упоминается группа.
https://meta.discourse.org/groups/[group_name]/mentions.rss
или
https://meta.discourse.org/g/[group_name]/mentions.rss

Сообщения: Все сообщения, опубликованные участниками группы.
https://meta.discourse.org/groups/[group_name]/posts.rss
или
https://meta.discourse.org/g/[group_name]/posts.rss

Сообщения (Глобальные)

Получите канал всех публичных сообщений на всем сайте.
https://meta.discourse.org/posts.rss

Теги

Получите канал тем с определенным тегом.

Канонический URL (Рекомендуется): Использует числовой ID тега для стабильности.
https://meta.discourse.org/tag/[tag_slug]/[tag_id].rss

Устаревший URL: Использует только имя тега.
https://meta.discourse.org/tag/[tag_name].rss

Темы

Получите каналы списков тем.

Популярные темы (Hot): Темы, которые сейчас в тренде.
https://meta.discourse.org/hot.rss

Лучшие темы (по периоду): Самые популярные темы за определенный промежуток времени.
https://meta.discourse.org/top.rss?period=[period]
Где [period] — одно из значений: all, yearly, quarterly, monthly, weekly, daily.

:information_source: Старые URL для каждого периода (например, top/yearly.rss) все еще работают, но перенаправляют на формат с параметром запроса, указанный выше.

Лучшие темы (По умолчанию): Использует период по умолчанию для сайта.
https://meta.discourse.org/top.rss

Последние темы: Темы с самой недавней активностью (ответами).
https://meta.discourse.org/latest.rss

:warning: Стабильный порядок для RSS-ридеров: По умолчанию «Latest» упорядочивается по времени последнего ответа. Это означает, что порядок элементов в вашем ридере будет меняться каждый раз, когда кто-то отвечает на старую тему. Чтобы получить стабильный хронологический порядок, основанный на времени создания тем, добавьте ?order=created:
https://meta.discourse.org/latest.rss?order=created

Одна тема: Канал для одной конкретной темы.
https://meta.discourse.org/t/[topic_slug]/[id].rss

Пользователи

Получите каналы активности конкретного пользователя. Работают оба префикса /users/ и /u/.

Сообщения: Все сообщения, опубликованные пользователем.
https://meta.discourse.org/users/[username]/activity.rss
или
https://meta.discourse.org/u/[username]/activity.rss

Темы: Темы, созданные пользователем.
https://meta.discourse.org/users/[username]/activity/topics.rss
или
https://meta.discourse.org/u/[username]/activity/topics.rss

Аутентифицированные каналы

Следующие каналы требуют, чтобы вы были авторизованы или предоставляли API-ключ. Они обеспечивают персонализированный просмотр контента.

  • Непрочитанные темы: Темы, которые вы еще не читали.
    https://meta.discourse.org/unread.rss
  • Новые темы (Персональные): Темы, новые для вас с момента вашего последнего посещения.
    https://meta.discourse.org/new.rss
  • Прочитанные темы: Темы, которые вы уже прочитали.
    https://meta.discourse.org/read.rss
  • Созданные темы: Темы, которые вы создали.
    https://meta.discourse.org/posted.rss
  • Закладки: Темы, которые вы добавили в закладки.
    https://meta.discourse.org/bookmarks.rss

:information_source: Примечание о /new.rss: URL /new.rss не существует для публичных, неавторизованных пользователей. Вид «New» специфичен для истории вашего аккаунта. Если вам нужен публичный канал тем, упорядоченных по дате создания, используйте /latest.rss?order=created.

Общие проблемы и решения

Проблема: «Страница отсутствует» или ошибка 404 на /new.rss

  • Причина: Этот канал доступен только для авторизованных пользователей.
  • Решение: Используйте /latest.rss?order=created для публичного хронологического канала или убедитесь, что вы вошли в систему.

Проблема: Переупорядочивание элементов канала в моем ридере

  • Причина: Канал latest по умолчанию сортируется по времени последнего ответа.
  • Решение: Добавьте ?order=created в URL, чтобы сортировать по времени создания темы.

Проблема: Канал «Категория + Тег» не работает

  • Причина: Использование префикса /c/ вместо /tags/c/.
  • Решение: Убедитесь, что URL начинается с /tags/c/ (например, https://site.com/tags/c/category-slug/1/tag-slug/2/l/latest.rss).

Часто задаваемые вопросы (FAQ)

В: Могу ли я создать RSS-канал для запроса поиска?
О: Нет, Discourse не поддерживает RSS-каналы для запросов поиска на нативном уровне. Вам необходимо использовать теги или категории для фильтрации контента.

В: Почему мои каналы категорий иногда показывают «Эта страница является частной»?
О: Если категория ограничена для определенных групп или пользователей, RSS-канал также будет ограничен. Вам необходимо войти в систему с соответствующими правами доступа, чтобы просмотреть канал.

В: Кэшируются ли RSS-каналы?
О: Да, Discourse кэширует RSS-каналы в течение 1 минуты для повышения производительности.

25 лайков

Есть ли какая-то конкретная причина, почему это не работает для новых? :thinking:

Что вы имеете в виду? «Новый» — это же самое последнее, верно?

Нет, это на самом деле разница.

  • Latest = тема с последним ответом

New отличается:

  • New = новые темы без учёта последнего ответа

Сравните URL:

  • /latest — где работает “latest.rss”

в отличие от:

  • /new, но new.rss не работает
3 лайка

Тогда, полагаю, это можно считать Contribute > Bug.

2 лайка

Ты уже сообщил об этом, или мне это сделать?

Пожалуйста, сделай это, я как-то потерял нить.

3 лайка

Вот отчет об ошибке и дополнительная интересная дискуссия: Missing rss feed which corresponds to "new" topics

1 лайк

Я пришёл сюда после поиска в Google, пытаясь найти способ создать RSS-ленту на основе поиска по теме или ключевому слову.

Похоже, это невозможно. А когда не работают теги, слаг-адреса и категории, какие у меня есть варианты?

Кажется, нет способа создать RSS-ленту для категории с определённым тегом, например:

/c/[category_slug]/[tag]/[id].rss

Мне не удаётся получить ленту с размеченными темами или постами внутри категории.

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

Есть какие-то идеи? Заранее спасибо!

1 лайк

Я подписан на ленту поиска форума PrivacyGuides с сайта openrss.org.

https://openrss.org/discuss.privacyguides.net/search?q=brave+browser+order%3Alatest_topic

Это RSS-лента для

Прошло уже довольно много времени, и я не помню, почему это работает. Возможно, OpenRSS просто поддерживает форум Privacy Guides конкретно. Но я уверен, что они могут быстро добавить поддержку любого форума на базе Discourse, поскольку код уже готов.

Это может быть полезно до тех пор, пока Discourse не внедрит эту функцию по умолчанию.

Это не подойдёт для нас, так как у нас есть приватный Discourse за SSO, и он не может быть доступен за пределами нашей сети.

Сайт openrss.org занимает около 7 минут на построение/отрисовку страницы, на которую вы дали ссылку выше, и похоже, что они создали для вас эту ленту как кастомную — ничего встроенного в сам Discourse.

Хорошо. Но ни одна веб-страница не загружается 7 минут. Запросы всегда завершались бы ошибкой по таймауту задолго до этого. Вы имеете в виду 7 секунд? У меня страница загружается за несколько секунд при первой генерации, но после первой загрузки кажется быстрой — по крайней мере, в моём браузере.

Чтение

У меня сложилось впечатление, что это может работать с использованием сохранённых поисков.

Нет, это буквально заняло 7 минут от момента первоначального подключения/запроса к openrss.org по вашей ссылке до того, как контент ленты был отображён на странице.

Похоже, для этого требуется установка серверного плагина, который обеспечит сохранённые поиски и ленты, основанные на таких поисках. Для нас это неприемлемо, и, к сожалению, наш экземпляр Discourse не поддерживает функцию «Сохранённые поиски».

Это не имеет особого смысла. Я инженер-программист, и веб-сайты никогда не могут отвечать 7 минут. Серверы завершат соединение по тайм-ауту раньше этого. Веб-сайт и лента, которую я отправил, загружаются у меня довольно быстро. :person_shrugging:

1 лайк

Привет! Не могли бы вы подсказать, почему ссылка Discourse Meta - Latest posts работает и является корректной RSS-лентой, в то время как та же самая RSS-лента выдаёт ошибку «Страница не найдена» на одном из моих сайтов на Discourse, но не показывает ошибок на двух других моих сайтах? Возможно, я случайно изменил какое-то настройки на неработающем сайте? Спасибо.

Используете ли вы одну и ту же версию для всех экземпляров? Есть ли различия в плагинах или компонентах тем между ними?

Привет, да, между моими сайтами могут быть некоторые различия. Мне пришлось бы поочередно отключать плагины, чтобы проверить.

Попробуйте сначала Using Safe Mode to troubleshoot issues with themes and plugins, чтобы убедиться, что проблема связана с плагином, а затем отключите только те плагины, которые отличаются от других систем…

(это обсуждение относится к Support…)

1 лайк