Мне очень нравится, что вы поднимаете эту крайне актуальную проблему. Однако мне кажется, что до сих пор не хватает качественных рабочих процессов, лучших практик и, в идеале, инструментов, которые сделали бы работу с этими двумя отдельными продуктами более эффективной, приятной и плавной. Это актуально, несмотря на очень похожую (хоть и более широкую) статью в блоге трёхлетней давности, которая вызвала небольшое обсуждение (и некоторые запросы, схожие с тем, что я сейчас собираюсь изложить).
Я приведу несколько примеров того, что я в идеале хотел бы иметь возможность делать для гармонизации, например, Discord и Discourse, понимая, что ни один из этих сценариев может оказаться невозможным из-за ограничений API Discord или Discourse или по другим причинам. Но я считаю, что стоит больше об этом подумать и поговорить, углубившись в детали, поскольку проблема синхронной/асинхронной коммуникации является насущной для многих сообществ, и идеальных решений пока не существует.
Первое и самое важное — это, казалось бы, простые инструменты, облегчающие переход из одной системы в другую. Возможность ссылаться на категорию Discourse в Discord просто так, и наоборот, на канал Discord в Discourse, чтобы мне не приходилось копировать ссылки в одной или другой системе. Ещё лучше — встроенный поиск тем в Discord, чтобы я мог найти и отправить ссылку, не покидая Discord. Также возможность мгновенно генерировать приглашение в одну систему из другой просто с помощью горячей клавиши или чего-то подобного, в любой из систем.
Новый пользователь: Как мне сделать X? Помогающий пользователь: Хороший вопрос. Пожалуйста, перепостите это на наш публичный форум, чтобы любые полученные вами ответы можно было найти и прочитать любому другому, кто может задавать тот же вопрос.
Это приемлемая политика для решения части проблемы, но с точки зрения UX она не идеальна для пользователя. Вместо этого я бы с радостью мог кликнуть на его сообщение в Discord, а затем одной командой сгенерировать ссылку-приглашение на форум, перенаправив его в нужную категорию, и в идеале даже инициировать действие «Новая тема» после его регистрации. Бонусные баллы за копирование самого содержимого его сообщения из Discord в тему Discourse.
Возможно, это также автоматически отдавало бы предпочтение интеграции входа через Discord, например: пользователь кликает на ссылку в Discord, открывается новое окно браузера с форумом, и появляется всплывающее окно с надписью: «Вас пригласили присоединиться к сообществу Discourse X! Нажмите «Войти», используя свою учётную запись Discord, или выберите альтернативный вариант входа справа». Затем, после регистрации, его, возможно, перенаправили бы на создание новой темы.
Предложение «подождать окончания чата, а затем сгенерировать резюме» также могло бы получить значительную помощь от инструментов. Я вижу, что у вас есть инструмент для Slack, который частично автоматизирует эту работу, что отлично. Я его не использовал, поэтому не знаю, как он обрабатывает такие вещи, как имена пользователей, которые в идеале должны связываться с существующими именами пользователей Discourse. Но что ещё важнее, было бы здорово иметь такую возможность для Discord. Я вижу в той предыдущей статье приглашение к сотрудничеству от других чат-приложений, но, полагаю, этого не произошло. Что потребуется, чтобы достаточно мотивировать на это? Можно ли сделать это ещё более мощным, работая с выделенным фрагментом, а не с «последними 20 сообщениями»? И, если это ещё не часть версии для Slack, было бы приятно автоматически генерировать ссылку обратно в чат в посте форума.
Я просто высказываю свои идеи наугад, но думаю, что хотя бы часть этого действительно помогла бы.
Лично в долгосрочной перспективе я очень надеюсь, что появится единый инструмент, который лучше объединит оба подхода: синхронный и асинхронный. Я знаю, что в последнее время обсуждалось, что темы Discourse с высоким объёмом сообщений, возможно, смогут трансформироваться в чаты, возможно, с некоторой эфемерностью. Я надеюсь, что вся эта концепция получит глубокое рассмотрение и будет реализована с «чистым листом» (blue sky), чтобы предоставить лучший набор инструментов для сообществ, чтобы они могли на самом деле интегрировать ценности обоих подходов.
Для меня это в идеале должно быть реализовано внутри Discourse. Возможно, можно было бы создавать чат в любом месте, привязанный к существующей теме или нет (чат на уровне категории был бы крутым). Это могло бы работать немного как потоки в Slack, то есть «ветвиться» от какой-то точки: вы читаете тему и добираетесь до «ответа», который на самом деле является визуальным резюме реального чата, произошедшего в реальном времени: «Чат сгенерировал 243 сообщения 31.05.21 с пользователями x, y, z [аватары]» или что-то в этом роде. Модификация существующей панели резюме темы, специфичная для чата, со стилизацией для её дифференциации, с возможностью кликнуть, чтобы открыть окно чата для просмотра, или развернуть его в строке или что-то подобное.
Чаты могли бы автоматически архивироваться или даже удаляться, если это желательно. Но в идеале должны предоставляться инструменты для сводки чата обратно в тему, возможно, с использованием знакомых функций редактирования сообщений в Discourse (множественное выделение и т.д.). Модераторы могли бы делать это, или пользователи могли бы выбрать одно или несколько своих сообщений, чтобы внести их обратно в тему, если захотят. Если этого не произойдёт в течение определённого периода времени, всё архивируется (опционально?). Для чатов на основе категорий можно было бы также «продвигать» сообщение чата в тему.
В любом случае, существует миллион возможных идей. Но это кажется большой областью потенциальной ценности, если это удастся реализовать правильно внутри Discourse. Снизить напряжение, например, между Discord и Discourse, и «жёсткость» подхода Discourse, сохраняя при этом преимущества обоих, и я думаю, это будет большой победой. Легче сказать, чем сделать, но, безусловно, достойная задача!
Редактирование: также я знаю, что в прошлом было много различных обсуждений на похожие темы, например:
и т.д.
Babble — это круто, хотя, похоже, он не так хорошо поддерживается. Что ещё важнее, он не решает большинство проблем, о которых я говорил выше, хотя хотя бы интегрирует всё в одном месте, что упрощает переход между режимами взаимодействия…
Редактирование 2: Также-также, вероятно, должны существовать категории/«каналы» только для чата. Но снова с возможностью «продвигать» сообщение (или серию сообщений?) в тему. И теперь я задумываюсь, не стоило ли мне опубликовать это где-то как новую тему. Эх, ладно.
Отлично, спасибо. Я, безусловно, надеюсь на более глубокую и продвинутую интеграцию, которая может выходить за рамки того, что вы разработали. Но это, безусловно, отличный плагин для использования на данный момент.
Кстати, в более общем плане я позже обнаружил этот более ранний пост от Сэма, который показывает, что эта тема уже давно занимает команду Discourse! В той теме приведены отличные подробности его размышлений, вот лишь некоторые из них:
Я написал плагин, который частично решает эту проблему, по крайней мере, когда речь идет о правах доступа. Вот введение в то, как это работает: https://www.youtube.com/watch?v=C5paAvTYty4
Он связывает системы управления правами обеих платформ.
Мне кажется, хорошей идеей будет перевернуть этот подход с ног на голову. Вместо того чтобы перенаправлять людей из Discord в Discourse, мы могли бы рассматривать разговоры, происходящие в Discord, как актив. Это огромный кладезь контента, который можно использовать для автоматического создания тем в Discourse.
Когда я писал плагин для синхронизации ролей Discord с группами Discourse, я понял, насколько мощным является API Discord. Мы можем реагировать на любое событие, происходящее на сервере Discord. Например, мы могли бы создавать темы в Discourse каждый раз, когда кто-то использует вопросительный знак. Мне кажется, вопросы и ответы на них — это, пожалуй, самая ценная «низко висящая» возможность со стороны Discord, которую мы могли бы сорвать и поместить в корзину с плодами Discourse. Это также расширит воронку привлечения в сообщество, поскольку самые ценные части разговоров в Discord станут доступны через обычный веб. В настоящее время разговоры в Discord не индексируются поисковыми системами, поэтому это может открыть большие возможности.
Конечно! На самом деле я уже изложил некоторые из этих идей выше. Например:
Но чтобы попытаться изложить это в общем виде (и учитывая, что я понимаю: часть этого может оказаться невозможной или более сложной, чем того стоит, это идеализированное видение):
Возможность для администраторов, модераторов или любого пользователя (в зависимости от настроек прав) мгновенно создавать темы в Discourse из одного (или нескольких) сообщений в Discord с помощью очень простого интерфейса, например, через контекстное меню (правый клик).
Интерфейс для выбора категории и тегов (по желанию) для новой темы
Возможность мультиселекта может использоваться для выбора нескольких сообщений для включения
Базовая версия могла бы просто создавать тему от системного или другого неперсонального пользователя Discourse, с содержимым одного или нескольких сообщений Discord как единого сообщения, начинающего новую тему
Продвинутая версия в идеале должна сопоставлять пользователей Discord и Discourse, создавать тему из первого выбранного сообщения, атрибутируя её соответствующему пользователю, а остальные выбранные сообщения — как ответы, также с правильной атрибуцией
В любом случае в Discord будет отправлено сообщение вроде: «Здесь только что была превращена беседа в тему Discourse. Переходите туда, чтобы продолжить обсуждение, если хотите! [ссылка].»
Прокрутите страницу вниз до раздела «Ретроспективное ветвление» (Retroactive Threading), чтобы увидеть хороший пример (как по концепции, так и по интерфейсу) того, что я имею в виду: https://quill.chat/
Дополнительные цели:
Ещё одной приятной функцией было бы уведомление пользователя(ов), чьи сообщения превращаются в тему Discourse, прямо в Discord со ссылкой на новую тему
Было бы неплохо предоставить возможность пользователям, чьи сообщения были выбраны для создания темы, отказаться от этого действия (opt-out)
Возможность автоматически приглашать авторов выбранных сообщений в Discourse, если у них ещё нет аккаунта (или если не удаётся найти совпадающий, что можно решить при регистрации, если у них есть аккаунт, но с другим адресом электронной почты и т. д.)
Интеграция с существующим (недавно добавленным) поведением Discord, подсказывающим создание веток, когда оно сообщает (при ответе на предыдущее сообщение): «Хотите упростить отслеживание этой беседы из X ответов? Начните [ветку]», добавив ещё одну опцию, например: «Начните [ветку] или новую [тему] на нашем форуме»
Обнаружение длинных сообщений, составляемых в Discord, и предложение, например: «Похоже, вы пишете очень длинное сообщение в чате. Хотите [создать тему на форуме] вместо этого?»
Встроенные, раскрывающиеся (всплывающие, с прокруткой?) представления тем для тем, связанных с сообщением/веткой Discord, то есть показ обычного превью типа «onebox», но с возможностью кликнуть, чтобы увидеть больше из реальной беседы, например, во всплывающем окне с прокруткой
Общая цель — сделать так, чтобы людям было проще, если не бесшовно, начинать новые темы из существующих бесед в Discord и продолжать более углублённые обсуждения на платформе, где это имеет больше смысла. И в идеале также предоставлять контекстные, но ненавязчивые подсказки (как это уже делает Discord), когда людям может быть полезно продолжить обсуждение на форуме, а не в Discord. Я не претендую на то, что часть этого не будет казаться немного громоздкой или неуклюжей, но я считаю, что это будет улучшением по сравнению с тем, что у нас есть сейчас.
Остаётся неясным, как будет выглядеть встроенный в сам Discourse чат, а также насколько он будет востребован, например, сообществами, которые хотят иметь активный компонент реального времени наряду с форумом, по сравнению с теми, кто, например, начал в Discord или уже имеет сильное сообщество и в Discord, и на форуме. Будет ли интеграция достаточной, чтобы новые разработчики сообществ просто использовали Discourse как для функций реального времени, так и для форума? Посмотрим. Но полезность многих из предложенных мной выше функций может сильно зависеть от этого результата.
Я не программист, но часто думаю о финансировании различных проектов. Проблема в том, что у меня есть множество вещей, которые я хотел бы добавить/улучшить в Discourse, и определённо недостаточно денег, чтобы финансировать их все. Поэтому я расставляю приоритеты… Функции интеграции с Discord больше интересны для моих клиентов по консалтингу, поэтому я надеюсь, что однажды смогу убедить одного из них профинансировать расширение в этой области.
Да, я наткнулся на это в какой-то момент, не уверен, до или после моего поста выше. Это полезно, спасибо за это. Это покрывает лишь часть «проблемы», но это определённо часть возможного решения.
В целом я согласен с вами, но я осторожен в отношении автоматической публикации/републикации. Осторожен, но, безусловно, заинтересован в возможностях. Если это можно было бы реализовать на основе правил, как вы описываете, это могло бы быть более полезным.
Это очень интересно! Я не знаком с API Discord, поэтому не уверен, что возможно, но то, что вы описываете, звучит так, будто это может позволить реализовать некоторые полезные решения. Что-то на основе правил, как я упоминал выше, было бы хорошим вариантом.
Однако я всё ещё считаю, что мощные инструменты для модераторов/администраторов для ручной «курации» контента Discord могут быть самым важным или полезным. Конечно, именно это у нас сейчас наименее развито, потому что Integromat (например) уже может фактически делать то, что вы описываете: отслеживать темы Discord, искать определённый текст (например, ?) или даже определённые реакции (например, эмодзи-реакцию, ограниченную для модераторов/администраторов, которая через Integromat вызывает публикацию только этих тем в Discourse), а затем создавать тему Discourse на их основе. Поэтому, хотя было бы неплохо иметь эту функциональность в нативном плагине/интеграции, для меня это кажется менее захватывающей областью фокусировки, чем то, что я описал выше.
Не уверен, правильно ли я вас понял: вы имеете в виду, что правый клик должен происходить в Discord или в интерфейсе Discourse?
Я тоже считаю, что контент должен курироваться. Но проблема в том, что мы не можем добавлять функции в интерфейс Discord. Это вне нашего контроля. Поэтому нам нужно будет использовать API Discord для импорта всех сообщений из Discord в Discourse. Затем мы могли бы создать своего рода «аналитический центр Discord» в панели администратора/модератора Discourse, которая позволяла бы просматривать сообщения из Discord, анализировать их и автоматически создавать из них темы. Возможно, также можно было бы настроить уведомление для модератора каждый раз, когда кто-то использует вопросительный знак или другой символ в Discord. Это уведомление могло бы вести на страницу, где модератор мог бы сразу превратить вопрос и ответы в тему Discourse или отклонить уведомление.
Да, Discord не является проектом с открытым исходным кодом, и я полагаю, что модификация официального клиента нарушает его условия использования.
(Давайте на мгновение оценим освежающее отличие в том, как Discourse управляется и предоставляется для модификации!)
Вы могли бы создать или модифицировать альтернативный клиент, но это большая задача — отслеживать функции официального клиента (при этом добавляя новые!). Я не очень хорошо знаком с альтернативными клиентами, но если вы сможете предложить один из них, который хорошо поддерживается и имеет систему плагинов…
Так что сразу скажу, что модификации интерфейса на стороне Discord будут более сложными.
Однако я вот-вот выпущу новое обновление для плагина Discord Bot, которое позволит копировать последние x сообщений из Discord в новую тему в Discourse.
Это достигается с помощью команды «бот», а не клика в меню.
Оно поддерживает и сопоставляет учётные записи пользователей и позволяет указывать заголовок целевой темы или категорию.
В этом выпуске также есть функция автоматического копирования чата из Discord в Discourse, если названия каналов и категорий совпадают.
Уже существует возможность публиковать новые темы в канале объявлений.
Да, я об этом не знал, но подозревал нечто подобное. Это отчасти причина, по которой я не излагал всё это до сих пор. Тем не менее, похоже, что @merefield смог добиться значительных успехов с этим недавним обновлением! Это очень радует.
Это интересная идея, но она кажется немного «тяжеловесным» решением… (признаюсь, моё тоже имеет свою долю тяжести, но ваше, по крайней мере, реализуемо в том смысле, что Discourse имеет открытый исходный код, а Discord — нет).
Я полностью поддерживаю это!
К сожалению, сторонние клиенты, похоже, нарушают Условия использования Discord, а те, что я видел, либо заброшены, либо имеют закрытый исходный код (и в любом случае, скорее всего, будут заблокированы в какой-то момент). У Matrix есть мост к Discord, но это, пожалуй, всё.
Да, это имеет смысл. То, что я описал, — это мой идеальный сценарий, но я предполагал, что это, вероятно, нереализуемо.
Ого, я этого не ожидал. Потрясающе! Хотя это может быть не совсем так удобно или настраиваемо, как я представлял, звучит так, будто это может фактически реализовать большинство базовых целей, которые я ставил перед улучшениями. Мне очень приятно слышать, что это показалось достаточно полезным и другим людям, поэтому вы над этим работали. Спасибо!
Когда вы говорите, что оно сопоставляет учётные записи пользователей, создаётся ли одна тема, где самое раннее сообщение из набора Discord является первым сообщением, а остальные — ответами?
Хм, интересно. То есть оно делает каждое сообщение новой темой или как? Если нет, то как оно определяет, что является началом темы, а что — ответом?
Ещё раз спасибо за работу над этим. С нетерпением жду возможности опробовать обновления, когда они станут доступны.
Под соответствием учётным записям я имею в виду, что если человек входит в систему, используя свои учётные данные Discord, и при этом существует связанная учётная запись входа, то сообщение в Discord будет правильно атрибутировано и сопровождено правильным аватаром в Discourse.
Нет, это было бы расточительно, я думаю. Это направлено на одну тему в категории.
Да, я понял это. Меня интересовало вот что: вы используете слово «аккаунты» во множественном числе, а модификация импортирует «последние x сообщений». Что если эти сообщения от пяти разных людей? Создаётся ли тогда одна тема с пятью отдельными сообщениями (в качестве ответов), каждое из которых атрибутировано соответствующей учётной записи Discourse (если такая найдена)?
Я согласен. Я предполагал, что это работает не так, но не до конца понимаю детали реализации. Тем не менее, считаю логичным подождать, пока вы выпустите обновление, и, если у меня останутся вопросы к тому времени, я смогу их задать. Ещё раз спасибо!