@ -1,11 +1,52 @@
using MediaBrowser.Api ;
using Emby.Common.Implementations ;
using Emby.Common.Implementations.Archiving ;
using Emby.Common.Implementations.IO ;
using Emby.Common.Implementations.Reflection ;
using Emby.Common.Implementations.ScheduledTasks ;
using Emby.Common.Implementations.Serialization ;
using Emby.Common.Implementations.TextEncoding ;
using Emby.Common.Implementations.Xml ;
using Emby.Dlna ;
using Emby.Dlna.ConnectionManager ;
using Emby.Dlna.ContentDirectory ;
using Emby.Dlna.Main ;
using Emby.Dlna.MediaReceiverRegistrar ;
using Emby.Dlna.Ssdp ;
using Emby.Drawing ;
using Emby.Photos ;
using Emby.Server.Implementations.Activity ;
using Emby.Server.Implementations.Channels ;
using Emby.Server.Implementations.Collections ;
using Emby.Server.Implementations.Configuration ;
using Emby.Server.Implementations.Data ;
using Emby.Server.Implementations.Devices ;
using Emby.Server.Implementations.Dto ;
using Emby.Server.Implementations.FFMpeg ;
using Emby.Server.Implementations.HttpServer ;
using Emby.Server.Implementations.HttpServer.Security ;
using Emby.Server.Implementations.IO ;
using Emby.Server.Implementations.Library ;
using Emby.Server.Implementations.LiveTv ;
using Emby.Server.Implementations.Localization ;
using Emby.Server.Implementations.MediaEncoder ;
using Emby.Server.Implementations.Migrations ;
using Emby.Server.Implementations.Notifications ;
using Emby.Server.Implementations.Playlists ;
using Emby.Server.Implementations.Security ;
using Emby.Server.Implementations.Session ;
using Emby.Server.Implementations.Social ;
using Emby.Server.Implementations.TV ;
using Emby.Server.Implementations.Updates ;
using MediaBrowser.Api ;
using MediaBrowser.Common ;
using MediaBrowser.Common.Configuration ;
using MediaBrowser.Common.Events ;
using MediaBrowser.Common.Extensions ;
using Emby.Common.Implementations.ScheduledTasks ;
using MediaBrowser.Common.Net ;
using MediaBrowser.Common.Plugins ;
using MediaBrowser.Common.Progress ;
using MediaBrowser.Common.Security ;
using MediaBrowser.Common.Updates ;
using MediaBrowser.Controller ;
using MediaBrowser.Controller.Channels ;
using MediaBrowser.Controller.Chapters ;
@ -17,7 +58,9 @@ using MediaBrowser.Controller.Dlna;
using MediaBrowser.Controller.Drawing ;
using MediaBrowser.Controller.Dto ;
using MediaBrowser.Controller.Entities ;
using MediaBrowser.Controller.FileOrganization ;
using MediaBrowser.Controller.Entities.Audio ;
using MediaBrowser.Controller.Entities.Movies ;
using MediaBrowser.Controller.Entities.TV ;
using MediaBrowser.Controller.Library ;
using MediaBrowser.Controller.LiveTv ;
using MediaBrowser.Controller.MediaEncoding ;
@ -35,103 +78,47 @@ using MediaBrowser.Controller.Subtitles;
using MediaBrowser.Controller.Sync ;
using MediaBrowser.Controller.TV ;
using MediaBrowser.LocalMetadata.Savers ;
using MediaBrowser.MediaEncoding.BdInfo ;
using MediaBrowser.MediaEncoding.Encoder ;
using MediaBrowser.MediaEncoding.Subtitles ;
using MediaBrowser.Model.Activity ;
using MediaBrowser.Model.Configuration ;
using MediaBrowser.Model.Diagnostics ;
using MediaBrowser.Model.Dlna ;
using MediaBrowser.Model.Globalization ;
using MediaBrowser.Model.IO ;
using MediaBrowser.Model.Logging ;
using MediaBrowser.Model.MediaInfo ;
using MediaBrowser.Model.Net ;
using MediaBrowser.Model.News ;
using MediaBrowser.Model.Reflection ;
using MediaBrowser.Model.Serialization ;
using MediaBrowser.Model.Services ;
using MediaBrowser.Model.Social ;
using MediaBrowser.Model.System ;
using MediaBrowser.Model.Text ;
using MediaBrowser.Model.Updates ;
using MediaBrowser.Model.Xml ;
using MediaBrowser.Providers.Chapters ;
using MediaBrowser.Providers.Manager ;
using MediaBrowser.Providers.Subtitles ;
using MediaBrowser.WebDashboard.Api ;
using MediaBrowser.XbmcMetadata.Providers ;
using OpenSubtitlesHandler ;
using ServiceStack ;
using SocketHttpListener.Primitives ;
using System ;
using System.Collections.Concurrent ;
using System.Collections.Generic ;
using System.Globalization ;
using System.IO ;
using System.Linq ;
using System.Net ;
using System.Net.Sockets ;
using System.Reflection ;
using System.Security.Cryptography.X509Certificates ;
using System.Threading ;
using System.Threading.Tasks ;
using Emby.Common.Implementations ;
using Emby.Common.Implementations.Archiving ;
using Emby.Common.Implementations.IO ;
using Emby.Common.Implementations.Reflection ;
using Emby.Common.Implementations.Serialization ;
using Emby.Common.Implementations.TextEncoding ;
using Emby.Common.Implementations.Xml ;
using Emby.Photos ;
using MediaBrowser.Model.IO ;
using MediaBrowser.Api.Playback ;
using MediaBrowser.Common.Plugins ;
using MediaBrowser.Common.Security ;
using MediaBrowser.Common.Updates ;
using MediaBrowser.Controller.Entities.Audio ;
using MediaBrowser.Controller.Entities.Movies ;
using MediaBrowser.Controller.Entities.TV ;
using Emby.Dlna ;
using Emby.Dlna.ConnectionManager ;
using Emby.Dlna.ContentDirectory ;
using Emby.Dlna.Main ;
using Emby.Dlna.MediaReceiverRegistrar ;
using Emby.Dlna.Ssdp ;
using Emby.Server.Core ;
using Emby.Server.Implementations.Activity ;
using Emby.Server.Implementations.Devices ;
using Emby.Server.Implementations.FFMpeg ;
using Emby.Server.Core.IO ;
using Emby.Server.Core.Localization ;
using Emby.Server.Implementations.Migrations ;
using Emby.Server.Implementations.Security ;
using Emby.Server.Implementations.Social ;
using Emby.Server.Implementations.Channels ;
using Emby.Server.Implementations.Collections ;
using Emby.Server.Implementations.Dto ;
using Emby.Server.Implementations.IO ;
using Emby.Server.Implementations.FileOrganization ;
using Emby.Server.Implementations.HttpServer ;
using Emby.Server.Implementations.HttpServer.Security ;
using Emby.Server.Implementations.Library ;
using Emby.Server.Implementations.LiveTv ;
using Emby.Server.Implementations.Localization ;
using Emby.Server.Implementations.MediaEncoder ;
using Emby.Server.Implementations.Notifications ;
using Emby.Server.Implementations.Data ;
using Emby.Server.Implementations.Playlists ;
using Emby.Server.Implementations ;
using Emby.Server.Implementations.ServerManager ;
using Emby.Server.Implementations.Session ;
using Emby.Server.Implementations.TV ;
using Emby.Server.Implementations.Updates ;
using MediaBrowser.Model.Activity ;
using MediaBrowser.Model.Configuration ;
using MediaBrowser.Model.Dlna ;
using MediaBrowser.Model.Globalization ;
using MediaBrowser.Model.Net ;
using MediaBrowser.Model.News ;
using MediaBrowser.Model.Reflection ;
using MediaBrowser.Model.Serialization ;
using MediaBrowser.Model.Services ;
using MediaBrowser.Model.Social ;
using MediaBrowser.Model.Text ;
using MediaBrowser.Model.Xml ;
using OpenSubtitlesHandler ;
using ServiceStack ;
using SocketHttpListener.Primitives ;
using Emby.Server.MediaEncoding.Subtitles ;
using MediaBrowser.MediaEncoding.BdInfo ;
using StringExtensions = MediaBrowser . Controller . Extensions . StringExtensions ;
using Emby.Drawing ;
using Emby.Server.Implementations.Migrations ;
using MediaBrowser.Model.Diagnostics ;
using Emby.Common.Implementations.Diagnostics ;
using Emby.Server.Implementations.Configuration ;
namespace Emby.Server. Core
namespace Emby.Server.Implementations
{
/// <summary>
/// Class CompositionRoot
@ -216,7 +203,6 @@ namespace Emby.Server.Core
internal IDisplayPreferencesRepository DisplayPreferencesRepository { get ; set ; }
internal IItemRepository ItemRepository { get ; set ; }
private INotificationsRepository NotificationsRepository { get ; set ; }
private IFileOrganizationRepository FileOrganizationRepository { get ; set ; }
private INotificationManager NotificationManager { get ; set ; }
private ISubtitleManager SubtitleManager { get ; set ; }
@ -226,7 +212,6 @@ namespace Emby.Server.Core
internal IUserViewManager UserViewManager { get ; set ; }
private IAuthenticationRepository AuthenticationRepository { get ; set ; }
private ISyncRepository SyncRepository { get ; set ; }
private ITVSeriesManager TVSeriesManager { get ; set ; }
private ICollectionManager CollectionManager { get ; set ; }
private IMediaSourceManager MediaSourceManager { get ; set ; }
@ -360,13 +345,6 @@ namespace Emby.Server.Core
{
var builder = GetBaseExceptionMessage ( ApplicationPaths ) ;
// Skip if plugins haven't been loaded yet
//if (Plugins != null)
//{
// var pluginString = string.Join("|", Plugins.Select(i => i.Name + "-" + i.Version.ToString()).ToArray());
// builder.Insert(0, string.Format("Plugins: {0}{1}", pluginString, Environment.NewLine));
//}
builder . Insert ( 0 , string . Format ( "Version: {0}{1}" , ApplicationVersion , Environment . NewLine ) ) ;
builder . Insert ( 0 , "*** Error Report ***" + Environment . NewLine ) ;
@ -413,7 +391,7 @@ namespace Emby.Server.Core
{
Logger . ErrorException ( "Error in {0}" , ex , name ) ;
}
Logger . Info ( "Entry point completed: {0}. Duration: {1} seconds" , name , ( DateTime . UtcNow - now ) . TotalSeconds . ToString ( CultureInfo . InvariantCulture ) );
Logger . Info ( "Entry point completed: {0}. Duration: {1} seconds" , name , ( DateTime . UtcNow - now ) . TotalSeconds . ToString ( CultureInfo . InvariantCulture ) , "ImageInfos" );
}
Logger . Info ( "All entry points have started" ) ;
@ -434,41 +412,41 @@ namespace Emby.Server.Core
var result = new JsonSerializer ( FileSystemManager , LogManager . GetLogger ( "JsonSerializer" ) ) ;
ServiceStack . Text . JsConfig < LiveTvProgram > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < LiveTvChannel > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < LiveTvVideoRecording > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < LiveTvAudioRecording > . ExcludePropertyNames = new [ ] { " Artists", "AlbumArtists" , "ChannelMediaSources" , " ProviderIds", "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType " } ;
ServiceStack . Text . JsConfig < Series > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < Audio > . ExcludePropertyNames = new [ ] { " Artists", "AlbumArtists" , "ChannelMediaSources" , " ProviderIds", "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType " } ;
ServiceStack . Text . JsConfig < MusicAlbum > . ExcludePropertyNames = new [ ] { " Artists", "AlbumArtists" , " ProviderIds", "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType " } ;
ServiceStack . Text . JsConfig < MusicArtist > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < MusicGenre > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < MusicVideo > . ExcludePropertyNames = new [ ] { " Artists", "AlbumArtists" , " ProviderIds", "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType " } ;
ServiceStack . Text . JsConfig < Movie > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < Playlist > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < AudioPodcast > . ExcludePropertyNames = new [ ] { " Artists", "AlbumArtists" , "ChannelMediaSources" , " ProviderIds", "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType " } ;
ServiceStack . Text . JsConfig < AudioBook > . ExcludePropertyNames = new [ ] { " Artists", "AlbumArtists" , "ChannelMediaSources" , " ProviderIds", "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType " } ;
ServiceStack . Text . JsConfig < Trailer > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < BoxSet > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < Episode > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < Season > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < Book > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < CollectionFolder > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < Folder > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < Game > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < GameGenre > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < GameSystem > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < Genre > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < Person > . ExcludePropertyNames = new [ ] { "P laceOfBirth", "P roviderIds", "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType " } ;
ServiceStack . Text . JsConfig < Photo > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < PhotoAlbum > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < Studio > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < UserRootFolder > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < UserView > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < Video > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < Year > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < Channel > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < AggregateFolder > . ExcludePropertyNames = new [ ] { "ProviderIds" , "ImageInfos" , "ProductionLocations" , "ThemeSongIds" , "ThemeVideoIds" , "TotalBitrate" , "Taglines" , "Keywords" , "ExtraType" } ;
ServiceStack . Text . JsConfig < LiveTvProgram > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < LiveTvChannel > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < LiveTvVideoRecording > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < LiveTvAudioRecording > . ExcludePropertyNames = new [ ] { " ProviderIds" } ;
ServiceStack . Text . JsConfig < Series > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < Audio > . ExcludePropertyNames = new [ ] { " ProviderIds" } ;
ServiceStack . Text . JsConfig < MusicAlbum > . ExcludePropertyNames = new [ ] { " ProviderIds" } ;
ServiceStack . Text . JsConfig < MusicArtist > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < MusicGenre > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < MusicVideo > . ExcludePropertyNames = new [ ] { " ProviderIds" } ;
ServiceStack . Text . JsConfig < Movie > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < Playlist > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < AudioPodcast > . ExcludePropertyNames = new [ ] { " ProviderIds" } ;
ServiceStack . Text . JsConfig < AudioBook > . ExcludePropertyNames = new [ ] { " ProviderIds" } ;
ServiceStack . Text . JsConfig < Trailer > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < BoxSet > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < Episode > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < Season > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < Book > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < CollectionFolder > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < Folder > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < Game > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < GameGenre > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < GameSystem > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < Genre > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < Person > . ExcludePropertyNames = new [ ] { "P roviderIds" } ;
ServiceStack . Text . JsConfig < Photo > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < PhotoAlbum > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < Studio > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < UserRootFolder > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < UserView > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < Video > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < Year > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < Channel > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
ServiceStack . Text . JsConfig < AggregateFolder > . ExcludePropertyNames = new [ ] { "ProviderIds" } ;
return result ;
}
@ -583,9 +561,6 @@ namespace Emby.Server.Core
ItemRepository = itemRepo ;
RegisterSingleInstance ( ItemRepository ) ;
FileOrganizationRepository = GetFileOrganizationRepository ( ) ;
RegisterSingleInstance ( FileOrganizationRepository ) ;
AuthenticationRepository = GetAuthenticationRepository ( ) ;
RegisterSingleInstance ( AuthenticationRepository ) ;
@ -614,7 +589,7 @@ namespace Emby.Server.Core
RegisterSingleInstance ( HttpServer , false ) ;
progress . Report ( 10 ) ;
ServerManager = new ServerManager (this , JsonSerializer , LogManager . GetLogger ( "ServerManager" ) , ServerConfigurationManager , MemoryStreamFactory , textEncoding ) ;
ServerManager = new ServerManager .ServerManager (this , JsonSerializer , LogManager . GetLogger ( "ServerManager" ) , ServerConfigurationManager , MemoryStreamFactory , textEncoding ) ;
RegisterSingleInstance ( ServerManager ) ;
var innerProgress = new ActionableProgress < double > ( ) ;
@ -644,9 +619,6 @@ namespace Emby.Server.Core
var newsService = new Emby . Server . Implementations . News . NewsService ( ApplicationPaths , JsonSerializer ) ;
RegisterSingleInstance < INewsService > ( newsService ) ;
var fileOrganizationService = new FileOrganizationService ( TaskManager , FileOrganizationRepository , LogManager . GetLogger ( "FileOrganizationService" ) , LibraryMonitor , LibraryManager , ServerConfigurationManager , FileSystemManager , ProviderManager ) ;
RegisterSingleInstance < IFileOrganizationService > ( fileOrganizationService ) ;
progress . Report ( 15 ) ;
ChannelManager = new ChannelManager ( UserManager , DtoService , LibraryManager , LogManager . GetLogger ( "ChannelManager" ) , ServerConfigurationManager , FileSystemManager , UserDataManager , JsonSerializer , LocalizationManager , HttpClient , ProviderManager ) ;
@ -676,7 +648,7 @@ namespace Emby.Server.Core
UserViewManager = new UserViewManager ( LibraryManager , LocalizationManager , UserManager , ChannelManager , LiveTvManager , ServerConfigurationManager ) ;
RegisterSingleInstance ( UserViewManager ) ;
var contentDirectory = new ContentDirectory ( dlnaManager , UserDataManager , ImageProcessor , LibraryManager , ServerConfigurationManager , UserManager , LogManager . GetLogger ( "UpnpContentDirectory" ) , HttpClient , LocalizationManager , ChannelManager , MediaSourceManager , UserViewManager , ( ) = > MediaEncoder , new XmlReaderSettingsFactory ( ) );
var contentDirectory = new ContentDirectory ( dlnaManager , UserDataManager , ImageProcessor , LibraryManager , ServerConfigurationManager , UserManager , LogManager . GetLogger ( "UpnpContentDirectory" ) , HttpClient , LocalizationManager , ChannelManager , MediaSourceManager , UserViewManager , ( ) = > MediaEncoder , new XmlReaderSettingsFactory ( ) , TVSeriesManager );
RegisterSingleInstance < IContentDirectory > ( contentDirectory ) ;
var mediaRegistrar = new MediaReceiverRegistrar ( LogManager . GetLogger ( "MediaReceiverRegistrar" ) , HttpClient , ServerConfigurationManager , new XmlReaderSettingsFactory ( ) ) ;
@ -893,7 +865,7 @@ namespace Emby.Server.Core
probePath = info . ProbePath ;
var hasExternalEncoder = string . Equals ( info . Version , "external" , StringComparison . OrdinalIgnoreCase ) ;
var mediaEncoder = new MediaEncod er( LogManager . GetLogger ( "MediaEncoder" ) ,
var mediaEncoder = new MediaEncod ing. Encoder . MediaEncod er( LogManager . GetLogger ( "MediaEncoder" ) ,
JsonSerializer ,
encoderPath ,
probePath ,
@ -932,19 +904,6 @@ namespace Emby.Server.Core
return repo ;
}
/// <summary>
/// Gets the file organization repository.
/// </summary>
/// <returns>Task{IUserRepository}.</returns>
private IFileOrganizationRepository GetFileOrganizationRepository ( )
{
var repo = new SqliteFileOrganizationRepository ( LogManager . GetLogger ( "SqliteFileOrganizationRepository" ) , ServerConfigurationManager . ApplicationPaths ) ;
repo . Initialize ( ) ;
return repo ;
}
private IAuthenticationRepository GetAuthenticationRepository ( )
{
var repo = new AuthenticationRepository ( LogManager . GetLogger ( "AuthenticationRepository" ) , ServerConfigurationManager . ApplicationPaths ) ;
@ -1002,8 +961,6 @@ namespace Emby.Server.Core
BaseItem . CollectionManager = CollectionManager ;
BaseItem . MediaSourceManager = MediaSourceManager ;
CollectionFolder . XmlSerializer = XmlSerializer ;
BaseStreamingService . AppHost = this ;
BaseStreamingService . HttpClient = HttpClient ;
Utilities . CryptographyProvider = CryptographyProvider ;
AuthenticatedAttribute . AuthService = AuthService ;
}
@ -1276,7 +1233,7 @@ namespace Emby.Server.Core
list . Add ( GetAssembly ( typeof ( InstallationManager ) ) ) ;
// MediaEncoding
list . Add ( GetAssembly ( typeof ( MediaEncod er) ) ) ;
list . Add ( GetAssembly ( typeof ( MediaEncod ing. Encoder . MediaEncod er) ) ) ;
// Dlna
list . Add ( GetAssembly ( typeof ( DlnaEntryPoint ) ) ) ;
@ -1289,10 +1246,7 @@ namespace Emby.Server.Core
list . AddRange ( GetAssembliesWithPartsInternal ( ) ) ;
// Include composable parts in the running assembly
list . Add ( GetAssembly ( typeof ( ApplicationHost ) ) ) ;
return list ;
return list . ToList ( ) ;
}
protected abstract List < Assembly > GetAssembliesWithPartsInternal ( ) ;
@ -1636,14 +1590,10 @@ namespace Emby.Server.Core
/// <returns>Task{CheckForUpdateResult}.</returns>
public override async Task < CheckForUpdateResult > CheckForApplicationUpdate ( CancellationToken cancellationToken , IProgress < double > progress )
{
var cacheLength = TimeSpan . FromHours ( 3 ) ;
var cacheLength = TimeSpan . FromHours ( 1 ) ;
var updateLevel = SystemUpdateLevel ;
if ( updateLevel = = PackageVersionClass . Beta )
{
cacheLength = TimeSpan . FromHours ( 1 ) ;
}
else if ( updateLevel = = PackageVersionClass . Dev )
if ( updateLevel ! = PackageVersionClass . Release )
{
cacheLength = TimeSpan . FromMinutes ( 5 ) ;
}