|
@@ -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;
|
|
using MediaBrowser.Common.Configuration;
|
|
using MediaBrowser.Common.Configuration;
|
|
using MediaBrowser.Common.Events;
|
|
using MediaBrowser.Common.Events;
|
|
using MediaBrowser.Common.Extensions;
|
|
using MediaBrowser.Common.Extensions;
|
|
-using Emby.Common.Implementations.ScheduledTasks;
|
|
|
|
using MediaBrowser.Common.Net;
|
|
using MediaBrowser.Common.Net;
|
|
|
|
+using MediaBrowser.Common.Plugins;
|
|
using MediaBrowser.Common.Progress;
|
|
using MediaBrowser.Common.Progress;
|
|
|
|
+using MediaBrowser.Common.Security;
|
|
|
|
+using MediaBrowser.Common.Updates;
|
|
using MediaBrowser.Controller;
|
|
using MediaBrowser.Controller;
|
|
using MediaBrowser.Controller.Channels;
|
|
using MediaBrowser.Controller.Channels;
|
|
using MediaBrowser.Controller.Chapters;
|
|
using MediaBrowser.Controller.Chapters;
|
|
@@ -17,7 +58,9 @@ using MediaBrowser.Controller.Dlna;
|
|
using MediaBrowser.Controller.Drawing;
|
|
using MediaBrowser.Controller.Drawing;
|
|
using MediaBrowser.Controller.Dto;
|
|
using MediaBrowser.Controller.Dto;
|
|
using MediaBrowser.Controller.Entities;
|
|
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.Library;
|
|
using MediaBrowser.Controller.LiveTv;
|
|
using MediaBrowser.Controller.LiveTv;
|
|
using MediaBrowser.Controller.MediaEncoding;
|
|
using MediaBrowser.Controller.MediaEncoding;
|
|
@@ -35,103 +78,47 @@ using MediaBrowser.Controller.Subtitles;
|
|
using MediaBrowser.Controller.Sync;
|
|
using MediaBrowser.Controller.Sync;
|
|
using MediaBrowser.Controller.TV;
|
|
using MediaBrowser.Controller.TV;
|
|
using MediaBrowser.LocalMetadata.Savers;
|
|
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.Logging;
|
|
using MediaBrowser.Model.MediaInfo;
|
|
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.System;
|
|
|
|
+using MediaBrowser.Model.Text;
|
|
using MediaBrowser.Model.Updates;
|
|
using MediaBrowser.Model.Updates;
|
|
|
|
+using MediaBrowser.Model.Xml;
|
|
using MediaBrowser.Providers.Chapters;
|
|
using MediaBrowser.Providers.Chapters;
|
|
using MediaBrowser.Providers.Manager;
|
|
using MediaBrowser.Providers.Manager;
|
|
using MediaBrowser.Providers.Subtitles;
|
|
using MediaBrowser.Providers.Subtitles;
|
|
using MediaBrowser.WebDashboard.Api;
|
|
using MediaBrowser.WebDashboard.Api;
|
|
using MediaBrowser.XbmcMetadata.Providers;
|
|
using MediaBrowser.XbmcMetadata.Providers;
|
|
|
|
+using OpenSubtitlesHandler;
|
|
|
|
+using ServiceStack;
|
|
|
|
+using SocketHttpListener.Primitives;
|
|
using System;
|
|
using System;
|
|
using System.Collections.Concurrent;
|
|
using System.Collections.Concurrent;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Generic;
|
|
using System.Globalization;
|
|
using System.Globalization;
|
|
using System.IO;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Linq;
|
|
-using System.Net;
|
|
|
|
-using System.Net.Sockets;
|
|
|
|
using System.Reflection;
|
|
using System.Reflection;
|
|
using System.Security.Cryptography.X509Certificates;
|
|
using System.Security.Cryptography.X509Certificates;
|
|
using System.Threading;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
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 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>
|
|
/// <summary>
|
|
/// Class CompositionRoot
|
|
/// Class CompositionRoot
|
|
@@ -216,7 +203,6 @@ namespace Emby.Server.Core
|
|
internal IDisplayPreferencesRepository DisplayPreferencesRepository { get; set; }
|
|
internal IDisplayPreferencesRepository DisplayPreferencesRepository { get; set; }
|
|
internal IItemRepository ItemRepository { get; set; }
|
|
internal IItemRepository ItemRepository { get; set; }
|
|
private INotificationsRepository NotificationsRepository { get; set; }
|
|
private INotificationsRepository NotificationsRepository { get; set; }
|
|
- private IFileOrganizationRepository FileOrganizationRepository { get; set; }
|
|
|
|
|
|
|
|
private INotificationManager NotificationManager { get; set; }
|
|
private INotificationManager NotificationManager { get; set; }
|
|
private ISubtitleManager SubtitleManager { get; set; }
|
|
private ISubtitleManager SubtitleManager { get; set; }
|
|
@@ -226,7 +212,6 @@ namespace Emby.Server.Core
|
|
internal IUserViewManager UserViewManager { get; set; }
|
|
internal IUserViewManager UserViewManager { get; set; }
|
|
|
|
|
|
private IAuthenticationRepository AuthenticationRepository { get; set; }
|
|
private IAuthenticationRepository AuthenticationRepository { get; set; }
|
|
- private ISyncRepository SyncRepository { get; set; }
|
|
|
|
private ITVSeriesManager TVSeriesManager { get; set; }
|
|
private ITVSeriesManager TVSeriesManager { get; set; }
|
|
private ICollectionManager CollectionManager { get; set; }
|
|
private ICollectionManager CollectionManager { get; set; }
|
|
private IMediaSourceManager MediaSourceManager { get; set; }
|
|
private IMediaSourceManager MediaSourceManager { get; set; }
|
|
@@ -360,13 +345,6 @@ namespace Emby.Server.Core
|
|
{
|
|
{
|
|
var builder = GetBaseExceptionMessage(ApplicationPaths);
|
|
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, string.Format("Version: {0}{1}", ApplicationVersion, Environment.NewLine));
|
|
builder.Insert(0, "*** Error Report ***" + 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.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");
|
|
Logger.Info("All entry points have started");
|
|
|
|
|
|
@@ -434,41 +412,41 @@ namespace Emby.Server.Core
|
|
|
|
|
|
var result = new JsonSerializer(FileSystemManager, LogManager.GetLogger("JsonSerializer"));
|
|
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[] { "PlaceOfBirth", "ProviderIds", "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[] { "ProviderIds" };
|
|
|
|
+ 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;
|
|
return result;
|
|
}
|
|
}
|
|
@@ -583,9 +561,6 @@ namespace Emby.Server.Core
|
|
ItemRepository = itemRepo;
|
|
ItemRepository = itemRepo;
|
|
RegisterSingleInstance(ItemRepository);
|
|
RegisterSingleInstance(ItemRepository);
|
|
|
|
|
|
- FileOrganizationRepository = GetFileOrganizationRepository();
|
|
|
|
- RegisterSingleInstance(FileOrganizationRepository);
|
|
|
|
-
|
|
|
|
AuthenticationRepository = GetAuthenticationRepository();
|
|
AuthenticationRepository = GetAuthenticationRepository();
|
|
RegisterSingleInstance(AuthenticationRepository);
|
|
RegisterSingleInstance(AuthenticationRepository);
|
|
|
|
|
|
@@ -614,7 +589,7 @@ namespace Emby.Server.Core
|
|
RegisterSingleInstance(HttpServer, false);
|
|
RegisterSingleInstance(HttpServer, false);
|
|
progress.Report(10);
|
|
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);
|
|
RegisterSingleInstance(ServerManager);
|
|
|
|
|
|
var innerProgress = new ActionableProgress<double>();
|
|
var innerProgress = new ActionableProgress<double>();
|
|
@@ -644,9 +619,6 @@ namespace Emby.Server.Core
|
|
var newsService = new Emby.Server.Implementations.News.NewsService(ApplicationPaths, JsonSerializer);
|
|
var newsService = new Emby.Server.Implementations.News.NewsService(ApplicationPaths, JsonSerializer);
|
|
RegisterSingleInstance<INewsService>(newsService);
|
|
RegisterSingleInstance<INewsService>(newsService);
|
|
|
|
|
|
- var fileOrganizationService = new FileOrganizationService(TaskManager, FileOrganizationRepository, LogManager.GetLogger("FileOrganizationService"), LibraryMonitor, LibraryManager, ServerConfigurationManager, FileSystemManager, ProviderManager);
|
|
|
|
- RegisterSingleInstance<IFileOrganizationService>(fileOrganizationService);
|
|
|
|
-
|
|
|
|
progress.Report(15);
|
|
progress.Report(15);
|
|
|
|
|
|
ChannelManager = new ChannelManager(UserManager, DtoService, LibraryManager, LogManager.GetLogger("ChannelManager"), ServerConfigurationManager, FileSystemManager, UserDataManager, JsonSerializer, LocalizationManager, HttpClient, ProviderManager);
|
|
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);
|
|
UserViewManager = new UserViewManager(LibraryManager, LocalizationManager, UserManager, ChannelManager, LiveTvManager, ServerConfigurationManager);
|
|
RegisterSingleInstance(UserViewManager);
|
|
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);
|
|
RegisterSingleInstance<IContentDirectory>(contentDirectory);
|
|
|
|
|
|
var mediaRegistrar = new MediaReceiverRegistrar(LogManager.GetLogger("MediaReceiverRegistrar"), HttpClient, ServerConfigurationManager, new XmlReaderSettingsFactory());
|
|
var mediaRegistrar = new MediaReceiverRegistrar(LogManager.GetLogger("MediaReceiverRegistrar"), HttpClient, ServerConfigurationManager, new XmlReaderSettingsFactory());
|
|
@@ -893,7 +865,7 @@ namespace Emby.Server.Core
|
|
probePath = info.ProbePath;
|
|
probePath = info.ProbePath;
|
|
var hasExternalEncoder = string.Equals(info.Version, "external", StringComparison.OrdinalIgnoreCase);
|
|
var hasExternalEncoder = string.Equals(info.Version, "external", StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
|
- var mediaEncoder = new MediaEncoder(LogManager.GetLogger("MediaEncoder"),
|
|
|
|
|
|
+ var mediaEncoder = new MediaEncoding.Encoder.MediaEncoder(LogManager.GetLogger("MediaEncoder"),
|
|
JsonSerializer,
|
|
JsonSerializer,
|
|
encoderPath,
|
|
encoderPath,
|
|
probePath,
|
|
probePath,
|
|
@@ -932,19 +904,6 @@ namespace Emby.Server.Core
|
|
return repo;
|
|
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()
|
|
private IAuthenticationRepository GetAuthenticationRepository()
|
|
{
|
|
{
|
|
var repo = new AuthenticationRepository(LogManager.GetLogger("AuthenticationRepository"), ServerConfigurationManager.ApplicationPaths);
|
|
var repo = new AuthenticationRepository(LogManager.GetLogger("AuthenticationRepository"), ServerConfigurationManager.ApplicationPaths);
|
|
@@ -1002,8 +961,6 @@ namespace Emby.Server.Core
|
|
BaseItem.CollectionManager = CollectionManager;
|
|
BaseItem.CollectionManager = CollectionManager;
|
|
BaseItem.MediaSourceManager = MediaSourceManager;
|
|
BaseItem.MediaSourceManager = MediaSourceManager;
|
|
CollectionFolder.XmlSerializer = XmlSerializer;
|
|
CollectionFolder.XmlSerializer = XmlSerializer;
|
|
- BaseStreamingService.AppHost = this;
|
|
|
|
- BaseStreamingService.HttpClient = HttpClient;
|
|
|
|
Utilities.CryptographyProvider = CryptographyProvider;
|
|
Utilities.CryptographyProvider = CryptographyProvider;
|
|
AuthenticatedAttribute.AuthService = AuthService;
|
|
AuthenticatedAttribute.AuthService = AuthService;
|
|
}
|
|
}
|
|
@@ -1276,7 +1233,7 @@ namespace Emby.Server.Core
|
|
list.Add(GetAssembly(typeof(InstallationManager)));
|
|
list.Add(GetAssembly(typeof(InstallationManager)));
|
|
|
|
|
|
// MediaEncoding
|
|
// MediaEncoding
|
|
- list.Add(GetAssembly(typeof(MediaEncoder)));
|
|
|
|
|
|
+ list.Add(GetAssembly(typeof(MediaEncoding.Encoder.MediaEncoder)));
|
|
|
|
|
|
// Dlna
|
|
// Dlna
|
|
list.Add(GetAssembly(typeof(DlnaEntryPoint)));
|
|
list.Add(GetAssembly(typeof(DlnaEntryPoint)));
|
|
@@ -1289,10 +1246,7 @@ namespace Emby.Server.Core
|
|
|
|
|
|
list.AddRange(GetAssembliesWithPartsInternal());
|
|
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();
|
|
protected abstract List<Assembly> GetAssembliesWithPartsInternal();
|
|
@@ -1636,14 +1590,10 @@ namespace Emby.Server.Core
|
|
/// <returns>Task{CheckForUpdateResult}.</returns>
|
|
/// <returns>Task{CheckForUpdateResult}.</returns>
|
|
public override async Task<CheckForUpdateResult> CheckForApplicationUpdate(CancellationToken cancellationToken, IProgress<double> progress)
|
|
public override async Task<CheckForUpdateResult> CheckForApplicationUpdate(CancellationToken cancellationToken, IProgress<double> progress)
|
|
{
|
|
{
|
|
- var cacheLength = TimeSpan.FromHours(3);
|
|
|
|
|
|
+ var cacheLength = TimeSpan.FromHours(1);
|
|
var updateLevel = SystemUpdateLevel;
|
|
var updateLevel = SystemUpdateLevel;
|
|
|
|
|
|
- if (updateLevel == PackageVersionClass.Beta)
|
|
|
|
- {
|
|
|
|
- cacheLength = TimeSpan.FromHours(1);
|
|
|
|
- }
|
|
|
|
- else if (updateLevel == PackageVersionClass.Dev)
|
|
|
|
|
|
+ if (updateLevel != PackageVersionClass.Release)
|
|
{
|
|
{
|
|
cacheLength = TimeSpan.FromMinutes(5);
|
|
cacheLength = TimeSpan.FromMinutes(5);
|
|
}
|
|
}
|