Интересно, существует ли способ, возможно, через изменение URL общей темы, чтобы ссылка автоматически упоминалась от имени учётной записи системы при её упоминании на этом форуме meta или в другом месте.
В настоящее время мы эмулируем такое поведение, создавая сообщение и передавая его владение системе. Посмотрите, как это работает здесь.
Хорошо, это помогает, но почему? В чём важность этого, зачем это необходимо?
(Наверное, мы делаем что-то подобное для интеграции с GitHub, где мы связываем темы Discourse с коммитами, но это смешивание двух отличных, но разных вкусов, как шоколад и арахисовое масло. А здесь вы смешиваете арахисовое масло… и… э-э… ещё больше арахисового масла?)
Я просто считаю, что это очень полезно, поскольку мы используем такие площадки, как meta.discourse, для обсуждения вопросов, поднятых на нашем собственном Discourse, и большинство администраторов не подумают ссылаться на эти обсуждения для контекста пользователям и будущим сопровождающим. Я лишь недавно взял на себя поддержку нашего форума, поэтому надеюсь оставлять больше информации для будущих сопровождающих.
Тема «федерации» технологий форумов в последнее время кажется очень популярной. Похоже, что это невозможно, но я решил проверить.
Это невероятно сложно. Это то же самое для социального ПО, что утверждение «полностью автономные автомобили без водителя уже совсем скоро».
Кейс использования 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 сайтов. Возможно, стоит добавить домены в белый список в настройках плагина.