aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs20
-rw-r--r--MediaBrowser.Controller/Providers/BaseMetadataProvider.cs6
-rw-r--r--MediaBrowser.Controller/Providers/BaseProviderInfo.cs2
-rw-r--r--MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs6
4 files changed, 22 insertions, 12 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 83690c243f..c59094cbfb 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Common.Extensions;
+using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Localization;
@@ -193,18 +194,23 @@ namespace MediaBrowser.Controller.Entities
/// <summary>
/// The _file system stamp
/// </summary>
- private string _fileSystemStamp;
+ private Guid? _fileSystemStamp;
/// <summary>
/// Gets a directory stamp, in the form of a string, that can be used for
/// comparison purposes to determine if the file system entries for this item have changed.
/// </summary>
/// <value>The file system stamp.</value>
[IgnoreDataMember]
- public string FileSystemStamp
+ public Guid FileSystemStamp
{
get
{
- return _fileSystemStamp ?? (_fileSystemStamp = GetFileSystemStamp());
+ if (!_fileSystemStamp.HasValue)
+ {
+ _fileSystemStamp = GetFileSystemStamp();
+ }
+
+ return _fileSystemStamp.Value;
}
}
@@ -226,12 +232,12 @@ namespace MediaBrowser.Controller.Entities
/// comparison purposes to determine if the file system entries for this item have changed.
/// </summary>
/// <returns>Guid.</returns>
- private string GetFileSystemStamp()
+ private Guid GetFileSystemStamp()
{
// If there's no path or the item is a file, there's nothing to do
if (LocationType != LocationType.FileSystem || !ResolveArgs.IsDirectory)
{
- return string.Empty;
+ return Guid.Empty;
}
var sb = new StringBuilder();
@@ -247,7 +253,7 @@ namespace MediaBrowser.Controller.Entities
sb.Append(file.cFileName);
}
- return sb.ToString();
+ return sb.ToString().GetMD5();
}
/// <summary>
diff --git a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
index dd03c88ded..ed9e50f82a 100644
--- a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
+++ b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
@@ -142,7 +142,7 @@ namespace MediaBrowser.Controller.Providers
// Save the file system stamp for future comparisons
if (RefreshOnFileSystemStampChange)
{
- data.FileSystemStamp = GetCurrentFileSystemStamp(item);
+ data.FileStamp = GetCurrentFileSystemStamp(item);
}
item.ProviderData[Id] = data;
@@ -229,7 +229,7 @@ namespace MediaBrowser.Controller.Providers
/// <returns><c>true</c> if [has file system stamp changed] [the specified item]; otherwise, <c>false</c>.</returns>
protected bool HasFileSystemStampChanged(BaseItem item, BaseProviderInfo providerInfo)
{
- return !String.Equals(GetCurrentFileSystemStamp(item), providerInfo.FileSystemStamp);
+ return GetCurrentFileSystemStamp(item) != providerInfo.FileStamp;
}
/// <summary>
@@ -287,7 +287,7 @@ namespace MediaBrowser.Controller.Providers
/// </summary>
/// <param name="item">The item.</param>
/// <returns>Guid.</returns>
- private string GetCurrentFileSystemStamp(BaseItem item)
+ private Guid GetCurrentFileSystemStamp(BaseItem item)
{
if (UseParentFileSystemStamp(item) && item.Parent != null)
{
diff --git a/MediaBrowser.Controller/Providers/BaseProviderInfo.cs b/MediaBrowser.Controller/Providers/BaseProviderInfo.cs
index 23779d382b..6262392fdb 100644
--- a/MediaBrowser.Controller/Providers/BaseProviderInfo.cs
+++ b/MediaBrowser.Controller/Providers/BaseProviderInfo.cs
@@ -16,7 +16,7 @@ namespace MediaBrowser.Controller.Providers
/// Gets or sets the file system stamp.
/// </summary>
/// <value>The file system stamp.</value>
- public string FileSystemStamp { get; set; }
+ public Guid FileStamp { get; set; }
/// <summary>
/// Gets or sets the last refresh status.
/// </summary>
diff --git a/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs b/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs
index 165b996f6b..c846fcd97a 100644
--- a/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs
+++ b/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs
@@ -76,7 +76,11 @@ namespace MediaBrowser.Controller.Providers.Music
var ms = new MemoryStream();
JsonSerializer.SerializeToStream(result.artist, ms);
- cancellationToken.ThrowIfCancellationRequested();
+ if (cancellationToken.IsCancellationRequested)
+ {
+ ms.Dispose();
+ cancellationToken.ThrowIfCancellationRequested();
+ }
await _providerManager.SaveToLibraryFilesystem(item, Path.Combine(item.MetaLocation, LocalMetaFileName), ms, cancellationToken).ConfigureAwait(false);