aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Music
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-11-21 15:48:26 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-11-21 15:48:26 -0500
commit17bacee0890cb03a579f9469e435d922bbdfdd50 (patch)
tree7445da7bb2087c35075a37b6a1d8a71db480381a /MediaBrowser.Providers/Music
parentee1a746031f15bdfc5c5e38fab704f5fcb9b67ee (diff)
consolidate Artist & MusicArtist
Diffstat (limited to 'MediaBrowser.Providers/Music')
-rw-r--r--MediaBrowser.Providers/Music/ArtistInfoFromSongProvider.cs42
-rw-r--r--MediaBrowser.Providers/Music/ArtistProviderFromXml.cs13
-rw-r--r--MediaBrowser.Providers/Music/FanArtArtistByNameProvider.cs47
-rw-r--r--MediaBrowser.Providers/Music/LastFmImageProvider.cs2
-rw-r--r--MediaBrowser.Providers/Music/LastfmArtistByNameProvider.cs89
-rw-r--r--MediaBrowser.Providers/Music/LastfmArtistProvider.cs11
-rw-r--r--MediaBrowser.Providers/Music/LastfmHelper.cs20
-rw-r--r--MediaBrowser.Providers/Music/ManualFanartArtistProvider.cs2
-rw-r--r--MediaBrowser.Providers/Music/ManualLastFmImageProvider.cs9
9 files changed, 31 insertions, 204 deletions
diff --git a/MediaBrowser.Providers/Music/ArtistInfoFromSongProvider.cs b/MediaBrowser.Providers/Music/ArtistInfoFromSongProvider.cs
index b5a3b92f91..7069e65ef4 100644
--- a/MediaBrowser.Providers/Music/ArtistInfoFromSongProvider.cs
+++ b/MediaBrowser.Providers/Music/ArtistInfoFromSongProvider.cs
@@ -27,10 +27,15 @@ namespace MediaBrowser.Providers.Music
protected override bool NeedsRefreshInternal(BaseItem item, BaseProviderInfo providerInfo)
{
- // If song metadata has changed
- if (GetComparisonData((MusicArtist)item) != providerInfo.FileStamp)
+ var artist = (MusicArtist)item;
+
+ if (!artist.IsAccessedByName)
{
- return true;
+ // If song metadata has changed
+ if (GetComparisonData(artist) != providerInfo.FileStamp)
+ {
+ return true;
+ }
}
return base.NeedsRefreshInternal(item, providerInfo);
@@ -47,7 +52,7 @@ namespace MediaBrowser.Providers.Music
return GetComparisonData(songs);
}
- private Guid GetComparisonData(List<Audio> songs)
+ private Guid GetComparisonData(IEnumerable<Audio> songs)
{
var genres = songs.SelectMany(i => i.Genres)
.Distinct(StringComparer.OrdinalIgnoreCase)
@@ -60,23 +65,26 @@ namespace MediaBrowser.Providers.Music
{
var artist = (MusicArtist)item;
- BaseProviderInfo data;
- if (!item.ProviderData.TryGetValue(Id, out data))
+ if (!artist.IsAccessedByName)
{
- data = new BaseProviderInfo();
- item.ProviderData[Id] = data;
- }
+ BaseProviderInfo data;
+ if (!item.ProviderData.TryGetValue(Id, out data))
+ {
+ data = new BaseProviderInfo();
+ item.ProviderData[Id] = data;
+ }
- var songs = artist.RecursiveChildren.OfType<Audio>().ToList();
+ var songs = artist.RecursiveChildren.OfType<Audio>().ToList();
- if (!item.LockedFields.Contains(MetadataFields.Genres))
- {
- artist.Genres = songs.SelectMany(i => i.Genres)
- .Distinct(StringComparer.OrdinalIgnoreCase)
- .ToList();
- }
+ if (!item.LockedFields.Contains(MetadataFields.Genres))
+ {
+ artist.Genres = songs.SelectMany(i => i.Genres)
+ .Distinct(StringComparer.OrdinalIgnoreCase)
+ .ToList();
+ }
- data.FileStamp = GetComparisonData(songs);
+ data.FileStamp = GetComparisonData(songs);
+ }
SetLastRefreshed(item, DateTime.UtcNow);
return TrueTaskResult;
diff --git a/MediaBrowser.Providers/Music/ArtistProviderFromXml.cs b/MediaBrowser.Providers/Music/ArtistProviderFromXml.cs
index 8cc49ac393..b7e8463531 100644
--- a/MediaBrowser.Providers/Music/ArtistProviderFromXml.cs
+++ b/MediaBrowser.Providers/Music/ArtistProviderFromXml.cs
@@ -31,7 +31,7 @@ namespace MediaBrowser.Providers.Music
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
public override bool Supports(BaseItem item)
{
- return (item is Artist || item is MusicArtist) && item.LocationType == LocationType.FileSystem;
+ return (item is MusicArtist) && item.LocationType == LocationType.FileSystem;
}
/// <summary>
@@ -88,16 +88,7 @@ namespace MediaBrowser.Providers.Music
try
{
- var artist = item as Artist;
-
- if (artist != null)
- {
- new BaseItemXmlParser<Artist>(Logger).Fetch(artist, path, cancellationToken);
- }
- else
- {
- new BaseItemXmlParser<MusicArtist>(Logger).Fetch((MusicArtist)item, path, cancellationToken);
- }
+ new BaseItemXmlParser<MusicArtist>(Logger).Fetch((MusicArtist)item, path, cancellationToken);
}
finally
{
diff --git a/MediaBrowser.Providers/Music/FanArtArtistByNameProvider.cs b/MediaBrowser.Providers/Music/FanArtArtistByNameProvider.cs
deleted file mode 100644
index 5d18f16ffa..0000000000
--- a/MediaBrowser.Providers/Music/FanArtArtistByNameProvider.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using MediaBrowser.Common.IO;
-using MediaBrowser.Common.Net;
-using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Entities.Audio;
-using MediaBrowser.Controller.IO;
-using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Logging;
-
-namespace MediaBrowser.Providers.Music
-{
- /// <summary>
- /// Class FanArtArtistByNameProvider
- /// </summary>
- public class FanArtArtistByNameProvider : FanArtArtistProvider
- {
- /// <summary>
- /// Initializes a new instance of the <see cref="FanArtArtistByNameProvider" /> class.
- /// </summary>
- public FanArtArtistByNameProvider(IHttpClient httpClient, ILogManager logManager, IServerConfigurationManager configurationManager, IProviderManager providerManager, IFileSystem fileSystem)
- : base(httpClient, logManager, configurationManager, providerManager, fileSystem)
- {
- }
-
- /// <summary>
- /// Supportses the specified item.
- /// </summary>
- /// <param name="item">The item.</param>
- /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
- public override bool Supports(BaseItem item)
- {
- return item is Artist;
- }
-
- /// <summary>
- /// Gets a value indicating whether [save local meta].
- /// </summary>
- /// <value><c>true</c> if [save local meta]; otherwise, <c>false</c>.</value>
- protected override bool SaveLocalMeta
- {
- get
- {
- return true;
- }
- }
- }
-}
diff --git a/MediaBrowser.Providers/Music/LastFmImageProvider.cs b/MediaBrowser.Providers/Music/LastFmImageProvider.cs
index cd40052235..a2ae597d78 100644
--- a/MediaBrowser.Providers/Music/LastFmImageProvider.cs
+++ b/MediaBrowser.Providers/Music/LastFmImageProvider.cs
@@ -42,7 +42,7 @@ namespace MediaBrowser.Providers.Music
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
public override bool Supports(BaseItem item)
{
- return item is Artist || item is MusicArtist || item is MusicAlbum;
+ return item is MusicArtist || item is MusicAlbum;
}
/// <summary>
diff --git a/MediaBrowser.Providers/Music/LastfmArtistByNameProvider.cs b/MediaBrowser.Providers/Music/LastfmArtistByNameProvider.cs
deleted file mode 100644
index 26ac68c3d4..0000000000
--- a/MediaBrowser.Providers/Music/LastfmArtistByNameProvider.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-using MediaBrowser.Common.Net;
-using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Entities.Audio;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Model.Logging;
-using MediaBrowser.Model.Serialization;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace MediaBrowser.Providers.Music
-{
- /// <summary>
- /// Class LastfmArtistByNameProvider
- /// </summary>
- public class LastfmArtistByNameProvider : LastfmArtistProvider
- {
- /// <summary>
- /// Initializes a new instance of the <see cref="LastfmArtistByNameProvider" /> class.
- /// </summary>
- /// <param name="jsonSerializer">The json serializer.</param>
- /// <param name="httpClient">The HTTP client.</param>
- /// <param name="logManager">The log manager.</param>
- /// <param name="configurationManager">The configuration manager.</param>
- /// <param name="libraryManager">The library manager.</param>
- public LastfmArtistByNameProvider(IJsonSerializer jsonSerializer, IHttpClient httpClient, ILogManager logManager, IServerConfigurationManager configurationManager, ILibraryManager libraryManager)
- : base(jsonSerializer, httpClient, logManager, configurationManager, libraryManager)
- {
- }
-
- /// <summary>
- /// Gets a value indicating whether [save local meta].
- /// </summary>
- /// <value><c>true</c> if [save local meta]; otherwise, <c>false</c>.</value>
- protected override bool SaveLocalMeta
- {
- get
- {
- return true;
- }
- }
-
- /// <summary>
- /// Supportses the specified item.
- /// </summary>
- /// <param name="item">The item.</param>
- /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
- public override bool Supports(BaseItem item)
- {
- return item is Artist;
- }
-
- /// <summary>
- /// Gets the provider version.
- /// </summary>
- /// <value>The provider version.</value>
- protected override string ProviderVersion
- {
- get
- {
- return "7";
- }
- }
-
- /// <summary>
- /// Fetches the lastfm data.
- /// </summary>
- /// <param name="item">The item.</param>
- /// <param name="musicBrainzId">The music brainz id.</param>
- /// <param name="cancellationToken">The cancellation token.</param>
- /// <returns>Task.</returns>
- protected override async Task FetchLastfmData(BaseItem item, string musicBrainzId, bool force, CancellationToken cancellationToken)
- {
- var artist = (Artist)item;
-
- // See if we can avoid an http request by finding the matching MusicArtist entity
- var musicArtist = Artist.FindMusicArtist(artist, LibraryManager);
-
- if (musicArtist != null && !force)
- {
- LastfmHelper.ProcessArtistData(musicArtist, artist);
- }
- else
- {
- await base.FetchLastfmData(item, musicBrainzId, force, cancellationToken).ConfigureAwait(false);
- }
- }
- }
-}
diff --git a/MediaBrowser.Providers/Music/LastfmArtistProvider.cs b/MediaBrowser.Providers/Music/LastfmArtistProvider.cs
index 3113d2541f..2a7977fa62 100644
--- a/MediaBrowser.Providers/Music/LastfmArtistProvider.cs
+++ b/MediaBrowser.Providers/Music/LastfmArtistProvider.cs
@@ -84,17 +84,6 @@ namespace MediaBrowser.Providers.Music
/// <returns>Task{System.String}.</returns>
private async Task<string> FindId(BaseItem item, CancellationToken cancellationToken)
{
- if (item is Artist)
- {
- // Since MusicArtists are refreshed first, try to find it from one of them
- var id = FindIdFromMusicArtistEntity(item);
-
- if (!string.IsNullOrEmpty(id))
- {
- return id;
- }
- }
-
try
{
// If we don't get anything, go directly to music brainz
diff --git a/MediaBrowser.Providers/Music/LastfmHelper.cs b/MediaBrowser.Providers/Music/LastfmHelper.cs
index 800fdc4383..8e2aed50ed 100644
--- a/MediaBrowser.Providers/Music/LastfmHelper.cs
+++ b/MediaBrowser.Providers/Music/LastfmHelper.cs
@@ -39,21 +39,12 @@ namespace MediaBrowser.Providers.Music
var musicArtist = artist as MusicArtist;
- string imageSize;
-
if (musicArtist != null)
{
+ string imageSize;
musicArtist.LastFmImageUrl = GetImageUrl(data, out imageSize);
musicArtist.LastFmImageSize = imageSize;
}
-
- var artistByName = artist as Artist;
-
- if (artistByName != null)
- {
- artistByName.LastFmImageUrl = GetImageUrl(data, out imageSize);
- artistByName.LastFmImageSize = imageSize;
- }
}
private static string GetImageUrl(IHasLastFmImages data, out string size)
@@ -85,15 +76,6 @@ namespace MediaBrowser.Providers.Music
return null;
}
- public static void ProcessArtistData(MusicArtist source, Artist target)
- {
- target.PremiereDate = source.PremiereDate;
- target.ProductionYear = source.ProductionYear;
- target.Tags = source.Tags.ToList();
- target.Overview = source.Overview;
- target.ProductionLocations = source.ProductionLocations.ToList();
- }
-
public static void ProcessAlbumData(BaseItem item, LastfmAlbum data)
{
var overview = data.wiki != null ? data.wiki.content : null;
diff --git a/MediaBrowser.Providers/Music/ManualFanartArtistProvider.cs b/MediaBrowser.Providers/Music/ManualFanartArtistProvider.cs
index 6ff891f608..cdb07d3d7f 100644
--- a/MediaBrowser.Providers/Music/ManualFanartArtistProvider.cs
+++ b/MediaBrowser.Providers/Music/ManualFanartArtistProvider.cs
@@ -39,7 +39,7 @@ namespace MediaBrowser.Providers.Music
public bool Supports(BaseItem item)
{
- return item is MusicArtist || item is Artist;
+ return item is MusicArtist;
}
public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, ImageType imageType, CancellationToken cancellationToken)
diff --git a/MediaBrowser.Providers/Music/ManualLastFmImageProvider.cs b/MediaBrowser.Providers/Music/ManualLastFmImageProvider.cs
index 0b1b95b1e5..72e8c6f6ba 100644
--- a/MediaBrowser.Providers/Music/ManualLastFmImageProvider.cs
+++ b/MediaBrowser.Providers/Music/ManualLastFmImageProvider.cs
@@ -25,7 +25,7 @@ namespace MediaBrowser.Providers.Music
public bool Supports(BaseItem item)
{
- return item is MusicAlbum || item is MusicArtist || item is Artist;
+ return item is MusicAlbum || item is MusicArtist;
}
public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, ImageType imageType, CancellationToken cancellationToken)
@@ -41,13 +41,6 @@ namespace MediaBrowser.Providers.Music
RemoteImageInfo info = null;
- var artist = item as Artist;
-
- if (artist != null)
- {
- info = GetInfo(artist.LastFmImageUrl, artist.LastFmImageSize);
- }
-
var album = item as MusicAlbum;
if (album != null)
{