< Summary - Jellyfin

Information
Class: MediaBrowser.Providers.Plugins.ListenBrainz.ListenBrainzPlugin
Assembly: MediaBrowser.Providers
File(s): /srv/git/jellyfin/MediaBrowser.Providers/Plugins/ListenBrainz/ListenBrainzPlugin.cs
Line coverage
100%
Covered lines: 20
Uncovered lines: 0
Coverable lines: 20
Total lines: 63
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100 5/16/2026 - 12:15:55 AM Line coverage: 100% (24/24) Total lines: 645/22/2026 - 12:15:17 AM Line coverage: 100% (20/20) Total lines: 63

Coverage delta

Coverage delta 1 -1

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
get_Id()100%11100%
get_Name()100%11100%
get_Description()100%11100%
get_ConfigurationFileName()100%11100%
get_ImageResourceName()100%11100%
GetPages()100%11100%

File(s)

/srv/git/jellyfin/MediaBrowser.Providers/Plugins/ListenBrainz/ListenBrainzPlugin.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using MediaBrowser.Common.Configuration;
 4using MediaBrowser.Common.Plugins;
 5using MediaBrowser.Controller.Plugins;
 6using MediaBrowser.Model.Plugins;
 7using MediaBrowser.Model.Serialization;
 8using MediaBrowser.Providers.Plugins.ListenBrainz.Configuration;
 9
 10namespace MediaBrowser.Providers.Plugins.ListenBrainz;
 11
 12/// <summary>
 13/// ListenBrainz plugin instance.
 14/// </summary>
 15public class ListenBrainzPlugin : BasePlugin<PluginConfiguration>, IHasWebPages, IHasEmbeddedImage
 16{
 17    /// <summary>
 18    /// Initializes a new instance of the <see cref="ListenBrainzPlugin"/> class.
 19    /// </summary>
 20    /// <param name="applicationPaths">Instance of the <see cref="IApplicationPaths"/> interface.</param>
 21    /// <param name="xmlSerializer">Instance of the <see cref="IXmlSerializer"/> interface.</param>
 22    public ListenBrainzPlugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer)
 2123        : base(applicationPaths, xmlSerializer)
 24    {
 2125        Instance = this;
 2126    }
 27
 28    /// <summary>
 29    /// Gets the current plugin instance.
 30    /// </summary>
 31    public static ListenBrainzPlugin? Instance { get; private set; }
 32
 33    /// <inheritdoc />
 2634    public override Guid Id => new("a5b2e8c1-9d4f-4a3b-8c7e-6f1a2b3c4d5e");
 35
 36    /// <inheritdoc />
 3637    public override string Name => "ListenBrainz Similarity Provider";
 38
 39    /// <inheritdoc />
 140    public override string Description => "Get similar artist recommendations from ListenBrainz Labs.";
 41
 42    /// <inheritdoc />
 143    public override string ConfigurationFileName => "Jellyfin.Plugin.ListenBrainz.xml";
 44
 45    /// <inheritdoc />
 2146    public string ImageResourceName => GetType().Namespace + ".Configuration.ListenBrainz_logo.svg";
 47
 48    /// <inheritdoc />
 49    public IEnumerable<PluginPageInfo> GetPages()
 50    {
 551        var resourcePrefix = GetType().Namespace + ".Configuration.";
 552        yield return new PluginPageInfo
 553        {
 554            Name = Name,
 555            EmbeddedResourcePath = resourcePrefix + "config.html"
 556        };
 557        yield return new PluginPageInfo
 558        {
 559            Name = Name + "Notice",
 560            EmbeddedResourcePath = resourcePrefix + "NOTICE.md"
 561        };
 562    }
 63}