ListenBrainz

:information_source: Краткое описание Плагин Discourse для отображения прослушиваний пользователя из ListenBrainz в его профиле
:hammer_and_wrench: Ссылка на репозиторий https://git.sr.ht/~phw/discourse-listenbrainz
:open_book: Руководство по установке Как установить плагины в Discourse

Возможности

Этот плагин для Discourse позволяет пользователям демонстрировать свои недавние прослушивания из ListenBrainz в своём профиле. Пользователи могут выбрать отображение своего последнего прослушивания или общей статистики своего профиля ListenBrainz.

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

Этот плагин в настоящее время используется на форумах сообщества MusicBrainz, но может быть интересен и другим музыкальным сообществам.

Конфигурация

Настройки администратора

Вы можете настроить плагин ListenBrainz в интерфейсе администратора Discourse. Доступны следующие опции:

  • listenbrainz enable: Разрешить пользователям отображать статус ListenBrainz в своих профилях. По умолчанию: включено.

  • listenbrainz username matches discourse: Включите эту опцию, если имена пользователей Discourse обычно совпадают с их именами в ListenBrainz. Пользователи всё равно смогут указать другое имя для ListenBrainz, но оно будет предварительно заполнено их именем пользователя Discourse. Эта опция предназначена в первую очередь для использования на форумах сообщества MetaBrainz. По умолчанию: выключено.

  • listenbrainz poster icon: Разрешить пользователям отображать ссылку на свой профиль ListenBrainz рядом с именем пользователя в каждом сообщении. По умолчанию: включено.

  • listenbrainz_onebox_enabled: Включает поддержку Onebox для ссылок на страницы профилей ListenBrainz. По умолчанию: включено.

  • listenbrainz_onebox_range: Временной диапазон статистики для Onebox-ов ListenBrainz. По умолчанию: Этот месяц.

Настройки пользователя

Каждый пользователь сохраняет контроль над тем, будет ли его активность в ListenBrainz отображаться в профиле. Эти настройки можно изменить в предпочтениях профиля. Доступны следующие параметры:

  • Показывать информацию ListenBrainz в моём профиле: При включении в карточке пользователя и в профиле будет отображаться информационная панель с деталями профиля ListenBrainz. Содержимое панели можно настроить с помощью опций ниже. По умолчанию: выключено.

  • Имя пользователя ListenBrainz: Имя пользователя в ListenBrainz. Должно быть установлено, чтобы отображались детали профиля ListenBrainz. Если для сайта включена опция listenbrainz username matches discourse, то по умолчанию используется имя пользователя Discourse, иначе поле остаётся пустым.

  • Показывать ссылку на мой профиль ListenBrainz рядом с моим именем пользователя Discourse: При включении рядом с именем пользователя в каждом сообщении будет отображаться ссылка на профиль ListenBrainz. Эта опция доступна только если на сайте включена опция listenbrainz poster icon. По умолчанию: выключено.

  • Отображение: Настройка содержимого информационной панели ListenBrainz. Доступны следующие варианты:

    • Последнее прослушивание: Отображение текущего трека или последнего прослушанного трека пользователя.

    • Статистика профиля пользователя: Отображение общей статистики профиля ListenBrainz пользователя, такой как количество прослушиваний, самый часто прослушиваемый трек и обложки самых часто прослушиваемых релизов.

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

  • Временной диапазон: Выбор периода, за который генерируется статистика профиля пользователя. По умолчанию: Этот месяц.

  • Переход к большему диапазону, если в выбранном периоде нет прослушиваний: Если включено, при отсутствии прослушиваний в выбранном временном диапазоне статистика автоматически переключится на больший диапазон. Например, если выбрано «Эта неделя», но в текущей неделе нет записанных прослушиваний, статистика покажет «Этот месяц». По умолчанию: включено.

  • Показывать недавние прослушивания не старше чем: Не показывать последний прослушанный трек пользователя, если он старше указанного времени. По умолчанию: 24 часа.

TODO

Пожалуйста, ознакомьтесь с официальным трекером задач для просмотра открытых проблем и запланированных функций.

7 лайков

Есть ли что-то подобное, что отображается в Spotify?

Насколько мне известно, нет. Если кто-то захочет это сделать, ListenBrainz может служить основой для развития.

Не слишком ли это сложно? Интересно, смогу ли я это сделать?

Извините, я пропустил ваш вопрос. Сложность задачи зависит от вашего опыта в разработке веб-приложений и, в частности, от того, знакомы ли вы с фреймворками Ember.js и Ruby on Rails. Лично у меня достаточно широкий опыт веб-разработки, но я не работал с Ember.js. Поэтому этот этап часто становился самым трудоёмким при разработке плагина, так как мне приходилось разбираться, как реализовать нужные функции именно в этом фреймворке.

В любом случае, первый шаг — настроить локальную версию Discourse для разработки и запустить там плагин LB. Я записал свои заметки по этому поводу по адресу: https://git.sr.ht/~phw/discourse-listenbrainz/tree/develop/item/CONTRIBUTE.md (но они очень краткие). Когда это заработает, можно будет начать экспериментировать, изменяя различные части кода и наблюдая за результатами.

Тем не менее, я лично не заинтересован в реализации функционала для Spotify. Если вы решитесь на эту задачу и у вас возникнут вопросы о структуре и работе моего плагина, я с радостью помогу. Однако все вопросы, касающиеся API Spotify и способов его использования, вам нужно будет изучать по официальной документации Spotify.

1 лайк

Наверное, у вас есть опыт работы с ListenBrainz, раз вы создали этот плагин, ха-ха. Как он взаимодействует с Last.fm? Лично я никогда не пользовался ни тем, ни другим, но функционал плагина мне кажется интересным. Однако, похоже, что большинство моих пользователей (а может, и вообще никто) не используют ListenBrainz, зато многие уже пользуются Last.fm. Я изучил вопрос и увидел, что можно импортировать данные из Last.fm в ListenBrainz, но, полагаю, это не активное соединение, как связь Last.fm со Spotify и т. п. (что, я так понимаю, делает и ListenBrainz?).

Если коротко: знаете ли вы, что если пользователь зарегистрировался в ListenBrainz, а я установлю этот плагин, возможно ли построить цепочку Spotify (или что-то ещё) → Last.fm → ListenBrainz, чтобы плагин работал? Я так думаю, что нет, потому что, похоже, можно лишь импортировать данные из Last.fm, но нет активного мониторинга.

Да, именно так. Вы можете повторить импорт, и будут импортированы только новые данные. Однако это больше предназначено для миграции с Last.fm на ListenBrainz, а не для непрерывной синхронизации.

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

Кроме того, этот плагин, конечно, имеет смысл в основном, когда пользователи действительно используют LB.

Было бы довольно интересно создать что-то подобное для Last.fm или, как было предложено выше, для Spotify. По разным причинам я лично не заинтересован в том, чтобы вкладывать в это какие-либо усилия, но я приглашаю всех заинтересованных взять мой плагин за основу для создания такого плагина.

Думаю, да. Я не один из разработчиков, но я реализовывал множество интеграций с ListenBrainz и также очень активно использую его сам. Кроме того, я так или иначе работал над несколькими проектами, связанными с MusicBrainz, в основном над MusicBrainz Picard.