Вопрос: Автоматическое упоминание при публикации ссылки на общую тему в другом Discourse

Интересно, существует ли способ, возможно, через изменение URL общей темы, чтобы ссылка автоматически упоминалась от имени учётной записи системы при её упоминании на этом форуме meta или в другом месте.

В настоящее время мы эмулируем такое поведение, создавая сообщение и передавая его владение системе. Посмотрите, как это работает здесь.

Я не совсем понял. Можете привести конкретный пример из реальной жизни, почему это было бы полезно?

Конечно,

  1. Я создаю новую тему на Форуме A
  2. Я делюсь этой темой по ссылке на Форуме B, который является другим экземпляром Discourse.
  3. Каким-то образом Форум A определяет, что это произошло, и запускает system для автоматического ответа в исходной теме на Форуме A, отображая:

Хорошо, это помогает, но почему? В чём важность этого, зачем это необходимо?

(Наверное, мы делаем что-то подобное для интеграции с GitHub, где мы связываем темы Discourse с коммитами, но это смешивание двух отличных, но разных вкусов, как шоколад и арахисовое масло. А здесь вы смешиваете арахисовое масло… и… э-э… ещё больше арахисового масла?)

Я просто считаю, что это очень полезно, поскольку мы используем такие площадки, как meta.discourse, для обсуждения вопросов, поднятых на нашем собственном Discourse, и большинство администраторов не подумают ссылаться на эти обсуждения для контекста пользователям и будущим сопровождающим. Я лишь недавно взял на себя поддержку нашего форума, поэтому надеюсь оставлять больше информации для будущих сопровождающих. :slight_smile:

Тема «федерации» технологий форумов в последнее время кажется очень популярной. Похоже, что это невозможно, но я решил проверить.

Это невероятно сложно. Это то же самое для социального ПО, что утверждение «полностью автономные автомобили без водителя уже совсем скоро».

Кейс использования GitHub ⇿ Discourse можно оправдать, а вот одноранговые сети — гораздо меньше, на мой взгляд, по транситивному закону шоколадок Reese’s Peanut Butter Cups.

Разве пингбеки не работали точно так же?

Они стали проклятием блогосферы из-за массовых злоупотреблений, и проблема так и не была по-настоящему решена.

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

С другой стороны, разве это не было бы относительно просто реализовать с помощью incoming_links, incoming_referers и incoming_domains?

А что, если бы можно было добавить incoming_domain в белый список, и тогда мы получали бы однобоксы для ссылок с этих доменов на эту тему?

Редактирование: приведённый ниже фрагмент кода выводит все ссылки на сайтах Discourse*, ведущие на конкретную тему. Должно быть довольно легко настроить это как запланированную задачу, которая будет создавать пост в теме при обнаружении новой ссылки. Однобоксы сделают остальное.

topic = Topic.find(xxx)
IncomingLink.where("post_id in (#{topic.posts.pluck(:id).join(',')})").where("incoming_referer_id is not null").each do |link|
  next unless link.incoming_referer.path.start_with?('/t/')
  puts "https://#{link.incoming_referer.incoming_domain.name}#{link.incoming_referer.path}"
end

) Сейчас я использую простую проверку, чтобы определить, является ли ссылка ссылкой на Discourse, но можно было бы даже запрашивать домашнюю страницу сайта и анализировать метаданные — хотя, думаю, это хорошо сработает и для ссылок с не-Discourse сайтов. Возможно, стоит добавить домены в белый список в настройках плагина.