diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 2be4c7708e..7022dad7fd 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -154,6 +154,8 @@ namespace MediaBrowser.Controller.Entities
/// The date modified.
public DateTime DateModified { get; set; }
+ public DateTime DateLastSaved { get; set; }
+
///
/// The logger
///
@@ -827,7 +829,7 @@ namespace MediaBrowser.Controller.Entities
/// true if a provider reports we changed
public virtual async Task RefreshMetadata(CancellationToken cancellationToken, bool forceSave = false, bool forceRefresh = false, bool allowSlowProviders = true, bool resetResolveArgs = true)
{
- if (resetResolveArgs || ResolveArgs == null)
+ if (resetResolveArgs)
{
// Reload this
ResetResolveArgs();
diff --git a/MediaBrowser.Mono.sln b/MediaBrowser.Mono.sln
index b7961816dd..397763489a 100644
--- a/MediaBrowser.Mono.sln
+++ b/MediaBrowser.Mono.sln
@@ -23,42 +23,61 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86
+ Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{175A9388-F352-4586-A6B4-070DED62B644}.Debug|x86.ActiveCfg = Debug|x86
{175A9388-F352-4586-A6B4-070DED62B644}.Debug|x86.Build.0 = Debug|x86
+ {175A9388-F352-4586-A6B4-070DED62B644}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {175A9388-F352-4586-A6B4-070DED62B644}.Release|Any CPU.Build.0 = Release|Any CPU
{175A9388-F352-4586-A6B4-070DED62B644}.Release|x86.ActiveCfg = Release|x86
{175A9388-F352-4586-A6B4-070DED62B644}.Release|x86.Build.0 = Release|x86
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|x86.ActiveCfg = Debug|x86
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|x86.Build.0 = Debug|x86
- {17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x86.ActiveCfg = Release|x86
- {17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x86.Build.0 = Release|x86
+ {17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x86.ActiveCfg = Release|Any CPU
+ {17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x86.Build.0 = Release|Any CPU
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|x86.ActiveCfg = Debug|Any CPU
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|x86.Build.0 = Debug|Any CPU
+ {2E781478-814D-4A48-9D80-BFF206441A65}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2E781478-814D-4A48-9D80-BFF206441A65}.Release|Any CPU.Build.0 = Release|Any CPU
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|x86.ActiveCfg = Release|Any CPU
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|x86.Build.0 = Release|Any CPU
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|x86.ActiveCfg = Debug|Any CPU
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|x86.Build.0 = Debug|Any CPU
+ {442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Any CPU.Build.0 = Release|Any CPU
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|x86.ActiveCfg = Release|Any CPU
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|x86.Build.0 = Release|Any CPU
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|x86.ActiveCfg = Debug|Any CPU
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|x86.Build.0 = Debug|Any CPU
+ {4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Any CPU.Build.0 = Release|Any CPU
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|x86.ActiveCfg = Release|Any CPU
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|x86.Build.0 = Release|Any CPU
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|x86.ActiveCfg = Debug|Any CPU
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|x86.Build.0 = Debug|Any CPU
+ {5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Any CPU.Build.0 = Release|Any CPU
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x86.ActiveCfg = Release|Any CPU
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x86.Build.0 = Release|Any CPU
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|x86.ActiveCfg = Debug|Any CPU
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|x86.Build.0 = Debug|Any CPU
+ {7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Any CPU.Build.0 = Release|Any CPU
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x86.ActiveCfg = Release|Any CPU
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x86.Build.0 = Release|Any CPU
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|x86.ActiveCfg = Debug|Any CPU
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|x86.Build.0 = Debug|Any CPU
+ {9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Any CPU.Build.0 = Release|Any CPU
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|x86.ActiveCfg = Release|Any CPU
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|x86.Build.0 = Release|Any CPU
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|x86.ActiveCfg = Debug|Any CPU
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|x86.Build.0 = Debug|Any CPU
+ {C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Any CPU.Build.0 = Release|Any CPU
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|x86.ActiveCfg = Release|Any CPU
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
diff --git a/MediaBrowser.Mono.userprefs b/MediaBrowser.Mono.userprefs
index 42e34287b0..51ba9d804b 100644
--- a/MediaBrowser.Mono.userprefs
+++ b/MediaBrowser.Mono.userprefs
@@ -1,17 +1,13 @@
-
-
+
+
-
-
+
-
-
-
-
-
+
+
@@ -24,8 +20,6 @@
-
-
diff --git a/MediaBrowser.Providers/FolderProviderFromXml.cs b/MediaBrowser.Providers/FolderProviderFromXml.cs
index 8459fceefb..253ff6785c 100644
--- a/MediaBrowser.Providers/FolderProviderFromXml.cs
+++ b/MediaBrowser.Providers/FolderProviderFromXml.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
@@ -17,14 +16,12 @@ namespace MediaBrowser.Providers
///
public class FolderProviderFromXml : BaseMetadataProvider
{
- public static FolderProviderFromXml Current;
private readonly IFileSystem _fileSystem;
public FolderProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager)
{
_fileSystem = fileSystem;
- Current = this;
}
///
@@ -56,7 +53,7 @@ namespace MediaBrowser.Providers
return false;
}
- return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed;
+ return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
}
///
diff --git a/MediaBrowser.Providers/Games/GameProviderFromXml.cs b/MediaBrowser.Providers/Games/GameProviderFromXml.cs
index 724e3f5fa0..dcde7df498 100644
--- a/MediaBrowser.Providers/Games/GameProviderFromXml.cs
+++ b/MediaBrowser.Providers/Games/GameProviderFromXml.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging;
using MediaBrowser.Providers.Savers;
@@ -48,7 +47,7 @@ namespace MediaBrowser.Providers.Games
return false;
}
- return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed;
+ return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
}
///
diff --git a/MediaBrowser.Providers/Games/GameSystemProviderFromXml.cs b/MediaBrowser.Providers/Games/GameSystemProviderFromXml.cs
index 0c9d55a094..12ae4b75b2 100644
--- a/MediaBrowser.Providers/Games/GameSystemProviderFromXml.cs
+++ b/MediaBrowser.Providers/Games/GameSystemProviderFromXml.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
@@ -14,14 +13,12 @@ namespace MediaBrowser.Providers.Games
{
public class GameSystemProviderFromXml : BaseMetadataProvider
{
- internal static GameSystemProviderFromXml Current { get; private set; }
private readonly IFileSystem _fileSystem;
public GameSystemProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager)
{
_fileSystem = fileSystem;
- Current = this;
}
///
@@ -53,7 +50,7 @@ namespace MediaBrowser.Providers.Games
return false;
}
- return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed;
+ return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
}
///
diff --git a/MediaBrowser.Providers/LiveTv/ChannelProviderFromXml.cs b/MediaBrowser.Providers/LiveTv/ChannelProviderFromXml.cs
index b166750b56..73564fa2b2 100644
--- a/MediaBrowser.Providers/LiveTv/ChannelProviderFromXml.cs
+++ b/MediaBrowser.Providers/LiveTv/ChannelProviderFromXml.cs
@@ -13,14 +13,12 @@ namespace MediaBrowser.Providers.LiveTv
{
class ChannelProviderFromXml : BaseMetadataProvider
{
- internal static ChannelProviderFromXml Current { get; private set; }
private readonly IFileSystem _fileSystem;
public ChannelProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager)
{
_fileSystem = fileSystem;
- Current = this;
}
///
@@ -52,7 +50,7 @@ namespace MediaBrowser.Providers.LiveTv
return false;
}
- return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed;
+ return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
}
///
diff --git a/MediaBrowser.Providers/Movies/BoxSetProviderFromXml.cs b/MediaBrowser.Providers/Movies/BoxSetProviderFromXml.cs
index 0b2502ba9f..43c0bd680f 100644
--- a/MediaBrowser.Providers/Movies/BoxSetProviderFromXml.cs
+++ b/MediaBrowser.Providers/Movies/BoxSetProviderFromXml.cs
@@ -18,14 +18,12 @@ namespace MediaBrowser.Providers.Movies
///
public class BoxSetProviderFromXml : BaseMetadataProvider
{
- public static BoxSetProviderFromXml Current;
private readonly IFileSystem _fileSystem;
public BoxSetProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager)
{
_fileSystem = fileSystem;
- Current = this;
}
///
@@ -57,7 +55,7 @@ namespace MediaBrowser.Providers.Movies
return false;
}
- return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed;
+ return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
}
///
diff --git a/MediaBrowser.Providers/Movies/MovieProviderFromXml.cs b/MediaBrowser.Providers/Movies/MovieProviderFromXml.cs
index dfab655f10..ff6339034e 100644
--- a/MediaBrowser.Providers/Movies/MovieProviderFromXml.cs
+++ b/MediaBrowser.Providers/Movies/MovieProviderFromXml.cs
@@ -19,7 +19,6 @@ namespace MediaBrowser.Providers.Movies
///
public class MovieProviderFromXml : BaseMetadataProvider
{
- internal static MovieProviderFromXml Current { get; private set; }
private readonly IItemRepository _itemRepo;
private readonly IFileSystem _fileSystem;
@@ -28,7 +27,6 @@ namespace MediaBrowser.Providers.Movies
{
_itemRepo = itemRepo;
_fileSystem = fileSystem;
- Current = this;
}
///
@@ -73,7 +71,7 @@ namespace MediaBrowser.Providers.Movies
return false;
}
- return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed;
+ return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
}
///
diff --git a/MediaBrowser.Providers/Movies/PersonProviderFromXml.cs b/MediaBrowser.Providers/Movies/PersonProviderFromXml.cs
index 8de061b99b..1422fffa90 100644
--- a/MediaBrowser.Providers/Movies/PersonProviderFromXml.cs
+++ b/MediaBrowser.Providers/Movies/PersonProviderFromXml.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging;
using System;
@@ -13,14 +12,12 @@ namespace MediaBrowser.Providers.Movies
{
class PersonProviderFromXml : BaseMetadataProvider
{
- internal static PersonProviderFromXml Current { get; private set; }
private readonly IFileSystem _fileSystem;
public PersonProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager)
{
_fileSystem = fileSystem;
- Current = this;
}
///
@@ -52,7 +49,7 @@ namespace MediaBrowser.Providers.Movies
return false;
}
- return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed;
+ return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
}
///
diff --git a/MediaBrowser.Providers/Music/AlbumProviderFromXml.cs b/MediaBrowser.Providers/Music/AlbumProviderFromXml.cs
index 1dc4abfc8d..02730b725e 100644
--- a/MediaBrowser.Providers/Music/AlbumProviderFromXml.cs
+++ b/MediaBrowser.Providers/Music/AlbumProviderFromXml.cs
@@ -14,14 +14,12 @@ namespace MediaBrowser.Providers.Music
{
class AlbumProviderFromXml : BaseMetadataProvider
{
- public static AlbumProviderFromXml Current;
private readonly IFileSystem _fileSystem;
public AlbumProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager)
{
_fileSystem = fileSystem;
- Current = this;
}
///
@@ -53,7 +51,7 @@ namespace MediaBrowser.Providers.Music
return false;
}
- return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed;
+ return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
}
///
diff --git a/MediaBrowser.Providers/Music/ArtistProviderFromXml.cs b/MediaBrowser.Providers/Music/ArtistProviderFromXml.cs
index b7e8463531..c0bf564afa 100644
--- a/MediaBrowser.Providers/Music/ArtistProviderFromXml.cs
+++ b/MediaBrowser.Providers/Music/ArtistProviderFromXml.cs
@@ -14,14 +14,12 @@ namespace MediaBrowser.Providers.Music
{
class ArtistProviderFromXml : BaseMetadataProvider
{
- public static ArtistProviderFromXml Current;
private readonly IFileSystem _fileSystem;
public ArtistProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager)
{
_fileSystem = fileSystem;
- Current = this;
}
///
@@ -53,7 +51,7 @@ namespace MediaBrowser.Providers.Music
return false;
}
- return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed;
+ return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
}
///
diff --git a/MediaBrowser.Providers/Savers/AlbumXmlSaver.cs b/MediaBrowser.Providers/Savers/AlbumXmlSaver.cs
index 6e80835088..8dd6940c58 100644
--- a/MediaBrowser.Providers/Savers/AlbumXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/AlbumXmlSaver.cs
@@ -59,9 +59,6 @@ namespace MediaBrowser.Providers.Savers
var xmlFilePath = GetSavePath(item);
XmlSaverHelpers.Save(builder, xmlFilePath, new List { });
-
- // Set last refreshed so that the provider doesn't trigger after the file save
- AlbumProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
}
///
diff --git a/MediaBrowser.Providers/Savers/ArtistXmlSaver.cs b/MediaBrowser.Providers/Savers/ArtistXmlSaver.cs
index 81f092a46f..924a5a88ea 100644
--- a/MediaBrowser.Providers/Savers/ArtistXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/ArtistXmlSaver.cs
@@ -72,9 +72,6 @@ namespace MediaBrowser.Providers.Savers
var xmlFilePath = GetSavePath(item);
XmlSaverHelpers.Save(builder, xmlFilePath, new List { });
-
- // Set last refreshed so that the provider doesn't trigger after the file save
- ArtistProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
}
///
diff --git a/MediaBrowser.Providers/Savers/BoxSetXmlSaver.cs b/MediaBrowser.Providers/Savers/BoxSetXmlSaver.cs
index cec6da64a5..c2e607f6a6 100644
--- a/MediaBrowser.Providers/Savers/BoxSetXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/BoxSetXmlSaver.cs
@@ -59,8 +59,6 @@ namespace MediaBrowser.Providers.Savers
var xmlFilePath = GetSavePath(item);
XmlSaverHelpers.Save(builder, xmlFilePath, new List { });
-
- BoxSetProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
}
///
diff --git a/MediaBrowser.Providers/Savers/ChannelXmlSaver.cs b/MediaBrowser.Providers/Savers/ChannelXmlSaver.cs
index c6ac220a9e..6880c99483 100644
--- a/MediaBrowser.Providers/Savers/ChannelXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/ChannelXmlSaver.cs
@@ -56,9 +56,6 @@ namespace MediaBrowser.Providers.Savers
XmlSaverHelpers.Save(builder, xmlFilePath, new List
{
});
-
- // Set last refreshed so that the provider doesn't trigger after the file save
- ChannelProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
}
///
diff --git a/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs b/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
index 1c37b07894..35dd551f13 100644
--- a/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
@@ -3,8 +3,6 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Persistence;
-using MediaBrowser.Providers.TV;
-using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
@@ -117,9 +115,6 @@ namespace MediaBrowser.Providers.Savers
"airsbefore_episode",
"airsbefore_season"
});
-
- // Set last refreshed so that the provider doesn't trigger after the file save
- EpisodeProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
}
///
diff --git a/MediaBrowser.Providers/Savers/FolderXmlSaver.cs b/MediaBrowser.Providers/Savers/FolderXmlSaver.cs
index 319f6c7d0a..9c1e6f38e0 100644
--- a/MediaBrowser.Providers/Savers/FolderXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/FolderXmlSaver.cs
@@ -4,7 +4,6 @@ using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
-using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
@@ -78,8 +77,6 @@ namespace MediaBrowser.Providers.Savers
var xmlFilePath = GetSavePath(item);
XmlSaverHelpers.Save(builder, xmlFilePath, new List { });
-
- FolderProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
}
///
diff --git a/MediaBrowser.Providers/Savers/GameSystemXmlSaver.cs b/MediaBrowser.Providers/Savers/GameSystemXmlSaver.cs
index 724e3b1d9b..496bb51d0d 100644
--- a/MediaBrowser.Providers/Savers/GameSystemXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/GameSystemXmlSaver.cs
@@ -58,8 +58,6 @@ namespace MediaBrowser.Providers.Savers
var xmlFilePath = GetSavePath(item);
XmlSaverHelpers.Save(builder, xmlFilePath, new List { });
-
- GameSystemProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
}
///
diff --git a/MediaBrowser.Providers/Savers/GameXmlSaver.cs b/MediaBrowser.Providers/Savers/GameXmlSaver.cs
index f35e4d1319..03c3a29165 100644
--- a/MediaBrowser.Providers/Savers/GameXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/GameXmlSaver.cs
@@ -98,9 +98,6 @@ namespace MediaBrowser.Providers.Savers
"NesBox",
"NesBoxRom"
});
-
- // Set last refreshed so that the provider doesn't trigger after the file save
- MovieProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
}
public string GetSavePath(BaseItem item)
diff --git a/MediaBrowser.Providers/Savers/MovieXmlSaver.cs b/MediaBrowser.Providers/Savers/MovieXmlSaver.cs
index 1a287a918f..17dca6008c 100644
--- a/MediaBrowser.Providers/Savers/MovieXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/MovieXmlSaver.cs
@@ -122,9 +122,6 @@ namespace MediaBrowser.Providers.Savers
"Album",
"TmdbCollectionName"
});
-
- // Set last refreshed so that the provider doesn't trigger after the file save
- MovieProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
}
public string GetSavePath(BaseItem item)
diff --git a/MediaBrowser.Providers/Savers/PersonXmlSaver.cs b/MediaBrowser.Providers/Savers/PersonXmlSaver.cs
index cefdec9c18..a6d7575eae 100644
--- a/MediaBrowser.Providers/Savers/PersonXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/PersonXmlSaver.cs
@@ -64,9 +64,6 @@ namespace MediaBrowser.Providers.Savers
{
"PlaceOfBirth"
});
-
- // Set last refreshed so that the provider doesn't trigger after the file save
- PersonProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
}
///
diff --git a/MediaBrowser.Providers/Savers/SeasonXmlSaver.cs b/MediaBrowser.Providers/Savers/SeasonXmlSaver.cs
index a2231ab746..c96f71b0a9 100644
--- a/MediaBrowser.Providers/Savers/SeasonXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/SeasonXmlSaver.cs
@@ -2,8 +2,6 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
-using MediaBrowser.Providers.TV;
-using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
@@ -59,8 +57,6 @@ namespace MediaBrowser.Providers.Savers
var xmlFilePath = GetSavePath(item);
XmlSaverHelpers.Save(builder, xmlFilePath, new List { });
-
- SeasonProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
}
///
diff --git a/MediaBrowser.Providers/Savers/SeriesXmlSaver.cs b/MediaBrowser.Providers/Savers/SeriesXmlSaver.cs
index b955ac7c9b..7f37ba1ced 100644
--- a/MediaBrowser.Providers/Savers/SeriesXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/SeriesXmlSaver.cs
@@ -3,8 +3,6 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Providers.TV;
-using System;
using System.Collections.Generic;
using System.IO;
using System.Security;
@@ -119,9 +117,6 @@ namespace MediaBrowser.Providers.Savers
// Don't preserve old series node
"Series"
});
-
- // Set last refreshed so that the provider doesn't trigger after the file save
- SeriesProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
}
///
diff --git a/MediaBrowser.Providers/TV/EpisodeProviderFromXml.cs b/MediaBrowser.Providers/TV/EpisodeProviderFromXml.cs
index 7ddf421b9b..322867f2fe 100644
--- a/MediaBrowser.Providers/TV/EpisodeProviderFromXml.cs
+++ b/MediaBrowser.Providers/TV/EpisodeProviderFromXml.cs
@@ -18,7 +18,6 @@ namespace MediaBrowser.Providers.TV
///
public class EpisodeProviderFromXml : BaseMetadataProvider
{
- internal static EpisodeProviderFromXml Current { get; private set; }
private readonly IItemRepository _itemRepo;
private readonly IFileSystem _fileSystem;
@@ -27,7 +26,6 @@ namespace MediaBrowser.Providers.TV
{
_itemRepo = itemRepo;
_fileSystem = fileSystem;
- Current = this;
}
///
@@ -78,7 +76,7 @@ namespace MediaBrowser.Providers.TV
return false;
}
- return _fileSystem.GetLastWriteTimeUtc(file) > providerInfo.LastRefreshed;
+ return _fileSystem.GetLastWriteTimeUtc(file) > item.DateLastSaved;
}
///
diff --git a/MediaBrowser.Providers/TV/SeasonProviderFromXml.cs b/MediaBrowser.Providers/TV/SeasonProviderFromXml.cs
index 5f1eb5cb3f..9a031ecd8c 100644
--- a/MediaBrowser.Providers/TV/SeasonProviderFromXml.cs
+++ b/MediaBrowser.Providers/TV/SeasonProviderFromXml.cs
@@ -18,14 +18,12 @@ namespace MediaBrowser.Providers.TV
///
public class SeasonProviderFromXml : BaseMetadataProvider
{
- public static SeasonProviderFromXml Current;
private readonly IFileSystem _fileSystem;
public SeasonProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager)
{
_fileSystem = fileSystem;
- Current = this;
}
///
@@ -57,7 +55,7 @@ namespace MediaBrowser.Providers.TV
return false;
}
- return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed;
+ return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
}
///
diff --git a/MediaBrowser.Providers/TV/SeriesProviderFromXml.cs b/MediaBrowser.Providers/TV/SeriesProviderFromXml.cs
index c4b82d51eb..ab5e2d8fe5 100644
--- a/MediaBrowser.Providers/TV/SeriesProviderFromXml.cs
+++ b/MediaBrowser.Providers/TV/SeriesProviderFromXml.cs
@@ -18,14 +18,12 @@ namespace MediaBrowser.Providers.TV
///
public class SeriesProviderFromXml : BaseMetadataProvider
{
- internal static SeriesProviderFromXml Current { get; private set; }
private readonly IFileSystem _fileSystem;
public SeriesProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager)
{
_fileSystem = fileSystem;
- Current = this;
}
///
@@ -57,7 +55,7 @@ namespace MediaBrowser.Providers.TV
return false;
}
- return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed;
+ return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
}
///
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
index 3b6a5ea25d..41694765da 100644
--- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
@@ -1311,6 +1311,11 @@ namespace MediaBrowser.Server.Implementations.Library
{
var list = items.ToList();
+ foreach (var item in list)
+ {
+ item.DateLastSaved = DateTime.UtcNow;
+ }
+
await ItemRepository.SaveItems(list, cancellationToken).ConfigureAwait(false);
foreach (var item in list)
@@ -1350,6 +1355,8 @@ namespace MediaBrowser.Server.Implementations.Library
await SaveMetadata(item, updateReason).ConfigureAwait(false);
}
+ item.DateLastSaved = DateTime.UtcNow;
+
await ItemRepository.SaveItem(item, cancellationToken).ConfigureAwait(false);
UpdateItemInLibraryCache(item);
diff --git a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs
index 7b2a038f4f..fa0620082d 100644
--- a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs
+++ b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs
@@ -202,7 +202,7 @@ namespace MediaBrowser.Server.Implementations.Providers
{
if (item == null)
{
- throw new ArgumentNullException();
+ throw new ArgumentNullException("item");
}
cancellationToken.ThrowIfCancellationRequested();
@@ -213,12 +213,9 @@ namespace MediaBrowser.Server.Implementations.Providers
_logger.Debug("Running {0} for {1}", provider.GetType().Name, item.Path ?? item.Name ?? "--Unknown--");
}
- // This provides the ability to cancel just this one provider
- var innerCancellationTokenSource = new CancellationTokenSource();
-
try
{
- var changed = await provider.FetchAsync(item, force, CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, innerCancellationTokenSource.Token).Token).ConfigureAwait(false);
+ var changed = await provider.FetchAsync(item, force, cancellationToken).ConfigureAwait(false);
if (changed)
{
@@ -247,10 +244,6 @@ namespace MediaBrowser.Server.Implementations.Providers
return ItemUpdateType.Unspecified;
}
- finally
- {
- innerCancellationTokenSource.Dispose();
- }
}
///
diff --git a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj
index 8fd4b2b0d2..be7fb7b278 100644
--- a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj
+++ b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj
@@ -32,6 +32,11 @@
x86
true
+
+ false
+ bin\Release
+ 4
+