From 9f4f2281cdd9d3cdbb9b96c19b8034f235b36b80 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 6 Dec 2013 10:59:40 -0500 Subject: [PATCH] prevent xml savers from triggering xml providers --- MediaBrowser.Controller/Entities/BaseItem.cs | 4 +++- MediaBrowser.Mono.sln | 23 +++++++++++++++++-- MediaBrowser.Mono.userprefs | 16 ++++--------- .../FolderProviderFromXml.cs | 5 +--- .../Games/GameProviderFromXml.cs | 3 +-- .../Games/GameSystemProviderFromXml.cs | 5 +--- .../LiveTv/ChannelProviderFromXml.cs | 4 +--- .../Movies/BoxSetProviderFromXml.cs | 4 +--- .../Movies/MovieProviderFromXml.cs | 4 +--- .../Movies/PersonProviderFromXml.cs | 5 +--- .../Music/AlbumProviderFromXml.cs | 4 +--- .../Music/ArtistProviderFromXml.cs | 4 +--- .../Savers/AlbumXmlSaver.cs | 3 --- .../Savers/ArtistXmlSaver.cs | 3 --- .../Savers/BoxSetXmlSaver.cs | 2 -- .../Savers/ChannelXmlSaver.cs | 3 --- .../Savers/EpisodeXmlSaver.cs | 5 ---- .../Savers/FolderXmlSaver.cs | 3 --- .../Savers/GameSystemXmlSaver.cs | 2 -- MediaBrowser.Providers/Savers/GameXmlSaver.cs | 3 --- .../Savers/MovieXmlSaver.cs | 3 --- .../Savers/PersonXmlSaver.cs | 3 --- .../Savers/SeasonXmlSaver.cs | 4 ---- .../Savers/SeriesXmlSaver.cs | 5 ---- .../TV/EpisodeProviderFromXml.cs | 4 +--- .../TV/SeasonProviderFromXml.cs | 4 +--- .../TV/SeriesProviderFromXml.cs | 4 +--- .../Library/LibraryManager.cs | 7 ++++++ .../Providers/ProviderManager.cs | 11 ++------- .../MediaBrowser.Server.Mono.csproj | 5 ++++ 30 files changed, 55 insertions(+), 100 deletions(-) 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 +