diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 3f670b807f..77cc541675 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -357,7 +357,10 @@ namespace MediaBrowser.Controller.Entities
{
var path = Path;
- if (LocationType == LocationType.Remote || LocationType == LocationType.Virtual)
+ var locationType = LocationType;
+
+ if (locationType == LocationType.Remote ||
+ locationType == LocationType.Virtual)
{
return new ItemResolveArgs(ConfigurationManager.ApplicationPaths, LibraryManager);
}
@@ -1499,7 +1502,7 @@ namespace MediaBrowser.Controller.Entities
BackdropImagePaths.Remove(file);
RemoveImageSourceForPath(file);
-
+
// Delete the source file
DeleteImagePath(file);
}
@@ -1720,6 +1723,14 @@ namespace MediaBrowser.Controller.Entities
throw new ArgumentNullException("imagePath");
}
+ var locationType = LocationType;
+
+ if (locationType == LocationType.Remote ||
+ locationType == LocationType.Virtual)
+ {
+ return File.GetLastWriteTimeUtc(imagePath);
+ }
+
var metaFileEntry = ResolveArgs.GetMetaFileByPath(imagePath);
// If we didn't the metafile entry, check the Season
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index faaf2ad8b7..c54b812420 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -796,7 +796,7 @@ namespace MediaBrowser.Controller.Entities
foreach (var tuple in list)
{
- if (tasks.Count > 5)
+ if (tasks.Count > 7)
{
await Task.WhenAll(tasks).ConfigureAwait(false);
}
@@ -1347,7 +1347,12 @@ namespace MediaBrowser.Controller.Entities
try
{
- if (ResolveArgs.PhysicalLocations.Contains(path, StringComparer.OrdinalIgnoreCase))
+ if (LocationType == LocationType.Remote && string.Equals(Path, path, StringComparison.OrdinalIgnoreCase))
+ {
+ return this;
+ }
+
+ if (LocationType != LocationType.Virtual && ResolveArgs.PhysicalLocations.Contains(path, StringComparer.OrdinalIgnoreCase))
{
return this;
}
@@ -1358,8 +1363,13 @@ namespace MediaBrowser.Controller.Entities
}
//this should be functionally equivilent to what was here since it is IEnum and works on a thread-safe copy
- return RecursiveChildren.FirstOrDefault(i =>
+ return RecursiveChildren.Where(i => i.LocationType != LocationType.Virtual).FirstOrDefault(i =>
{
+ if (i.LocationType == LocationType.Remote)
+ {
+ return string.Equals(i.Path, path, StringComparison.OrdinalIgnoreCase);
+ }
+
try
{
return i.ResolveArgs.PhysicalLocations.Contains(path, StringComparer.OrdinalIgnoreCase);
diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
index 8d03678042..54ab7a5407 100644
--- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs
+++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
@@ -210,17 +210,6 @@ namespace MediaBrowser.Model.Configuration
public bool EnableVideoImageExtraction { get; set; }
- ///
- /// Gets or sets a value indicating whether [create virtual missing episodes].
- ///
- /// true if [create virtual missing episodes]; otherwise, false.
- public bool CreateVirtualMissingEpisodes { get; set; }
- ///
- /// Gets or sets a value indicating whether [create virtual future episodes].
- ///
- /// true if [create virtual future episodes]; otherwise, false.
- public bool CreateVirtualFutureEpisodes { get; set; }
-
///
/// Gets or sets the image saving convention.
///
diff --git a/MediaBrowser.Providers/TV/SeriesPostScanTask.cs b/MediaBrowser.Providers/TV/SeriesPostScanTask.cs
index d35e5e9d84..2e9910aebd 100644
--- a/MediaBrowser.Providers/TV/SeriesPostScanTask.cs
+++ b/MediaBrowser.Providers/TV/SeriesPostScanTask.cs
@@ -142,12 +142,9 @@ namespace MediaBrowser.Providers.TV
var hasNewEpisodes = false;
- if (_config.Configuration.CreateVirtualMissingEpisodes || _config.Configuration.CreateVirtualFutureEpisodes)
+ if (_config.Configuration.EnableInternetProviders)
{
- if (_config.Configuration.EnableInternetProviders)
- {
- hasNewEpisodes = await AddMissingEpisodes(series, seriesDataPath, episodeLookup, cancellationToken).ConfigureAwait(false);
- }
+ hasNewEpisodes = await AddMissingEpisodes(series, seriesDataPath, episodeLookup, cancellationToken).ConfigureAwait(false);
}
if (hasNewEpisodes || anySeasonsRemoved || anyEpisodesRemoved)
@@ -202,7 +199,7 @@ namespace MediaBrowser.Providers.TV
}
var now = DateTime.UtcNow;
- if (airDate.Value < now && _config.Configuration.CreateVirtualMissingEpisodes)
+ if (airDate.Value < now)
{
// tvdb has a lot of nearly blank episodes
_logger.Info("Creating virtual missing episode {0} {1}x{2}", series.Name, tuple.Item1, tuple.Item2);
@@ -211,7 +208,7 @@ namespace MediaBrowser.Providers.TV
hasChanges = true;
}
- else if (airDate.Value > now && _config.Configuration.CreateVirtualFutureEpisodes)
+ else if (airDate.Value > now)
{
// tvdb has a lot of nearly blank episodes
_logger.Info("Creating virtual future episode {0} {1}x{2}", series.Name, tuple.Item1, tuple.Item2);
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
index 5f4a6a52f8..65a161821c 100644
--- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs
+++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
@@ -1166,10 +1166,8 @@ namespace MediaBrowser.Server.Implementations.Dto
return;
}
- var metaFileEntry = item.ResolveArgs.GetMetaFileByPath(path);
-
// See if we can avoid a file system lookup by looking for the file in ResolveArgs
- var dateModified = metaFileEntry == null ? File.GetLastWriteTimeUtc(path) : metaFileEntry.LastWriteTimeUtc;
+ var dateModified = item.GetImageDateModified(path);
ImageSize size;
diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs
index 126b8d5caa..e9a88e045f 100644
--- a/MediaBrowser.WebDashboard/Api/DashboardService.cs
+++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs
@@ -482,7 +482,6 @@ namespace MediaBrowser.WebDashboard.Api
"mediaplayer.js",
"metadataconfigurationpage.js",
"metadataimagespage.js",
- "metadatatv.js",
"moviegenres.js",
"movies.js",
"moviepeople.js",
diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
index b2d9a09457..c8d43d8195 100644
--- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
+++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
@@ -332,15 +332,9 @@
PreserveNewest
-
- PreserveNewest
-
PreserveNewest
-
- PreserveNewest
-
PreserveNewest