diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-06-30 09:28:38 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-06-30 09:28:38 -0400 |
| commit | f0da58a997ed01635225ae5290d7f34997b99452 (patch) | |
| tree | 91cbf8c34aff65d1384a2e1277c3544aeb9e0c09 | |
| parent | 62d98551edf421ba50f2eadf95d6c3d1fb1d20ae (diff) | |
fix config startup
| -rw-r--r-- | MediaBrowser.Controller/Entities/Person.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Dto/DtoService.cs | 33 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/ApplicationHost.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.XbmcMetadata/Savers/XmlSaverHelpers.cs | 14 |
4 files changed, 51 insertions, 11 deletions
diff --git a/MediaBrowser.Controller/Entities/Person.cs b/MediaBrowser.Controller/Entities/Person.cs index 1def47391..fe8d61836 100644 --- a/MediaBrowser.Controller/Entities/Person.cs +++ b/MediaBrowser.Controller/Entities/Person.cs @@ -96,5 +96,10 @@ namespace MediaBrowser.Controller.Entities { return Name; } + + public bool IsType(string type) + { + return string.Equals(Type, type, StringComparison.OrdinalIgnoreCase) || string.Equals(Role, type, StringComparison.OrdinalIgnoreCase); + } } } diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs index 6684c4efb..7f63dac33 100644 --- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs +++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs @@ -423,7 +423,38 @@ namespace MediaBrowser.Server.Implementations.Dto // Ordering by person type to ensure actors and artists are at the front. // This is taking advantage of the fact that they both begin with A // This should be improved in the future - var people = item.People.OrderBy(i => i.SortOrder ?? int.MaxValue).ThenBy(i => i.Type).ToList(); + var people = item.People.OrderBy(i => i.SortOrder ?? int.MaxValue) + .ThenBy(i => + { + if (i.IsType(PersonType.Actor)) + { + return 0; + } + if (i.IsType(PersonType.GuestStar)) + { + return 1; + } + if (i.IsType(PersonType.Director)) + { + return 2; + } + if (i.IsType(PersonType.Writer)) + { + return 3; + } + if (i.IsType(PersonType.Producer)) + { + return 4; + } + if (i.IsType(PersonType.Composer)) + { + return 4; + } + + return 10; + }) + .ThenBy(i => i.Name) + .ToList(); // Attach People by transforming them into BaseItemPerson (DTO) dto.People = new BaseItemPerson[people.Count]; diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs index 5c84b92af..96aa9c9d5 100644 --- a/MediaBrowser.ServerApplication/ApplicationHost.cs +++ b/MediaBrowser.ServerApplication/ApplicationHost.cs @@ -277,19 +277,19 @@ namespace MediaBrowser.ServerApplication LogManager.RemoveConsoleOutput(); } - public override Task Init(IProgress<double> progress) + public override async Task Init(IProgress<double> progress) { PerformVersionMigration(); - return base.Init(progress); + await base.Init(progress).ConfigureAwait(false); + + MigrateModularConfigurations(); + ApplyDefaultMetadataSettings(); } private void PerformVersionMigration() { DeleteDeprecatedModules(); - - MigrateModularConfigurations(); - ApplyDefaultMetadataSettings(); } private void MigrateModularConfigurations() diff --git a/MediaBrowser.XbmcMetadata/Savers/XmlSaverHelpers.cs b/MediaBrowser.XbmcMetadata/Savers/XmlSaverHelpers.cs index 85829b155..7f817f591 100644 --- a/MediaBrowser.XbmcMetadata/Savers/XmlSaverHelpers.cs +++ b/MediaBrowser.XbmcMetadata/Savers/XmlSaverHelpers.cs @@ -382,8 +382,9 @@ namespace MediaBrowser.XbmcMetadata.Savers } var writers = item.People - .Where(i => IsPersonType(i, PersonType.Director)) + .Where(i => IsPersonType(i, PersonType.Writer)) .Select(i => i.Name) + .Distinct(StringComparer.OrdinalIgnoreCase) .ToList(); foreach (var person in writers) @@ -391,11 +392,9 @@ namespace MediaBrowser.XbmcMetadata.Savers builder.Append("<writer>" + SecurityElement.Escape(person) + "</writer>"); } - var credits = writers.Distinct(StringComparer.OrdinalIgnoreCase).ToList(); - - if (credits.Count > 0) + if (writers.Count > 0) { - builder.Append("<credits>" + SecurityElement.Escape(string.Join(" / ", credits.ToArray())) + "</credits>"); + builder.Append("<credits>" + SecurityElement.Escape(string.Join(" / ", writers.ToArray())) + "</credits>"); } var hasTrailer = item as IHasTrailers; @@ -850,6 +849,11 @@ namespace MediaBrowser.XbmcMetadata.Savers builder.Append("<role>" + SecurityElement.Escape(person.Role ?? string.Empty) + "</role>"); builder.Append("<type>" + SecurityElement.Escape(person.Type ?? string.Empty) + "</type>"); + if (person.SortOrder.HasValue) + { + builder.Append("<sortorder>" + SecurityElement.Escape(person.SortOrder.Value.ToString(UsCulture)) + "</sortorder>"); + } + try { var personEntity = libraryManager.GetPerson(person.Name); |
