mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-06-07 15:44:38 -04:00
move more metadata settings to per library
This commit is contained in:
parent
1454e07c54
commit
911d9f4598
@ -88,8 +88,6 @@ namespace MediaBrowser.Api
|
|||||||
var result = new StartupConfiguration
|
var result = new StartupConfiguration
|
||||||
{
|
{
|
||||||
UICulture = _config.Configuration.UICulture,
|
UICulture = _config.Configuration.UICulture,
|
||||||
EnableInternetProviders = _config.Configuration.EnableInternetProviders,
|
|
||||||
SaveLocalMeta = _config.Configuration.SaveLocalMeta,
|
|
||||||
MetadataCountryCode = _config.Configuration.MetadataCountryCode,
|
MetadataCountryCode = _config.Configuration.MetadataCountryCode,
|
||||||
PreferredMetadataLanguage = _config.Configuration.PreferredMetadataLanguage
|
PreferredMetadataLanguage = _config.Configuration.PreferredMetadataLanguage
|
||||||
};
|
};
|
||||||
@ -123,8 +121,6 @@ namespace MediaBrowser.Api
|
|||||||
public void Post(UpdateStartupConfiguration request)
|
public void Post(UpdateStartupConfiguration request)
|
||||||
{
|
{
|
||||||
_config.Configuration.UICulture = request.UICulture;
|
_config.Configuration.UICulture = request.UICulture;
|
||||||
_config.Configuration.EnableInternetProviders = request.EnableInternetProviders;
|
|
||||||
_config.Configuration.SaveLocalMeta = request.SaveLocalMeta;
|
|
||||||
_config.Configuration.MetadataCountryCode = request.MetadataCountryCode;
|
_config.Configuration.MetadataCountryCode = request.MetadataCountryCode;
|
||||||
_config.Configuration.PreferredMetadataLanguage = request.PreferredMetadataLanguage;
|
_config.Configuration.PreferredMetadataLanguage = request.PreferredMetadataLanguage;
|
||||||
_config.SaveConfiguration();
|
_config.SaveConfiguration();
|
||||||
@ -215,8 +211,6 @@ namespace MediaBrowser.Api
|
|||||||
public class StartupConfiguration
|
public class StartupConfiguration
|
||||||
{
|
{
|
||||||
public string UICulture { get; set; }
|
public string UICulture { get; set; }
|
||||||
public bool EnableInternetProviders { get; set; }
|
|
||||||
public bool SaveLocalMeta { get; set; }
|
|
||||||
public string MetadataCountryCode { get; set; }
|
public string MetadataCountryCode { get; set; }
|
||||||
public string PreferredMetadataLanguage { get; set; }
|
public string PreferredMetadataLanguage { get; set; }
|
||||||
public string LiveTvTunerType { get; set; }
|
public string LiveTvTunerType { get; set; }
|
||||||
|
@ -422,7 +422,7 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
|
|
||||||
public virtual bool IsInternetMetadataEnabled()
|
public virtual bool IsInternetMetadataEnabled()
|
||||||
{
|
{
|
||||||
return ConfigurationManager.Configuration.EnableInternetProviders;
|
return LibraryManager.GetLibraryOptions(this).EnableInternetProviders;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual bool CanDelete()
|
public virtual bool CanDelete()
|
||||||
@ -1341,7 +1341,9 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ConfigurationManager.Configuration.SaveLocalMeta;
|
var libraryOptions = LibraryManager.GetLibraryOptions(this);
|
||||||
|
|
||||||
|
return libraryOptions.SaveLocalMetadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -111,7 +111,7 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
{
|
{
|
||||||
LibraryOptions[path] = options;
|
LibraryOptions[path] = options;
|
||||||
|
|
||||||
options.SchemaVersion = 2;
|
options.SchemaVersion = 3;
|
||||||
XmlSerializer.SerializeToFile(options, GetLibraryOptionsPath(path));
|
XmlSerializer.SerializeToFile(options, GetLibraryOptionsPath(path));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,18 +2,12 @@
|
|||||||
{
|
{
|
||||||
public class ChapterOptions
|
public class ChapterOptions
|
||||||
{
|
{
|
||||||
public bool EnableMovieChapterImageExtraction { get; set; }
|
|
||||||
public bool EnableEpisodeChapterImageExtraction { get; set; }
|
|
||||||
public bool EnableOtherVideoChapterImageExtraction { get; set; }
|
|
||||||
|
|
||||||
public bool DownloadMovieChapters { get; set; }
|
public bool DownloadMovieChapters { get; set; }
|
||||||
public bool DownloadEpisodeChapters { get; set; }
|
public bool DownloadEpisodeChapters { get; set; }
|
||||||
|
|
||||||
public string[] FetcherOrder { get; set; }
|
public string[] FetcherOrder { get; set; }
|
||||||
public string[] DisabledFetchers { get; set; }
|
public string[] DisabledFetchers { get; set; }
|
||||||
|
|
||||||
public bool ExtractDuringLibraryScan { get; set; }
|
|
||||||
|
|
||||||
public ChapterOptions()
|
public ChapterOptions()
|
||||||
{
|
{
|
||||||
DownloadMovieChapters = true;
|
DownloadMovieChapters = true;
|
||||||
|
@ -11,11 +11,15 @@
|
|||||||
public bool DownloadImagesInAdvance { get; set; }
|
public bool DownloadImagesInAdvance { get; set; }
|
||||||
public MediaPathInfo[] PathInfos { get; set; }
|
public MediaPathInfo[] PathInfos { get; set; }
|
||||||
|
|
||||||
|
public bool SaveLocalMetadata { get; set; }
|
||||||
|
public bool EnableInternetProviders { get; set; }
|
||||||
|
|
||||||
public LibraryOptions()
|
public LibraryOptions()
|
||||||
{
|
{
|
||||||
EnablePhotos = true;
|
EnablePhotos = true;
|
||||||
EnableRealtimeMonitor = true;
|
EnableRealtimeMonitor = true;
|
||||||
PathInfos = new MediaPathInfo[] { };
|
PathInfos = new MediaPathInfo[] { };
|
||||||
|
EnableInternetProviders = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -262,8 +262,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||||||
NormalizeChapterNames(chapters);
|
NormalizeChapterNames(chapters);
|
||||||
|
|
||||||
var libraryOptions = _libraryManager.GetLibraryOptions(video);
|
var libraryOptions = _libraryManager.GetLibraryOptions(video);
|
||||||
var extractDuringScan = chapterOptions.ExtractDuringLibraryScan;
|
var extractDuringScan = false;
|
||||||
if (libraryOptions != null && libraryOptions.SchemaVersion >= 2)
|
if (libraryOptions != null)
|
||||||
{
|
{
|
||||||
extractDuringScan = libraryOptions.ExtractChapterImagesDuringLibraryScan;
|
extractDuringScan = libraryOptions.ExtractChapterImagesDuringLibraryScan;
|
||||||
}
|
}
|
||||||
|
@ -118,7 +118,7 @@ namespace MediaBrowser.Providers.TV
|
|||||||
|
|
||||||
var hasNewEpisodes = false;
|
var hasNewEpisodes = false;
|
||||||
|
|
||||||
if (_config.Configuration.EnableInternetProviders && addNewItems)
|
if (addNewItems && !group.Any(i => !i.IsInternetMetadataEnabled()))
|
||||||
{
|
{
|
||||||
var seriesConfig = _config.Configuration.MetadataOptions.FirstOrDefault(i => string.Equals(i.ItemType, typeof(Series).Name, StringComparison.OrdinalIgnoreCase));
|
var seriesConfig = _config.Configuration.MetadataOptions.FirstOrDefault(i => string.Equals(i.ItemType, typeof(Series).Name, StringComparison.OrdinalIgnoreCase));
|
||||||
|
|
||||||
|
@ -74,12 +74,6 @@ namespace MediaBrowser.Providers.TV
|
|||||||
/// <returns>Task.</returns>
|
/// <returns>Task.</returns>
|
||||||
public async Task Run(IProgress<double> progress, CancellationToken cancellationToken)
|
public async Task Run(IProgress<double> progress, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
if (!_config.Configuration.EnableInternetProviders)
|
|
||||||
{
|
|
||||||
progress.Report(100);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var seriesConfig = _config.Configuration.MetadataOptions.FirstOrDefault(i => string.Equals(i.ItemType, typeof(Series).Name, StringComparison.OrdinalIgnoreCase));
|
var seriesConfig = _config.Configuration.MetadataOptions.FirstOrDefault(i => string.Equals(i.ItemType, typeof(Series).Name, StringComparison.OrdinalIgnoreCase));
|
||||||
|
|
||||||
if (seriesConfig != null && seriesConfig.DisabledMetadataFetchers.Contains(TvdbSeriesProvider.Current.Name, StringComparer.OrdinalIgnoreCase))
|
if (seriesConfig != null && seriesConfig.DisabledMetadataFetchers.Contains(TvdbSeriesProvider.Current.Name, StringComparer.OrdinalIgnoreCase))
|
||||||
@ -116,7 +110,9 @@ namespace MediaBrowser.Providers.TV
|
|||||||
IncludeItemTypes = new[] { typeof(Series).Name },
|
IncludeItemTypes = new[] { typeof(Series).Name },
|
||||||
Recursive = true,
|
Recursive = true,
|
||||||
GroupByPresentationUniqueKey = false
|
GroupByPresentationUniqueKey = false
|
||||||
}).Cast<Series>();
|
|
||||||
|
}).Cast<Series>()
|
||||||
|
.ToList();
|
||||||
|
|
||||||
var seriesIdsInLibrary = seriesList
|
var seriesIdsInLibrary = seriesList
|
||||||
.Where(i => !string.IsNullOrEmpty(i.GetProviderId(MetadataProviders.Tvdb)))
|
.Where(i => !string.IsNullOrEmpty(i.GetProviderId(MetadataProviders.Tvdb)))
|
||||||
@ -126,6 +122,13 @@ namespace MediaBrowser.Providers.TV
|
|||||||
var missingSeries = seriesIdsInLibrary.Except(existingDirectories, StringComparer.OrdinalIgnoreCase)
|
var missingSeries = seriesIdsInLibrary.Except(existingDirectories, StringComparer.OrdinalIgnoreCase)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
|
var enableInternetProviders = seriesList.Count == 0 ? false : seriesList[0].IsInternetMetadataEnabled();
|
||||||
|
if (!enableInternetProviders)
|
||||||
|
{
|
||||||
|
progress.Report(100);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// If this is our first time, update all series
|
// If this is our first time, update all series
|
||||||
if (string.IsNullOrEmpty(lastUpdateTime))
|
if (string.IsNullOrEmpty(lastUpdateTime))
|
||||||
{
|
{
|
||||||
|
@ -1216,12 +1216,7 @@ namespace MediaBrowser.Server.Implementations.Library
|
|||||||
if (libraryFolder != null)
|
if (libraryFolder != null)
|
||||||
{
|
{
|
||||||
info.ItemId = libraryFolder.Id.ToString("N");
|
info.ItemId = libraryFolder.Id.ToString("N");
|
||||||
}
|
info.LibraryOptions = GetLibraryOptions(libraryFolder);
|
||||||
|
|
||||||
var collectionFolder = libraryFolder as CollectionFolder;
|
|
||||||
if (collectionFolder != null)
|
|
||||||
{
|
|
||||||
info.LibraryOptions = collectionFolder.GetLibraryOptions();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
@ -1889,11 +1884,23 @@ namespace MediaBrowser.Server.Implementations.Library
|
|||||||
|
|
||||||
public LibraryOptions GetLibraryOptions(BaseItem item)
|
public LibraryOptions GetLibraryOptions(BaseItem item)
|
||||||
{
|
{
|
||||||
var collectionFolder = GetCollectionFolders(item)
|
var collectionFolder = item as CollectionFolder;
|
||||||
|
if (collectionFolder == null)
|
||||||
|
{
|
||||||
|
collectionFolder = GetCollectionFolders(item)
|
||||||
.OfType<CollectionFolder>()
|
.OfType<CollectionFolder>()
|
||||||
.FirstOrDefault();
|
.FirstOrDefault();
|
||||||
|
}
|
||||||
|
|
||||||
return collectionFolder == null ? new LibraryOptions() : collectionFolder.GetLibraryOptions();
|
var options = collectionFolder == null ? new LibraryOptions() : collectionFolder.GetLibraryOptions();
|
||||||
|
|
||||||
|
if (options.SchemaVersion < 3)
|
||||||
|
{
|
||||||
|
options.SaveLocalMetadata = ConfigurationManager.Configuration.SaveLocalMeta;
|
||||||
|
options.EnableInternetProviders = ConfigurationManager.Configuration.EnableInternetProviders;
|
||||||
|
}
|
||||||
|
|
||||||
|
return options;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetContentType(BaseItem item)
|
public string GetContentType(BaseItem item)
|
||||||
|
@ -61,7 +61,7 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder
|
|||||||
}
|
}
|
||||||
|
|
||||||
var libraryOptions = _libraryManager.GetLibraryOptions(video);
|
var libraryOptions = _libraryManager.GetLibraryOptions(video);
|
||||||
if (libraryOptions != null && libraryOptions.SchemaVersion >= 2)
|
if (libraryOptions != null)
|
||||||
{
|
{
|
||||||
if (!libraryOptions.EnableChapterImageExtraction)
|
if (!libraryOptions.EnableChapterImageExtraction)
|
||||||
{
|
{
|
||||||
@ -69,31 +69,9 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
var options = _chapterManager.GetConfiguration();
|
|
||||||
|
|
||||||
if (video is Movie)
|
|
||||||
{
|
|
||||||
if (!options.EnableMovieChapterImageExtraction)
|
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if (video is Episode)
|
|
||||||
{
|
|
||||||
if (!options.EnableEpisodeChapterImageExtraction)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!options.EnableOtherVideoChapterImageExtraction)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Can't extract images if there are no video streams
|
// Can't extract images if there are no video streams
|
||||||
return video.DefaultVideoStreamIndex.HasValue;
|
return video.DefaultVideoStreamIndex.HasValue;
|
||||||
|
@ -242,8 +242,7 @@ namespace MediaBrowser.Server.Implementations.Session
|
|||||||
var userLastActivityDate = user.LastActivityDate ?? DateTime.MinValue;
|
var userLastActivityDate = user.LastActivityDate ?? DateTime.MinValue;
|
||||||
user.LastActivityDate = activityDate;
|
user.LastActivityDate = activityDate;
|
||||||
|
|
||||||
// Don't log in the db anymore frequently than 10 seconds
|
if ((activityDate - userLastActivityDate).TotalSeconds > 60)
|
||||||
if ((activityDate - userLastActivityDate).TotalSeconds > 10)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user