ListenBrainz

||||\n-|-|-|\n:information_source: | 摘要 | Discourse 插件,用于在其个人资料中显示用户的 ListenBrainz 收听记录\n:hammer_and_wrench: | 仓库链接 | \u003chttps://git.sr.ht/~phw/discourse-listenbrainz\u003e\n:open_book: | 安装指南 | 如何在 Discourse 中安装插件\n\n\u003cbr\u003e \n\n### 特性\n \n此 Discourse 插件允许用户在其个人资料中展示他们从 ListenBrainz 收听的最新记录。用户可以选择显示他们最近的收听记录或其 ListenBrainz 个人资料的总体统计信息。\n\nListenBrainz 是一个在线服务,用于跟踪您收听的音乐,并提供有关您的收听习惯和推荐的见解。该项目完全开源,并以开放数据形式发布所有数据。\n\n此插件目前在 MusicBrainz 社区论坛中使用,但对于其他与音乐相关的社区也可能很有趣。\n\n

\n\n \n### 配置\n \n#### 管理员设置\n\n您可以在 Discourse 管理界面中配置 ListenBrainz 插件。可用的选项如下:\n\n- listenbrainz enable: 允许用户在其个人资料中显示其 ListenBrainz 状态。默认:已启用。\n\n- listenbrainz username matches discourse: 如果 Discourse 用户的用户名通常与其 ListenBrainz 用户名匹配,则启用此选项。用户仍然可以配置不同的 ListenBrainz 用户名,但它将预先填充其 Discourse 用户名。此选项主要用于 MetaBrainz 社区论坛。默认:已禁用。\n\n- listenbrainz poster icon: 允许用户在其每篇帖子的用户名旁边显示指向其 ListenBrainz 个人资料的链接。默认:已启用。\n\n- listenbrainz_onebox_enabled: 为指向 ListenBrainz 个人资料页面的 URL 启用 Onebox 支持。默认:已启用。\n\n- listenbrainz_onebox_range: ListenBrainz Onebox 的统计时间范围。默认:本月。\n\n#### 用户偏好设置\n\n每个用户都可以控制其 ListenBrainz 活动是否显示在其个人资料中。用户可以在其个人资料偏好设置中配置此项。可用的偏好设置如下。\n\n- Show ListenBrainz information in my user profile: 启用后,将在用户的用户卡片和用户个人资料中显示一个包含用户 ListenBrainz 个人资料详细信息的信息框。信息框的内容可以通过下面的选项进行配置。默认:已禁用。\n\n- ListenBrainz username: 用户的 ListenBrainz 用户名。必须设置此项才能显示用户的 ListenBrainz 详细信息。如果网站为 listenbrainz username matches discourse 启用了,则此项默认为 Discourse 用户名,否则默认为空。\n\n- Show a link to my ListenBrainz profile next to my Discourse username: 启用后,将在用户每篇帖子的用户名旁边显示指向用户 ListenBrainz 个人资料的链接。仅当网站启用了 listenbrainz poster icon 时,此选项才可用。默认:已禁用。\n\n- Display: 配置在 ListenBrainz 信息框中显示的内容。可用的选项如下:\n\n - Most recent listen: 显示用户当前正在播放的曲目或最近播放的曲目。\n\n - User profile statistics: 显示用户 ListenBrainz 个人资料的总体统计信息,例如收听次数、最常播放的曲目以及最常播放的专辑封面。\n\n - Most recent listen with fallback to user profile statistics: 尝试显示最近的收听记录,如果没有则回退显示用户个人资料统计信息。这是默认设置。\n\n- Time range: 选择生成用户个人资料统计信息的范围。默认:本月。\n\n- Fallback to larger time range if there are no listens in the selected range: 如果启用,当所选范围内没有收听记录时,个人资料统计信息视图将自动回退到更大的时间范围。例如,如果您选择了“本周”,但本周没有记录收听,则统计信息将回退显示“本月”。默认:已启用。\n\n- Show recent listen not older than: 如果用户上次播放的曲目早于给定时间,则不显示。默认:24 小时。\n\n \n### 待办事项\n\n请参阅官方 问题跟踪器 以了解未解决的问题和计划中的功能。

7 个赞

Spotify上有什么类似的东西吗?

据我所知没有。如果有人想这样做,ListenBrainz 可以作为构建的基础。

这太难了吗?我想知道我能不能做到?

抱歉,我错过了你之前的问题。这有多难,取决于你对开发 Web 应用程序的经验,特别是如果你有 Ember.js 和 Ruby on Rails 框架的经验。我个人在 Web 开发方面有相当广泛的经验,但没有 Ember.js 的经验。因此,在开发插件时,这通常是最耗时的部分,因为我必须弄清楚在这个框架中如何做我想做的事情。

无论如何,第一步是在本地设置 discourse 进行开发,并尝试在那里运行 LB 插件。我把我个人的笔记写在了 https://git.sr.ht/~phw/discourse-listenbrainz/tree/develop/item/CONTRIBUTE.md (但它非常简短)。一旦这能正常工作,你就可以开始尝试修改代码部分会发生什么。

但说了这么多,我个人对做 Spotify 的事情毫无兴趣。如果你想解决这个问题,并且对我的插件的结构和工作方式有任何疑问,我可以提供帮助,但所有与 Spotify API 相关的内容以及如何使用它,你需要从 Spotify 的文档中获取。

1 个赞

鉴于您制作了这个(哈哈),您应该对 ListenBrainz 有些经验,它是如何与 last.fm 一起工作的?我个人从未使用过这两个服务,但我认为这个插件的功能很棒,不过听起来我的大多数用户(或者可能没有一个)使用 ListenBrainz,但有多个用户已经在使用 last.fm。我查了一下,看到您可以从 lastfm 导入到 ListenBrainz,但我假设这不像 lastfm 连接到 Spotify 等那样是主动连接(我猜 ListenBrainz 也是这样做的?)。

基本上,您是否知道他们注册了 ListenBrainz,并且我安装了这个插件,是否有可能将 Spotify(或其他)> lastfm > ListenBrainz 链接起来,从而使这个插件能够工作?我猜不行,因为它看起来更像是您可以导入您的 lastfm 数据,但它并没有主动监控。

是的,就是这样。你可以重复导入,它只会导入新数据。但这主要是为了从 last.fm 迁移到 ListenBrainz,而不是用于持续同步。

不过,ListenBrainz 可以直接与 Spotify 连接,并记录那里的所有收听记录。

除此之外,这个插件当然只有在用户实际使用 LB 时才有意义。

为 last.fm 或如上所述的 Spotify 制作类似的东西可能会非常有趣。出于各种原因,我自己没有兴趣在这方面投入任何工作,但我邀请所有感兴趣的人以我的插件为基础来制作这样的插件。

是的,我想是的。我不是开发者之一,但我已经做了多个 ListenBrainz 集成,并且自己也非常积极地使用它。此外,我以某种方式参与过多个与 MusicBrainz 相关的项目,主要是 MusicBrainz Picard。