ExternalIds.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #pragma warning disable CS1591
  2. using MediaBrowser.Controller.Entities.Audio;
  3. using MediaBrowser.Controller.Providers;
  4. using MediaBrowser.Model.Entities;
  5. using MediaBrowser.Model.Providers;
  6. using MediaBrowser.Providers.Plugins.MusicBrainz;
  7. namespace MediaBrowser.Providers.Music
  8. {
  9. public class MusicBrainzReleaseGroupExternalId : IExternalId
  10. {
  11. /// <inheritdoc />
  12. public string ProviderName => "MusicBrainz";
  13. /// <inheritdoc />
  14. public string Key => MetadataProvider.MusicBrainzReleaseGroup.ToString();
  15. /// <inheritdoc />
  16. public ExternalIdMediaType? Type => ExternalIdMediaType.ReleaseGroup;
  17. /// <inheritdoc />
  18. public string UrlFormatString => Plugin.Instance.Configuration.Server + "/release-group/{0}";
  19. /// <inheritdoc />
  20. public bool Supports(IHasProviderIds item) => item is Audio || item is MusicAlbum;
  21. }
  22. public class MusicBrainzAlbumArtistExternalId : IExternalId
  23. {
  24. /// <inheritdoc />
  25. public string ProviderName => "MusicBrainz";
  26. /// <inheritdoc />
  27. public string Key => MetadataProvider.MusicBrainzAlbumArtist.ToString();
  28. /// <inheritdoc />
  29. public ExternalIdMediaType? Type => ExternalIdMediaType.AlbumArtist;
  30. /// <inheritdoc />
  31. public string UrlFormatString => Plugin.Instance.Configuration.Server + "/artist/{0}";
  32. /// <inheritdoc />
  33. public bool Supports(IHasProviderIds item) => item is Audio;
  34. }
  35. public class MusicBrainzAlbumExternalId : IExternalId
  36. {
  37. /// <inheritdoc />
  38. public string ProviderName => "MusicBrainz";
  39. /// <inheritdoc />
  40. public string Key => MetadataProvider.MusicBrainzAlbum.ToString();
  41. /// <inheritdoc />
  42. public ExternalIdMediaType? Type => ExternalIdMediaType.Album;
  43. /// <inheritdoc />
  44. public string UrlFormatString => Plugin.Instance.Configuration.Server + "/release/{0}";
  45. /// <inheritdoc />
  46. public bool Supports(IHasProviderIds item) => item is Audio || item is MusicAlbum;
  47. }
  48. public class MusicBrainzArtistExternalId : IExternalId
  49. {
  50. /// <inheritdoc />
  51. public string ProviderName => "MusicBrainz";
  52. /// <inheritdoc />
  53. public string Key => MetadataProvider.MusicBrainzArtist.ToString();
  54. /// <inheritdoc />
  55. public ExternalIdMediaType? Type => ExternalIdMediaType.Artist;
  56. /// <inheritdoc />
  57. public string UrlFormatString => Plugin.Instance.Configuration.Server + "/artist/{0}";
  58. /// <inheritdoc />
  59. public bool Supports(IHasProviderIds item) => item is MusicArtist;
  60. }
  61. public class MusicBrainzOtherArtistExternalId : IExternalId
  62. {
  63. /// <inheritdoc />
  64. public string ProviderName => "MusicBrainz";
  65. /// <inheritdoc />
  66. public string Key => MetadataProvider.MusicBrainzArtist.ToString();
  67. /// <inheritdoc />
  68. public ExternalIdMediaType? Type => ExternalIdMediaType.OtherArtist;
  69. /// <inheritdoc />
  70. public string UrlFormatString => Plugin.Instance.Configuration.Server + "/artist/{0}";
  71. /// <inheritdoc />
  72. public bool Supports(IHasProviderIds item) => item is Audio || item is MusicAlbum;
  73. }
  74. public class MusicBrainzTrackId : IExternalId
  75. {
  76. /// <inheritdoc />
  77. public string ProviderName => "MusicBrainz";
  78. /// <inheritdoc />
  79. public string Key => MetadataProvider.MusicBrainzTrack.ToString();
  80. /// <inheritdoc />
  81. public ExternalIdMediaType? Type => ExternalIdMediaType.Track;
  82. /// <inheritdoc />
  83. public string UrlFormatString => Plugin.Instance.Configuration.Server + "/track/{0}";
  84. /// <inheritdoc />
  85. public bool Supports(IHasProviderIds item) => item is Audio;
  86. }
  87. }