aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-04-13 14:02:30 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-04-13 14:02:30 -0400
commit785deff188ba51243739b827dbe42b5645404367 (patch)
tree236515b0e5502b65c6eee3d23412093588c9c5e6 /MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
parent6688d35e65352fbf9b0a06a5fdf5a31eaaf425d8 (diff)
removed excess hashing in providers and made user data key-based
Diffstat (limited to 'MediaBrowser.Controller/Providers/BaseMetadataProvider.cs')
-rw-r--r--MediaBrowser.Controller/Providers/BaseMetadataProvider.cs44
1 files changed, 22 insertions, 22 deletions
diff --git a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
index aaf3fe6bf..3f71e398a 100644
--- a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
+++ b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
@@ -29,19 +29,7 @@ namespace MediaBrowser.Controller.Providers
/// <summary>
/// The _id
/// </summary>
- protected Guid _id;
- /// <summary>
- /// Gets the id.
- /// </summary>
- /// <value>The id.</value>
- public virtual Guid Id
- {
- get
- {
- if (_id == Guid.Empty) _id = GetType().FullName.GetMD5();
- return _id;
- }
- }
+ protected readonly Guid Id;
/// <summary>
/// Supportses the specified item.
@@ -105,6 +93,7 @@ namespace MediaBrowser.Controller.Providers
Logger = logManager.GetLogger(GetType().Name);
LogManager = logManager;
ConfigurationManager = configurationManager;
+ Id = GetType().FullName.GetMD5();
Initialize();
}
@@ -130,8 +119,14 @@ namespace MediaBrowser.Controller.Providers
{
throw new ArgumentNullException("item");
}
-
- var data = item.ProviderData.GetValueOrDefault(Id, new BaseProviderInfo { ProviderId = Id });
+
+ BaseProviderInfo data;
+
+ if (!item.ProviderData.TryGetValue(Id, out data))
+ {
+ data = new BaseProviderInfo();
+ }
+
data.LastRefreshed = value;
data.LastRefreshStatus = status;
data.ProviderVersion = providerVersion;
@@ -155,7 +150,7 @@ namespace MediaBrowser.Controller.Providers
{
SetLastRefreshed(item, value, ProviderVersion, status);
}
-
+
/// <summary>
/// Returns whether or not this provider should be re-fetched. Default functionality can
/// compare a provided date with a last refresh time. This can be overridden for more complex
@@ -171,9 +166,14 @@ namespace MediaBrowser.Controller.Providers
throw new ArgumentNullException();
}
- var providerInfo = item.ProviderData.GetValueOrDefault(Id, new BaseProviderInfo());
+ BaseProviderInfo data;
- return NeedsRefreshInternal(item, providerInfo);
+ if (!item.ProviderData.TryGetValue(Id, out data))
+ {
+ data = new BaseProviderInfo();
+ }
+
+ return NeedsRefreshInternal(item, data);
}
/// <summary>
@@ -194,7 +194,7 @@ namespace MediaBrowser.Controller.Providers
{
throw new ArgumentNullException("providerInfo");
}
-
+
if (CompareDate(item) > providerInfo.LastRefreshed)
{
return true;
@@ -209,7 +209,7 @@ namespace MediaBrowser.Controller.Providers
{
return true;
}
-
+
return false;
}
@@ -221,7 +221,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 GetCurrentFileSystemStamp(item) != providerInfo.FileSystemStamp;
+ return !string.Equals(GetCurrentFileSystemStamp(item), providerInfo.FileSystemStamp);
}
/// <summary>
@@ -279,7 +279,7 @@ namespace MediaBrowser.Controller.Providers
/// </summary>
/// <param name="item">The item.</param>
/// <returns>Guid.</returns>
- private Guid GetCurrentFileSystemStamp(BaseItem item)
+ private string GetCurrentFileSystemStamp(BaseItem item)
{
if (UseParentFileSystemStamp(item) && item.Parent != null)
{