From 77669562743d725273ecd52677a6521aa0db7949 Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Mon, 30 Jul 2012 09:44:28 -0400 Subject: Extracted Logging into a separate, portable class library --- .../Configuration/BaseApplicationConfiguration.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs (limited to 'MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs') diff --git a/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs b/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs new file mode 100644 index 0000000000..2511377c15 --- /dev/null +++ b/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs @@ -0,0 +1,19 @@ +using MediaBrowser.Logging; + +namespace MediaBrowser.Model.Configuration +{ + /// + /// Serves as a common base class for the Server and UI application Configurations + /// + public class BaseApplicationConfiguration + { + public LogSeverity LogSeverity { get; set; } + public int HttpServerPortNumber { get; set; } + + public BaseApplicationConfiguration() + { + LogSeverity = LogSeverity.Info; + HttpServerPortNumber = 8096; + } + } +} -- cgit v1.2.3 From d4c75e39748679e7c039cb1eae4ad7232e2fe2b6 Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Mon, 30 Jul 2012 23:38:00 -0400 Subject: Fixed some project fragmentation that came from efforts to go portable --- MediaBrowser.Api/HttpHandlers/JsonHandler.cs | 3 +- .../Configuration/BaseApplicationConfiguration.cs | 19 ++++++ MediaBrowser.Common/Json/JsonSerializer.cs | 14 +--- MediaBrowser.Common/Kernel/BaseKernel.cs | 16 +++-- MediaBrowser.Common/Logging/BaseLogger.cs | 76 ++++++++++++++++++++++ MediaBrowser.Common/Logging/LogRow.cs | 40 ++++++++++++ MediaBrowser.Common/Logging/LogSeverity.cs | 14 ++++ MediaBrowser.Common/Logging/Logger.cs | 34 ++++++++++ MediaBrowser.Common/Logging/StreamLogger.cs | 33 ++++++++++ MediaBrowser.Common/MediaBrowser.Common.csproj | 10 +-- MediaBrowser.Common/Plugins/BasePlugin.cs | 30 ++++----- .../Configuration/ServerConfiguration.cs | 1 + MediaBrowser.Controller/UserController.cs | 2 +- MediaBrowser.Controller/Xml/BaseItemXmlParser.cs | 4 +- MediaBrowser.Logging/BaseLogger.cs | 76 ---------------------- MediaBrowser.Logging/LogRow.cs | 40 ------------ MediaBrowser.Logging/LogSeverity.cs | 14 ---- MediaBrowser.Logging/Logger.cs | 34 ---------- MediaBrowser.Logging/MediaBrowser.Logging.csproj | 53 --------------- MediaBrowser.Logging/Properties/AssemblyInfo.cs | 30 --------- MediaBrowser.Logging/StreamLogger.cs | 35 ---------- .../Configuration/BaseApplicationConfiguration.cs | 19 ------ MediaBrowser.Model/Entities/BaseItem.cs | 2 +- MediaBrowser.Model/MediaBrowser.Model.csproj | 10 +-- MediaBrowser.TV/Metadata/SeriesXmlParser.cs | 2 +- MediaBrowser.sln | 6 -- 26 files changed, 256 insertions(+), 361 deletions(-) create mode 100644 MediaBrowser.Common/Configuration/BaseApplicationConfiguration.cs create mode 100644 MediaBrowser.Common/Logging/BaseLogger.cs create mode 100644 MediaBrowser.Common/Logging/LogRow.cs create mode 100644 MediaBrowser.Common/Logging/LogSeverity.cs create mode 100644 MediaBrowser.Common/Logging/Logger.cs create mode 100644 MediaBrowser.Common/Logging/StreamLogger.cs delete mode 100644 MediaBrowser.Logging/BaseLogger.cs delete mode 100644 MediaBrowser.Logging/LogRow.cs delete mode 100644 MediaBrowser.Logging/LogSeverity.cs delete mode 100644 MediaBrowser.Logging/Logger.cs delete mode 100644 MediaBrowser.Logging/MediaBrowser.Logging.csproj delete mode 100644 MediaBrowser.Logging/Properties/AssemblyInfo.cs delete mode 100644 MediaBrowser.Logging/StreamLogger.cs delete mode 100644 MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs (limited to 'MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs') diff --git a/MediaBrowser.Api/HttpHandlers/JsonHandler.cs b/MediaBrowser.Api/HttpHandlers/JsonHandler.cs index a891d7d68d..90502a0c5f 100644 --- a/MediaBrowser.Api/HttpHandlers/JsonHandler.cs +++ b/MediaBrowser.Api/HttpHandlers/JsonHandler.cs @@ -1,6 +1,7 @@ using System.IO; -using MediaBrowser.Common.Json; using MediaBrowser.Common.Net.Handlers; +using MediaBrowser.Controller; +using MediaBrowser.Common.Json; namespace MediaBrowser.Api.HttpHandlers { diff --git a/MediaBrowser.Common/Configuration/BaseApplicationConfiguration.cs b/MediaBrowser.Common/Configuration/BaseApplicationConfiguration.cs new file mode 100644 index 0000000000..7ed782bdb1 --- /dev/null +++ b/MediaBrowser.Common/Configuration/BaseApplicationConfiguration.cs @@ -0,0 +1,19 @@ +using MediaBrowser.Common.Logging; + +namespace MediaBrowser.Common.Configuration +{ + /// + /// Serves as a common base class for the Server and UI application Configurations + /// + public class BaseApplicationConfiguration + { + public LogSeverity LogSeverity { get; set; } + public int HttpServerPortNumber { get; set; } + + public BaseApplicationConfiguration() + { + LogSeverity = LogSeverity.Info; + HttpServerPortNumber = 8096; + } + } +} diff --git a/MediaBrowser.Common/Json/JsonSerializer.cs b/MediaBrowser.Common/Json/JsonSerializer.cs index b7db1d9006..8e132c1528 100644 --- a/MediaBrowser.Common/Json/JsonSerializer.cs +++ b/MediaBrowser.Common/Json/JsonSerializer.cs @@ -7,15 +7,11 @@ namespace MediaBrowser.Common.Json { public static void SerializeToStream(T obj, Stream stream) { - Configure(); - ServiceStack.Text.JsonSerializer.SerializeToStream(obj, stream); } public static void SerializeToFile(T obj, string file) { - Configure(); - using (StreamWriter streamWriter = new StreamWriter(file)) { ServiceStack.Text.JsonSerializer.SerializeToWriter(obj, streamWriter); @@ -24,8 +20,6 @@ namespace MediaBrowser.Common.Json public static object DeserializeFromFile(Type type, string file) { - Configure(); - using (Stream stream = File.OpenRead(file)) { return ServiceStack.Text.JsonSerializer.DeserializeFromStream(type, stream); @@ -34,8 +28,6 @@ namespace MediaBrowser.Common.Json public static T DeserializeFromFile(string file) { - Configure(); - using (Stream stream = File.OpenRead(file)) { return ServiceStack.Text.JsonSerializer.DeserializeFromStream(stream); @@ -44,19 +36,15 @@ namespace MediaBrowser.Common.Json public static T DeserializeFromStream(Stream stream) { - Configure(); - return ServiceStack.Text.JsonSerializer.DeserializeFromStream(stream); } public static T DeserializeFromString(string data) { - Configure(); - return ServiceStack.Text.JsonSerializer.DeserializeFromString(data); } - private static void Configure() + public static void Configure() { ServiceStack.Text.JsConfig.ExcludeTypeInfo = true; ServiceStack.Text.JsConfig.IncludeNullValues = false; diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs index 820d94831a..0fdc1f8131 100644 --- a/MediaBrowser.Common/Kernel/BaseKernel.cs +++ b/MediaBrowser.Common/Kernel/BaseKernel.cs @@ -6,12 +6,12 @@ using System.Configuration; using System.IO; using System.Linq; using System.Reflection; -using MediaBrowser.Common.Json; +using MediaBrowser.Common.Configuration; +using MediaBrowser.Common.Logging; using MediaBrowser.Common.Net; using MediaBrowser.Common.Plugins; -using MediaBrowser.Logging; -using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Progress; +using MediaBrowser.Common.Json; namespace MediaBrowser.Common.Kernel { @@ -93,19 +93,21 @@ namespace MediaBrowser.Common.Kernel public virtual void Init(IProgress progress) { + JsonSerializer.Configure(); + ReloadLogger(); ReloadConfiguration(); ReloadHttpServer(); - + ReloadComposableParts(); } private void ReloadLogger() { DisposeLogger(); - + if (!Directory.Exists(LogDirectoryPath)) { Directory.CreateDirectory(LogDirectoryPath); @@ -115,8 +117,8 @@ namespace MediaBrowser.Common.Kernel LogFilePath = Path.Combine(LogDirectoryPath, now.ToString("dMyyyy") + "-" + now.Ticks + ".log"); - FileStream fs = new FileStream(LogFilePath, FileMode.Append, FileAccess.Write, FileShare.Read); - + FileStream fs = new FileStream(LogFilePath, FileMode.Append, FileAccess.Write, FileShare.Read); + Logger.LoggerInstance = new StreamLogger(fs); } diff --git a/MediaBrowser.Common/Logging/BaseLogger.cs b/MediaBrowser.Common/Logging/BaseLogger.cs new file mode 100644 index 0000000000..04c3b80977 --- /dev/null +++ b/MediaBrowser.Common/Logging/BaseLogger.cs @@ -0,0 +1,76 @@ +using System; +using System.Text; +using System.Threading; + +namespace MediaBrowser.Common.Logging +{ + public abstract class BaseLogger : IDisposable + { + public LogSeverity LogSeverity { get; set; } + + public void LogInfo(string message, params object[] paramList) + { + LogEntry(message, LogSeverity.Info, paramList); + } + + public void LogDebugInfo(string message, params object[] paramList) + { + LogEntry(message, LogSeverity.Debug, paramList); + } + + public void LogError(string message, params object[] paramList) + { + LogEntry(message, LogSeverity.Error, paramList); + } + + public void LogException(string message, Exception exception, params object[] paramList) + { + StringBuilder builder = new StringBuilder(); + + if (exception != null) + { + builder.AppendFormat("Exception. Type={0} Msg={1} StackTrace={3}{2}", + exception.GetType().FullName, + exception.Message, + exception.StackTrace, + Environment.NewLine); + } + + message = string.Format(message, paramList); + + LogError(string.Format("{0} ( {1} )", message, builder)); + } + + public void LogWarning(string message, params object[] paramList) + { + LogEntry(message, LogSeverity.Warning, paramList); + } + + private void LogEntry(string message, LogSeverity severity, params object[] paramList) + { + if (severity < LogSeverity) return; + + message = string.Format(message, paramList); + + Thread currentThread = Thread.CurrentThread; + + LogRow row = new LogRow() + { + Severity = severity, + Message = message, + Category = string.Empty, + ThreadId = currentThread.ManagedThreadId, + //ThreadName = currentThread.Name, + Time = DateTime.Now + }; + + LogEntry(row); + } + + public virtual void Dispose() + { + } + + protected abstract void LogEntry(LogRow row); + } +} diff --git a/MediaBrowser.Common/Logging/LogRow.cs b/MediaBrowser.Common/Logging/LogRow.cs new file mode 100644 index 0000000000..fda7142632 --- /dev/null +++ b/MediaBrowser.Common/Logging/LogRow.cs @@ -0,0 +1,40 @@ +using System; +using System.Text; + +namespace MediaBrowser.Common.Logging +{ + public struct LogRow + { + const string TimePattern = "h:mm:ss.fff tt d/M/yyyy"; + + public LogSeverity Severity { get; set; } + public string Message { get; set; } + public string Category { get; set; } + public int ThreadId { get; set; } + public string ThreadName { get; set; } + public DateTime Time { get; set; } + + public override string ToString() + { + StringBuilder builder = new StringBuilder(); + builder.Append(Time.ToString(TimePattern)) + .Append(" , ") + .Append(Enum.GetName(typeof(LogSeverity), Severity)) + .Append(" , ") + .Append(Encode(Message)) + .Append(" , ") + .Append(Encode(Category)) + .Append(" , ") + .Append(ThreadId) + .Append(" , ") + .Append(Encode(ThreadName)); + + return builder.ToString(); + } + + private string Encode(string str) + { + return (str ?? "").Replace(",", ",,").Replace(Environment.NewLine, " [n] "); + } + } +} diff --git a/MediaBrowser.Common/Logging/LogSeverity.cs b/MediaBrowser.Common/Logging/LogSeverity.cs new file mode 100644 index 0000000000..2abab1a448 --- /dev/null +++ b/MediaBrowser.Common/Logging/LogSeverity.cs @@ -0,0 +1,14 @@ +using System; + +namespace MediaBrowser.Common.Logging +{ + [Flags] + public enum LogSeverity + { + None = 0, + Debug = 1, + Info = 2, + Warning = 4, + Error = 8 + } +} diff --git a/MediaBrowser.Common/Logging/Logger.cs b/MediaBrowser.Common/Logging/Logger.cs new file mode 100644 index 0000000000..d1ae9b8f35 --- /dev/null +++ b/MediaBrowser.Common/Logging/Logger.cs @@ -0,0 +1,34 @@ +using System; + +namespace MediaBrowser.Common.Logging +{ + public static class Logger + { + public static BaseLogger LoggerInstance { get; set; } + + public static void LogInfo(string message, params object[] paramList) + { + LoggerInstance.LogInfo(message, paramList); + } + + public static void LogDebugInfo(string message, params object[] paramList) + { + LoggerInstance.LogDebugInfo(message, paramList); + } + + public static void LogError(string message, params object[] paramList) + { + LoggerInstance.LogError(message, paramList); + } + + public static void LogException(string message, Exception ex, params object[] paramList) + { + LoggerInstance.LogException(message, ex, paramList); + } + + public static void LogWarning(string message, params object[] paramList) + { + LoggerInstance.LogWarning(message, paramList); + } + } +} diff --git a/MediaBrowser.Common/Logging/StreamLogger.cs b/MediaBrowser.Common/Logging/StreamLogger.cs new file mode 100644 index 0000000000..058c7e69c5 --- /dev/null +++ b/MediaBrowser.Common/Logging/StreamLogger.cs @@ -0,0 +1,33 @@ +using System; +using System.IO; +using System.Text; + +namespace MediaBrowser.Common.Logging +{ + /// + /// Provides a Logger that can write to any Stream + /// + public class StreamLogger : BaseLogger + { + private Stream Stream { get; set; } + + public StreamLogger(Stream stream) + : base() + { + Stream = stream; + } + + protected override void LogEntry(LogRow row) + { + byte[] bytes = new UTF8Encoding().GetBytes(row.ToString() + Environment.NewLine); + Stream.Write(bytes, 0, bytes.Length); + Stream.Flush(); + } + + public override void Dispose() + { + base.Dispose(); + Stream.Dispose(); + } + } +} diff --git a/MediaBrowser.Common/MediaBrowser.Common.csproj b/MediaBrowser.Common/MediaBrowser.Common.csproj index bf9d17b78c..8c8146cdcb 100644 --- a/MediaBrowser.Common/MediaBrowser.Common.csproj +++ b/MediaBrowser.Common/MediaBrowser.Common.csproj @@ -48,10 +48,16 @@ + + + + + + @@ -67,10 +73,6 @@ - - {37032b77-fe2e-4ec5-b7e4-baf634443578} - MediaBrowser.Logging - {7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b} MediaBrowser.Model diff --git a/MediaBrowser.Common/Plugins/BasePlugin.cs b/MediaBrowser.Common/Plugins/BasePlugin.cs index 61ecffc758..98b6120f7e 100644 --- a/MediaBrowser.Common/Plugins/BasePlugin.cs +++ b/MediaBrowser.Common/Plugins/BasePlugin.cs @@ -1,8 +1,8 @@ using System; using System.IO; -using MediaBrowser.Common.Json; -using MediaBrowser.Model.Plugins; using MediaBrowser.Common.Kernel; +using MediaBrowser.Model.Plugins; +using MediaBrowser.Common.Json; namespace MediaBrowser.Common.Plugins { @@ -100,19 +100,6 @@ namespace MediaBrowser.Common.Plugins } } - public void ReloadConfiguration() - { - if (!File.Exists(ConfigurationPath)) - { - Configuration = Activator.CreateInstance(ConfigurationType) as BasePluginConfiguration; - } - else - { - Configuration = JsonSerializer.DeserializeFromFile(ConfigurationType, ConfigurationPath) as BasePluginConfiguration; - Configuration.DateLastModified = File.GetLastWriteTime(ConfigurationPath); - } - } - /// /// Starts the plugin. /// @@ -126,5 +113,18 @@ namespace MediaBrowser.Common.Plugins public virtual void Dispose() { } + + public void ReloadConfiguration() + { + if (!File.Exists(ConfigurationPath)) + { + Configuration = Activator.CreateInstance(ConfigurationType) as BasePluginConfiguration; + } + else + { + Configuration = JsonSerializer.DeserializeFromFile(ConfigurationType, ConfigurationPath) as BasePluginConfiguration; + Configuration.DateLastModified = File.GetLastWriteTime(ConfigurationPath); + } + } } } diff --git a/MediaBrowser.Controller/Configuration/ServerConfiguration.cs b/MediaBrowser.Controller/Configuration/ServerConfiguration.cs index e6f794595b..56f3a854fa 100644 --- a/MediaBrowser.Controller/Configuration/ServerConfiguration.cs +++ b/MediaBrowser.Controller/Configuration/ServerConfiguration.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using MediaBrowser.Common.Configuration; using MediaBrowser.Model.Configuration; namespace MediaBrowser.Controller.Configuration diff --git a/MediaBrowser.Controller/UserController.cs b/MediaBrowser.Controller/UserController.cs index 7fac4392e4..c53397a31b 100644 --- a/MediaBrowser.Controller/UserController.cs +++ b/MediaBrowser.Controller/UserController.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; using System.IO; -using MediaBrowser.Common.Json; using MediaBrowser.Model.Users; +using MediaBrowser.Common.Json; namespace MediaBrowser.Controller { diff --git a/MediaBrowser.Controller/Xml/BaseItemXmlParser.cs b/MediaBrowser.Controller/Xml/BaseItemXmlParser.cs index ed8afd5a70..d3a7c3bd74 100644 --- a/MediaBrowser.Controller/Xml/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Xml/BaseItemXmlParser.cs @@ -384,14 +384,14 @@ namespace MediaBrowser.Controller.Xml break; case "Duration": - item.RunTimeInSeconds = reader.ReadIntSafe() * 60; + item.RunTimeInMilliseconds = reader.ReadIntSafe() * 60000; break; case "DurationSeconds": int seconds = reader.ReadIntSafe(); if (seconds > 0) { - item.RunTimeInSeconds = seconds; + item.RunTimeInMilliseconds = seconds * 1000; } break; diff --git a/MediaBrowser.Logging/BaseLogger.cs b/MediaBrowser.Logging/BaseLogger.cs deleted file mode 100644 index d73b473930..0000000000 --- a/MediaBrowser.Logging/BaseLogger.cs +++ /dev/null @@ -1,76 +0,0 @@ -using System; -using System.Text; -using System.Threading; - -namespace MediaBrowser.Logging -{ - public abstract class BaseLogger : IDisposable - { - public LogSeverity LogSeverity { get; set; } - - public void LogInfo(string message, params object[] paramList) - { - LogEntry(message, LogSeverity.Info, paramList); - } - - public void LogDebugInfo(string message, params object[] paramList) - { - LogEntry(message, LogSeverity.Debug, paramList); - } - - public void LogError(string message, params object[] paramList) - { - LogEntry(message, LogSeverity.Error, paramList); - } - - public void LogException(string message, Exception exception, params object[] paramList) - { - StringBuilder builder = new StringBuilder(); - - if (exception != null) - { - builder.AppendFormat("Exception. Type={0} Msg={1} StackTrace={3}{2}", - exception.GetType().FullName, - exception.Message, - exception.StackTrace, - Environment.NewLine); - } - - message = string.Format(message, paramList); - - LogError(string.Format("{0} ( {1} )", message, builder)); - } - - public void LogWarning(string message, params object[] paramList) - { - LogEntry(message, LogSeverity.Warning, paramList); - } - - private void LogEntry(string message, LogSeverity severity, params object[] paramList) - { - if (severity < LogSeverity) return; - - message = string.Format(message, paramList); - - Thread currentThread = Thread.CurrentThread; - - LogRow row = new LogRow() - { - Severity = severity, - Message = message, - Category = string.Empty, - ThreadId = currentThread.ManagedThreadId, - //ThreadName = currentThread.Name, - Time = DateTime.Now - }; - - LogEntry(row); - } - - public virtual void Dispose() - { - } - - protected abstract void LogEntry(LogRow row); - } -} diff --git a/MediaBrowser.Logging/LogRow.cs b/MediaBrowser.Logging/LogRow.cs deleted file mode 100644 index da699035a2..0000000000 --- a/MediaBrowser.Logging/LogRow.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Text; - -namespace MediaBrowser.Logging -{ - public struct LogRow - { - const string TimePattern = "h:mm:ss.fff tt d/M/yyyy"; - - public LogSeverity Severity { get; set; } - public string Message { get; set; } - public string Category { get; set; } - public int ThreadId { get; set; } - public string ThreadName { get; set; } - public DateTime Time { get; set; } - - public override string ToString() - { - StringBuilder builder = new StringBuilder(); - builder.Append(Time.ToString(TimePattern)) - .Append(" , ") - .Append(Enum.GetName(typeof(LogSeverity), Severity)) - .Append(" , ") - .Append(Encode(Message)) - .Append(" , ") - .Append(Encode(Category)) - .Append(" , ") - .Append(ThreadId) - .Append(" , ") - .Append(Encode(ThreadName)); - - return builder.ToString(); - } - - private string Encode(string str) - { - return (str ?? "").Replace(",", ",,").Replace(Environment.NewLine, " [n] "); - } - } -} diff --git a/MediaBrowser.Logging/LogSeverity.cs b/MediaBrowser.Logging/LogSeverity.cs deleted file mode 100644 index 70c4f6304b..0000000000 --- a/MediaBrowser.Logging/LogSeverity.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace MediaBrowser.Logging -{ - [Flags] - public enum LogSeverity - { - None = 0, - Debug = 1, - Info = 2, - Warning = 4, - Error = 8 - } -} diff --git a/MediaBrowser.Logging/Logger.cs b/MediaBrowser.Logging/Logger.cs deleted file mode 100644 index db46010a41..0000000000 --- a/MediaBrowser.Logging/Logger.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; - -namespace MediaBrowser.Logging -{ - public static class Logger - { - public static BaseLogger LoggerInstance { get; set; } - - public static void LogInfo(string message, params object[] paramList) - { - LoggerInstance.LogInfo(message, paramList); - } - - public static void LogDebugInfo(string message, params object[] paramList) - { - LoggerInstance.LogDebugInfo(message, paramList); - } - - public static void LogError(string message, params object[] paramList) - { - LoggerInstance.LogError(message, paramList); - } - - public static void LogException(string message, Exception ex, params object[] paramList) - { - LoggerInstance.LogException(message, ex, paramList); - } - - public static void LogWarning(string message, params object[] paramList) - { - LoggerInstance.LogWarning(message, paramList); - } - } -} diff --git a/MediaBrowser.Logging/MediaBrowser.Logging.csproj b/MediaBrowser.Logging/MediaBrowser.Logging.csproj deleted file mode 100644 index 39840f71fd..0000000000 --- a/MediaBrowser.Logging/MediaBrowser.Logging.csproj +++ /dev/null @@ -1,53 +0,0 @@ - - - - - Debug - AnyCPU - {37032B77-FE2E-4EC5-B7E4-BAF634443578} - Library - Properties - MediaBrowser.Logging - MediaBrowser.Logging - v4.0 - Profile95 - 512 - {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/MediaBrowser.Logging/Properties/AssemblyInfo.cs b/MediaBrowser.Logging/Properties/AssemblyInfo.cs deleted file mode 100644 index fa0d3817d2..0000000000 --- a/MediaBrowser.Logging/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Resources; -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("MediaBrowser.Logging")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("MediaBrowser.Logging")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: NeutralResourcesLanguage("en")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/MediaBrowser.Logging/StreamLogger.cs b/MediaBrowser.Logging/StreamLogger.cs deleted file mode 100644 index c4ad7b80f6..0000000000 --- a/MediaBrowser.Logging/StreamLogger.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.IO; -using System.Text; - -namespace MediaBrowser.Logging -{ - /// - /// Provides a Logger that can write to any Stream - /// - public class StreamLogger : BaseLogger - { - private Stream Stream { get; set; } - - public StreamLogger(Stream stream) - : base() - { - Stream = stream; - } - - protected override void LogEntry(LogRow row) - { - byte[] bytes = new UTF8Encoding().GetBytes(row.ToString() + Environment.NewLine); - - Stream.Write(bytes, 0, bytes.Length); - Stream.Flush(); - } - - public override void Dispose() - { - base.Dispose(); - - Stream.Dispose(); - } - } -} diff --git a/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs b/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs deleted file mode 100644 index 2511377c15..0000000000 --- a/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs +++ /dev/null @@ -1,19 +0,0 @@ -using MediaBrowser.Logging; - -namespace MediaBrowser.Model.Configuration -{ - /// - /// Serves as a common base class for the Server and UI application Configurations - /// - public class BaseApplicationConfiguration - { - public LogSeverity LogSeverity { get; set; } - public int HttpServerPortNumber { get; set; } - - public BaseApplicationConfiguration() - { - LogSeverity = LogSeverity.Info; - HttpServerPortNumber = 8096; - } - } -} diff --git a/MediaBrowser.Model/Entities/BaseItem.cs b/MediaBrowser.Model/Entities/BaseItem.cs index 8a1ded03b9..6f346a1dd5 100644 --- a/MediaBrowser.Model/Entities/BaseItem.cs +++ b/MediaBrowser.Model/Entities/BaseItem.cs @@ -51,7 +51,7 @@ namespace MediaBrowser.Model.Entities public string DisplayMediaType { get; set; } public float? UserRating { get; set; } - public int? RunTimeInSeconds { get; set; } + public int? RunTimeInMilliseconds { get; set; } public string AspectRatio { get; set; } public int? ProductionYear { get; set; } diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj index 0157fcbf85..9485692d4b 100644 --- a/MediaBrowser.Model/MediaBrowser.Model.csproj +++ b/MediaBrowser.Model/MediaBrowser.Model.csproj @@ -10,7 +10,7 @@ MediaBrowser.Model MediaBrowser.Model v4.0 - Profile95 + Profile4 512 {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} @@ -32,14 +32,6 @@ 4 - - - {37032b77-fe2e-4ec5-b7e4-baf634443578} - MediaBrowser.Logging - - - - diff --git a/MediaBrowser.TV/Metadata/SeriesXmlParser.cs b/MediaBrowser.TV/Metadata/SeriesXmlParser.cs index d36e7ff4be..ecee288cc8 100644 --- a/MediaBrowser.TV/Metadata/SeriesXmlParser.cs +++ b/MediaBrowser.TV/Metadata/SeriesXmlParser.cs @@ -66,7 +66,7 @@ namespace MediaBrowser.TV.Metadata int runtime; if (int.TryParse(text.Split(' ')[0], out runtime)) { - item.RunTimeInSeconds = runtime * 60; + item.RunTimeInMilliseconds = runtime * 60000; } } break; diff --git a/MediaBrowser.sln b/MediaBrowser.sln index bebbc61afd..6f94baf31d 100644 --- a/MediaBrowser.sln +++ b/MediaBrowser.sln @@ -21,8 +21,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Common", "Medi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Model", "MediaBrowser.Model\MediaBrowser.Model.csproj", "{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Logging", "MediaBrowser.Logging\MediaBrowser.Logging.csproj", "{37032B77-FE2E-4EC5-B7E4-BAF634443578}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -37,10 +35,6 @@ Global {32DFC600-CD2F-4B2D-B39A-3B4C6C32F9B4}.Debug|Any CPU.Build.0 = Debug|Any CPU {32DFC600-CD2F-4B2D-B39A-3B4C6C32F9B4}.Release|Any CPU.ActiveCfg = Release|Any CPU {32DFC600-CD2F-4B2D-B39A-3B4C6C32F9B4}.Release|Any CPU.Build.0 = Release|Any CPU - {37032B77-FE2E-4EC5-B7E4-BAF634443578}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {37032B77-FE2E-4EC5-B7E4-BAF634443578}.Debug|Any CPU.Build.0 = Debug|Any CPU - {37032B77-FE2E-4EC5-B7E4-BAF634443578}.Release|Any CPU.ActiveCfg = Release|Any CPU - {37032B77-FE2E-4EC5-B7E4-BAF634443578}.Release|Any CPU.Build.0 = Release|Any CPU {4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|Any CPU.Build.0 = Debug|Any CPU {4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Any CPU.ActiveCfg = Release|Any CPU -- cgit v1.2.3 From e52833059bc819cbdb41ba204b82aee1760ddb3a Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Sun, 2 Sep 2012 09:45:02 -0400 Subject: Moved server configuration to the model so that the UI can read it --- .../HttpHandlers/ServerConfigurationHandler.cs | 15 ++ MediaBrowser.Api/MediaBrowser.Api.csproj | 1 + MediaBrowser.Api/Plugin.cs | 4 + MediaBrowser.ApiInteraction/ApiClient.cs | 18 +- .../Configuration/BaseApplicationConfiguration.cs | 19 -- .../Configuration/BaseApplicationPaths.cs | 132 ---------- MediaBrowser.Common/Kernel/BaseApplicationPaths.cs | 132 ++++++++++ MediaBrowser.Common/Kernel/BaseKernel.cs | 10 +- MediaBrowser.Common/MediaBrowser.Common.csproj | 3 +- MediaBrowser.Common/UI/BaseApplication.cs | 5 +- .../Configuration/ServerApplicationPaths.cs | 278 --------------------- .../Configuration/ServerConfiguration.cs | 10 - MediaBrowser.Controller/Kernel.cs | 2 +- .../MediaBrowser.Controller.csproj | 3 +- MediaBrowser.Controller/ServerApplicationPaths.cs | 278 +++++++++++++++++++++ .../Configuration/BaseApplicationConfiguration.cs | 17 ++ .../Configuration/ServerConfiguration.cs | 9 + MediaBrowser.Model/MediaBrowser.Model.csproj | 2 + 18 files changed, 483 insertions(+), 455 deletions(-) create mode 100644 MediaBrowser.Api/HttpHandlers/ServerConfigurationHandler.cs delete mode 100644 MediaBrowser.Common/Configuration/BaseApplicationConfiguration.cs delete mode 100644 MediaBrowser.Common/Configuration/BaseApplicationPaths.cs create mode 100644 MediaBrowser.Common/Kernel/BaseApplicationPaths.cs delete mode 100644 MediaBrowser.Controller/Configuration/ServerApplicationPaths.cs delete mode 100644 MediaBrowser.Controller/Configuration/ServerConfiguration.cs create mode 100644 MediaBrowser.Controller/ServerApplicationPaths.cs create mode 100644 MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs create mode 100644 MediaBrowser.Model/Configuration/ServerConfiguration.cs (limited to 'MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs') diff --git a/MediaBrowser.Api/HttpHandlers/ServerConfigurationHandler.cs b/MediaBrowser.Api/HttpHandlers/ServerConfigurationHandler.cs new file mode 100644 index 0000000000..175876b4ca --- /dev/null +++ b/MediaBrowser.Api/HttpHandlers/ServerConfigurationHandler.cs @@ -0,0 +1,15 @@ +using System.Threading.Tasks; +using MediaBrowser.Common.Net.Handlers; +using MediaBrowser.Controller; +using MediaBrowser.Model.Configuration; + +namespace MediaBrowser.Api.HttpHandlers +{ + class ServerConfigurationHandler : BaseSerializationHandler + { + protected override Task GetObjectToSerialize() + { + return Task.FromResult(Kernel.Instance.Configuration); + } + } +} diff --git a/MediaBrowser.Api/MediaBrowser.Api.csproj b/MediaBrowser.Api/MediaBrowser.Api.csproj index 5d32210938..89bb5adc91 100644 --- a/MediaBrowser.Api/MediaBrowser.Api.csproj +++ b/MediaBrowser.Api/MediaBrowser.Api.csproj @@ -65,6 +65,7 @@ + diff --git a/MediaBrowser.Api/Plugin.cs b/MediaBrowser.Api/Plugin.cs index 467b30ef15..f13b9efb33 100644 --- a/MediaBrowser.Api/Plugin.cs +++ b/MediaBrowser.Api/Plugin.cs @@ -105,6 +105,10 @@ namespace MediaBrowser.Api { return new WeatherHandler(); } + else if (localPath.EndsWith("/api/cerverconfiguration", StringComparison.OrdinalIgnoreCase)) + { + return new ServerConfigurationHandler(); + } return null; } diff --git a/MediaBrowser.ApiInteraction/ApiClient.cs b/MediaBrowser.ApiInteraction/ApiClient.cs index 99af250ca8..922b4bb0c9 100644 --- a/MediaBrowser.ApiInteraction/ApiClient.cs +++ b/MediaBrowser.ApiInteraction/ApiClient.cs @@ -4,6 +4,7 @@ using System.IO; using System.Net; using System.Net.Http; using System.Threading.Tasks; +using MediaBrowser.Model.Configuration; using MediaBrowser.Model.DTO; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Weather; @@ -568,7 +569,20 @@ namespace MediaBrowser.ApiInteraction /// /// Gets weather information for the default location as set in configuration /// - public async Task GetWeatherInfo() + public async Task GetServerConfigurationAsync() + { + string url = ApiUrl + "/ServerConfiguration"; + + using (Stream stream = await GetSerializedStreamAsync(url).ConfigureAwait(false)) + { + return DeserializeFromStream(stream); + } + } + + /// + /// Gets weather information for the default location as set in configuration + /// + public async Task GetWeatherInfoAsync() { string url = ApiUrl + "/weather"; @@ -581,7 +595,7 @@ namespace MediaBrowser.ApiInteraction /// /// Gets weather information for a specific zip code /// - public async Task GetWeatherInfo(string zipCode) + public async Task GetWeatherInfoAsync(string zipCode) { string url = ApiUrl + "/weather?zipcode=" + zipCode; diff --git a/MediaBrowser.Common/Configuration/BaseApplicationConfiguration.cs b/MediaBrowser.Common/Configuration/BaseApplicationConfiguration.cs deleted file mode 100644 index 7ed782bdb1..0000000000 --- a/MediaBrowser.Common/Configuration/BaseApplicationConfiguration.cs +++ /dev/null @@ -1,19 +0,0 @@ -using MediaBrowser.Common.Logging; - -namespace MediaBrowser.Common.Configuration -{ - /// - /// Serves as a common base class for the Server and UI application Configurations - /// - public class BaseApplicationConfiguration - { - public LogSeverity LogSeverity { get; set; } - public int HttpServerPortNumber { get; set; } - - public BaseApplicationConfiguration() - { - LogSeverity = LogSeverity.Info; - HttpServerPortNumber = 8096; - } - } -} diff --git a/MediaBrowser.Common/Configuration/BaseApplicationPaths.cs b/MediaBrowser.Common/Configuration/BaseApplicationPaths.cs deleted file mode 100644 index d030da844c..0000000000 --- a/MediaBrowser.Common/Configuration/BaseApplicationPaths.cs +++ /dev/null @@ -1,132 +0,0 @@ -using System.Configuration; -using System.IO; -using System.Reflection; - -namespace MediaBrowser.Common.Configuration -{ - /// - /// Provides a base class to hold common application paths used by both the UI and Server. - /// This can be subclassed to add application-specific paths. - /// - public abstract class BaseApplicationPaths - { - private string _programDataPath; - /// - /// Gets the path to the program data folder - /// - public string ProgramDataPath - { - get - { - if (_programDataPath == null) - { - _programDataPath = GetProgramDataPath(); - } - return _programDataPath; - } - } - - private string _pluginsPath; - /// - /// Gets the path to the plugin directory - /// - public string PluginsPath - { - get - { - if (_pluginsPath == null) - { - _pluginsPath = Path.Combine(ProgramDataPath, "plugins"); - if (!Directory.Exists(_pluginsPath)) - { - Directory.CreateDirectory(_pluginsPath); - } - } - - return _pluginsPath; - } - } - - private string _logDirectoryPath; - /// - /// Gets the path to the log directory - /// - public string LogDirectoryPath - { - get - { - if (_logDirectoryPath == null) - { - _logDirectoryPath = Path.Combine(ProgramDataPath, "logs"); - if (!Directory.Exists(_logDirectoryPath)) - { - Directory.CreateDirectory(_logDirectoryPath); - } - } - return _logDirectoryPath; - } - } - - private string _configurationDirectoryPath; - /// - /// Gets the path to the application configuration root directory - /// - public string ConfigurationDirectoryPath - { - get - { - if (_configurationDirectoryPath == null) - { - _configurationDirectoryPath = Path.Combine(ProgramDataPath, "config"); - if (!Directory.Exists(_configurationDirectoryPath)) - { - Directory.CreateDirectory(_configurationDirectoryPath); - } - } - return _configurationDirectoryPath; - } - } - - private string _systemConfigurationFilePath; - /// - /// Gets the path to the system configuration file - /// - public string SystemConfigurationFilePath - { - get - { - if (_systemConfigurationFilePath == null) - { - _systemConfigurationFilePath = Path.Combine(ConfigurationDirectoryPath, "system.xml"); - } - return _systemConfigurationFilePath; - } - } - - /// - /// Gets the path to the application's ProgramDataFolder - /// - private static string GetProgramDataPath() - { - string programDataPath = ConfigurationManager.AppSettings["ProgramDataPath"]; - - // If it's a relative path, e.g. "..\" - if (!Path.IsPathRooted(programDataPath)) - { - string path = Assembly.GetExecutingAssembly().Location; - path = Path.GetDirectoryName(path); - - programDataPath = Path.Combine(path, programDataPath); - - programDataPath = Path.GetFullPath(programDataPath); - } - - if (!Directory.Exists(programDataPath)) - { - Directory.CreateDirectory(programDataPath); - } - - return programDataPath; - } - } -} diff --git a/MediaBrowser.Common/Kernel/BaseApplicationPaths.cs b/MediaBrowser.Common/Kernel/BaseApplicationPaths.cs new file mode 100644 index 0000000000..3c394680f6 --- /dev/null +++ b/MediaBrowser.Common/Kernel/BaseApplicationPaths.cs @@ -0,0 +1,132 @@ +using System.Configuration; +using System.IO; +using System.Reflection; + +namespace MediaBrowser.Common.Kernel +{ + /// + /// Provides a base class to hold common application paths used by both the UI and Server. + /// This can be subclassed to add application-specific paths. + /// + public abstract class BaseApplicationPaths + { + private string _programDataPath; + /// + /// Gets the path to the program data folder + /// + public string ProgramDataPath + { + get + { + if (_programDataPath == null) + { + _programDataPath = GetProgramDataPath(); + } + return _programDataPath; + } + } + + private string _pluginsPath; + /// + /// Gets the path to the plugin directory + /// + public string PluginsPath + { + get + { + if (_pluginsPath == null) + { + _pluginsPath = Path.Combine(ProgramDataPath, "plugins"); + if (!Directory.Exists(_pluginsPath)) + { + Directory.CreateDirectory(_pluginsPath); + } + } + + return _pluginsPath; + } + } + + private string _logDirectoryPath; + /// + /// Gets the path to the log directory + /// + public string LogDirectoryPath + { + get + { + if (_logDirectoryPath == null) + { + _logDirectoryPath = Path.Combine(ProgramDataPath, "logs"); + if (!Directory.Exists(_logDirectoryPath)) + { + Directory.CreateDirectory(_logDirectoryPath); + } + } + return _logDirectoryPath; + } + } + + private string _configurationDirectoryPath; + /// + /// Gets the path to the application configuration root directory + /// + public string ConfigurationDirectoryPath + { + get + { + if (_configurationDirectoryPath == null) + { + _configurationDirectoryPath = Path.Combine(ProgramDataPath, "config"); + if (!Directory.Exists(_configurationDirectoryPath)) + { + Directory.CreateDirectory(_configurationDirectoryPath); + } + } + return _configurationDirectoryPath; + } + } + + private string _systemConfigurationFilePath; + /// + /// Gets the path to the system configuration file + /// + public string SystemConfigurationFilePath + { + get + { + if (_systemConfigurationFilePath == null) + { + _systemConfigurationFilePath = Path.Combine(ConfigurationDirectoryPath, "system.xml"); + } + return _systemConfigurationFilePath; + } + } + + /// + /// Gets the path to the application's ProgramDataFolder + /// + private static string GetProgramDataPath() + { + string programDataPath = ConfigurationManager.AppSettings["ProgramDataPath"]; + + // If it's a relative path, e.g. "..\" + if (!Path.IsPathRooted(programDataPath)) + { + string path = Assembly.GetExecutingAssembly().Location; + path = Path.GetDirectoryName(path); + + programDataPath = Path.Combine(path, programDataPath); + + programDataPath = Path.GetFullPath(programDataPath); + } + + if (!Directory.Exists(programDataPath)) + { + Directory.CreateDirectory(programDataPath); + } + + return programDataPath; + } + } +} diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs index 5ba68cf4eb..44569cbadf 100644 --- a/MediaBrowser.Common/Kernel/BaseKernel.cs +++ b/MediaBrowser.Common/Kernel/BaseKernel.cs @@ -6,11 +6,11 @@ using System.IO; using System.Linq; using System.Reflection; using System.Threading.Tasks; -using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Logging; using MediaBrowser.Common.Net; using MediaBrowser.Common.Plugins; using MediaBrowser.Common.Serialization; +using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Progress; namespace MediaBrowser.Common.Kernel @@ -93,17 +93,17 @@ namespace MediaBrowser.Common.Kernel protected void ReloadComposableParts() { DisposeComposableParts(); - + // Gets all plugin assemblies by first reading all bytes of the .dll and calling Assembly.Load against that // This will prevent the .dll file from getting locked, and allow us to replace it when needed IEnumerable pluginAssemblies = Directory.GetFiles(ApplicationPaths.PluginsPath, "*.dll", SearchOption.AllDirectories).Select(f => Assembly.Load(File.ReadAllBytes((f)))); var catalog = new AggregateCatalog(pluginAssemblies.Select(a => new AssemblyCatalog(a))); - + // Include composable parts in the Common assembly // Uncomment this if it's ever needed //catalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly())); - + // Include composable parts in the subclass assembly catalog.Catalogs.Add(new AssemblyCatalog(GetType().Assembly)); @@ -171,7 +171,7 @@ namespace MediaBrowser.Common.Kernel Configuration = XmlSerializer.DeserializeFromFile(ApplicationPaths.SystemConfigurationFilePath); } - Logger.LoggerInstance.LogSeverity = Configuration.LogSeverity; + Logger.LoggerInstance.LogSeverity = Configuration.EnableDebugLevelLogging ? LogSeverity.Debug : LogSeverity.Info; } /// diff --git a/MediaBrowser.Common/MediaBrowser.Common.csproj b/MediaBrowser.Common/MediaBrowser.Common.csproj index d80303d1f8..841eccf736 100644 --- a/MediaBrowser.Common/MediaBrowser.Common.csproj +++ b/MediaBrowser.Common/MediaBrowser.Common.csproj @@ -74,8 +74,7 @@ - - + diff --git a/MediaBrowser.Common/UI/BaseApplication.cs b/MediaBrowser.Common/UI/BaseApplication.cs index fb771f1e3c..2112be6792 100644 --- a/MediaBrowser.Common/UI/BaseApplication.cs +++ b/MediaBrowser.Common/UI/BaseApplication.cs @@ -1,13 +1,10 @@ using System; -using System.IO; -using System.Threading.Tasks; +using System.Reflection; using System.Windows; -using System.Windows.Controls; using System.Windows.Media.Imaging; using MediaBrowser.Common.Kernel; using MediaBrowser.Common.Logging; using MediaBrowser.Model.Progress; -using System.Reflection; namespace MediaBrowser.Common.UI { diff --git a/MediaBrowser.Controller/Configuration/ServerApplicationPaths.cs b/MediaBrowser.Controller/Configuration/ServerApplicationPaths.cs deleted file mode 100644 index 92283ab25f..0000000000 --- a/MediaBrowser.Controller/Configuration/ServerApplicationPaths.cs +++ /dev/null @@ -1,278 +0,0 @@ -using System.IO; -using MediaBrowser.Common.Configuration; - -namespace MediaBrowser.Controller.Configuration -{ - /// - /// Extends BaseApplicationPaths to add paths that are only applicable on the server - /// - public class ServerApplicationPaths : BaseApplicationPaths - { - private string _rootFolderPath; - /// - /// Gets the path to the root media directory - /// - public string RootFolderPath - { - get - { - if (_rootFolderPath == null) - { - _rootFolderPath = Path.Combine(ProgramDataPath, "root"); - if (!Directory.Exists(_rootFolderPath)) - { - Directory.CreateDirectory(_rootFolderPath); - } - } - return _rootFolderPath; - } - } - - private string _ibnPath; - /// - /// Gets the path to the Images By Name directory - /// - public string ImagesByNamePath - { - get - { - if (_ibnPath == null) - { - _ibnPath = Path.Combine(ProgramDataPath, "ImagesByName"); - if (!Directory.Exists(_ibnPath)) - { - Directory.CreateDirectory(_ibnPath); - } - } - - return _ibnPath; - } - } - - private string _PeoplePath; - /// - /// Gets the path to the People directory - /// - public string PeoplePath - { - get - { - if (_PeoplePath == null) - { - _PeoplePath = Path.Combine(ImagesByNamePath, "People"); - if (!Directory.Exists(_PeoplePath)) - { - Directory.CreateDirectory(_PeoplePath); - } - } - - return _PeoplePath; - } - } - - private string _GenrePath; - /// - /// Gets the path to the Genre directory - /// - public string GenrePath - { - get - { - if (_GenrePath == null) - { - _GenrePath = Path.Combine(ImagesByNamePath, "Genre"); - if (!Directory.Exists(_GenrePath)) - { - Directory.CreateDirectory(_GenrePath); - } - } - - return _GenrePath; - } - } - - private string _StudioPath; - /// - /// Gets the path to the Studio directory - /// - public string StudioPath - { - get - { - if (_StudioPath == null) - { - _StudioPath = Path.Combine(ImagesByNamePath, "Studio"); - if (!Directory.Exists(_StudioPath)) - { - Directory.CreateDirectory(_StudioPath); - } - } - - return _StudioPath; - } - } - - private string _yearPath; - /// - /// Gets the path to the Year directory - /// - public string YearPath - { - get - { - if (_yearPath == null) - { - _yearPath = Path.Combine(ImagesByNamePath, "Year"); - if (!Directory.Exists(_yearPath)) - { - Directory.CreateDirectory(_yearPath); - } - } - - return _yearPath; - } - } - - private string _userConfigurationDirectoryPath; - /// - /// Gets the path to the user configuration directory - /// - public string UserConfigurationDirectoryPath - { - get - { - if (_userConfigurationDirectoryPath == null) - { - _userConfigurationDirectoryPath = Path.Combine(ConfigurationDirectoryPath, "user"); - if (!Directory.Exists(_userConfigurationDirectoryPath)) - { - Directory.CreateDirectory(_userConfigurationDirectoryPath); - } - } - return _userConfigurationDirectoryPath; - } - } - - private string _CacheDirectory = null; - /// - /// Gets the folder path to the cache directory - /// - public string CacheDirectory - { - get - { - if (_CacheDirectory == null) - { - _CacheDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.ProgramDataPath, "cache"); - - if (!Directory.Exists(_CacheDirectory)) - { - Directory.CreateDirectory(_CacheDirectory); - } - } - - return _CacheDirectory; - } - } - - private string _FFProbeAudioCacheDirectory = null; - /// - /// Gets the folder path to the ffprobe audio cache directory - /// - public string FFProbeAudioCacheDirectory - { - get - { - if (_FFProbeAudioCacheDirectory == null) - { - _FFProbeAudioCacheDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.CacheDirectory, "ffprobe-audio"); - - if (!Directory.Exists(_FFProbeAudioCacheDirectory)) - { - Directory.CreateDirectory(_FFProbeAudioCacheDirectory); - } - } - - return _FFProbeAudioCacheDirectory; - } - } - - private string _FFProbeVideoCacheDirectory = null; - /// - /// Gets the folder path to the ffprobe video cache directory - /// - public string FFProbeVideoCacheDirectory - { - get - { - if (_FFProbeVideoCacheDirectory == null) - { - _FFProbeVideoCacheDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.CacheDirectory, "ffprobe-video"); - - if (!Directory.Exists(_FFProbeVideoCacheDirectory)) - { - Directory.CreateDirectory(_FFProbeVideoCacheDirectory); - } - } - - return _FFProbeVideoCacheDirectory; - } - } - - private string _FFMpegDirectory = null; - /// - /// Gets the folder path to ffmpeg - /// - public string FFMpegDirectory - { - get - { - if (_FFMpegDirectory == null) - { - _FFMpegDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.ProgramDataPath, "FFMpeg"); - - if (!Directory.Exists(_FFMpegDirectory)) - { - Directory.CreateDirectory(_FFMpegDirectory); - } - } - - return _FFMpegDirectory; - } - } - - private string _FFMpegPath = null; - /// - /// Gets the path to ffmpeg.exe - /// - public string FFMpegPath - { - get - { - if (_FFMpegPath == null) - { - _FFMpegPath = Path.Combine(FFMpegDirectory, "ffmpeg.exe"); - } - - return _FFMpegPath; - } - } - - private string _FFProbePath = null; - /// - /// Gets the path to ffprobe.exe - /// - public string FFProbePath - { - get - { - if (_FFProbePath == null) - { - _FFProbePath = Path.Combine(FFMpegDirectory, "ffprobe.exe"); - } - - return _FFProbePath; - } - } - } -} diff --git a/MediaBrowser.Controller/Configuration/ServerConfiguration.cs b/MediaBrowser.Controller/Configuration/ServerConfiguration.cs deleted file mode 100644 index 368c8ef371..0000000000 --- a/MediaBrowser.Controller/Configuration/ServerConfiguration.cs +++ /dev/null @@ -1,10 +0,0 @@ -using MediaBrowser.Common.Configuration; - -namespace MediaBrowser.Controller.Configuration -{ - public class ServerConfiguration : BaseApplicationConfiguration - { - public bool EnableInternetProviders { get; set; } - public string WeatherZipCode { get; set; } - } -} diff --git a/MediaBrowser.Controller/Kernel.cs b/MediaBrowser.Controller/Kernel.cs index 1a161ccc98..32f4a58285 100644 --- a/MediaBrowser.Controller/Kernel.cs +++ b/MediaBrowser.Controller/Kernel.cs @@ -9,12 +9,12 @@ using System.Text; using System.Threading.Tasks; using MediaBrowser.Common.Kernel; using MediaBrowser.Common.Logging; -using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Resolvers; using MediaBrowser.Controller.Weather; +using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Progress; diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index f72202fea8..1547deea21 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -58,8 +58,7 @@ - - + diff --git a/MediaBrowser.Controller/ServerApplicationPaths.cs b/MediaBrowser.Controller/ServerApplicationPaths.cs new file mode 100644 index 0000000000..0f4932fd04 --- /dev/null +++ b/MediaBrowser.Controller/ServerApplicationPaths.cs @@ -0,0 +1,278 @@ +using System.IO; +using MediaBrowser.Common.Kernel; + +namespace MediaBrowser.Controller +{ + /// + /// Extends BaseApplicationPaths to add paths that are only applicable on the server + /// + public class ServerApplicationPaths : BaseApplicationPaths + { + private string _rootFolderPath; + /// + /// Gets the path to the root media directory + /// + public string RootFolderPath + { + get + { + if (_rootFolderPath == null) + { + _rootFolderPath = Path.Combine(ProgramDataPath, "root"); + if (!Directory.Exists(_rootFolderPath)) + { + Directory.CreateDirectory(_rootFolderPath); + } + } + return _rootFolderPath; + } + } + + private string _ibnPath; + /// + /// Gets the path to the Images By Name directory + /// + public string ImagesByNamePath + { + get + { + if (_ibnPath == null) + { + _ibnPath = Path.Combine(ProgramDataPath, "ImagesByName"); + if (!Directory.Exists(_ibnPath)) + { + Directory.CreateDirectory(_ibnPath); + } + } + + return _ibnPath; + } + } + + private string _PeoplePath; + /// + /// Gets the path to the People directory + /// + public string PeoplePath + { + get + { + if (_PeoplePath == null) + { + _PeoplePath = Path.Combine(ImagesByNamePath, "People"); + if (!Directory.Exists(_PeoplePath)) + { + Directory.CreateDirectory(_PeoplePath); + } + } + + return _PeoplePath; + } + } + + private string _GenrePath; + /// + /// Gets the path to the Genre directory + /// + public string GenrePath + { + get + { + if (_GenrePath == null) + { + _GenrePath = Path.Combine(ImagesByNamePath, "Genre"); + if (!Directory.Exists(_GenrePath)) + { + Directory.CreateDirectory(_GenrePath); + } + } + + return _GenrePath; + } + } + + private string _StudioPath; + /// + /// Gets the path to the Studio directory + /// + public string StudioPath + { + get + { + if (_StudioPath == null) + { + _StudioPath = Path.Combine(ImagesByNamePath, "Studio"); + if (!Directory.Exists(_StudioPath)) + { + Directory.CreateDirectory(_StudioPath); + } + } + + return _StudioPath; + } + } + + private string _yearPath; + /// + /// Gets the path to the Year directory + /// + public string YearPath + { + get + { + if (_yearPath == null) + { + _yearPath = Path.Combine(ImagesByNamePath, "Year"); + if (!Directory.Exists(_yearPath)) + { + Directory.CreateDirectory(_yearPath); + } + } + + return _yearPath; + } + } + + private string _userConfigurationDirectoryPath; + /// + /// Gets the path to the user configuration directory + /// + public string UserConfigurationDirectoryPath + { + get + { + if (_userConfigurationDirectoryPath == null) + { + _userConfigurationDirectoryPath = Path.Combine(ConfigurationDirectoryPath, "user"); + if (!Directory.Exists(_userConfigurationDirectoryPath)) + { + Directory.CreateDirectory(_userConfigurationDirectoryPath); + } + } + return _userConfigurationDirectoryPath; + } + } + + private string _CacheDirectory = null; + /// + /// Gets the folder path to the cache directory + /// + public string CacheDirectory + { + get + { + if (_CacheDirectory == null) + { + _CacheDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.ProgramDataPath, "cache"); + + if (!Directory.Exists(_CacheDirectory)) + { + Directory.CreateDirectory(_CacheDirectory); + } + } + + return _CacheDirectory; + } + } + + private string _FFProbeAudioCacheDirectory = null; + /// + /// Gets the folder path to the ffprobe audio cache directory + /// + public string FFProbeAudioCacheDirectory + { + get + { + if (_FFProbeAudioCacheDirectory == null) + { + _FFProbeAudioCacheDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.CacheDirectory, "ffprobe-audio"); + + if (!Directory.Exists(_FFProbeAudioCacheDirectory)) + { + Directory.CreateDirectory(_FFProbeAudioCacheDirectory); + } + } + + return _FFProbeAudioCacheDirectory; + } + } + + private string _FFProbeVideoCacheDirectory = null; + /// + /// Gets the folder path to the ffprobe video cache directory + /// + public string FFProbeVideoCacheDirectory + { + get + { + if (_FFProbeVideoCacheDirectory == null) + { + _FFProbeVideoCacheDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.CacheDirectory, "ffprobe-video"); + + if (!Directory.Exists(_FFProbeVideoCacheDirectory)) + { + Directory.CreateDirectory(_FFProbeVideoCacheDirectory); + } + } + + return _FFProbeVideoCacheDirectory; + } + } + + private string _FFMpegDirectory = null; + /// + /// Gets the folder path to ffmpeg + /// + public string FFMpegDirectory + { + get + { + if (_FFMpegDirectory == null) + { + _FFMpegDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.ProgramDataPath, "FFMpeg"); + + if (!Directory.Exists(_FFMpegDirectory)) + { + Directory.CreateDirectory(_FFMpegDirectory); + } + } + + return _FFMpegDirectory; + } + } + + private string _FFMpegPath = null; + /// + /// Gets the path to ffmpeg.exe + /// + public string FFMpegPath + { + get + { + if (_FFMpegPath == null) + { + _FFMpegPath = Path.Combine(FFMpegDirectory, "ffmpeg.exe"); + } + + return _FFMpegPath; + } + } + + private string _FFProbePath = null; + /// + /// Gets the path to ffprobe.exe + /// + public string FFProbePath + { + get + { + if (_FFProbePath == null) + { + _FFProbePath = Path.Combine(FFMpegDirectory, "ffprobe.exe"); + } + + return _FFProbePath; + } + } + } +} diff --git a/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs b/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs new file mode 100644 index 0000000000..17be9eaef6 --- /dev/null +++ b/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs @@ -0,0 +1,17 @@ + +namespace MediaBrowser.Model.Configuration +{ + /// + /// Serves as a common base class for the Server and UI application Configurations + /// + public class BaseApplicationConfiguration + { + public bool EnableDebugLevelLogging { get; set; } + public int HttpServerPortNumber { get; set; } + + public BaseApplicationConfiguration() + { + HttpServerPortNumber = 8096; + } + } +} diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs new file mode 100644 index 0000000000..97b88a5d9b --- /dev/null +++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs @@ -0,0 +1,9 @@ + +namespace MediaBrowser.Model.Configuration +{ + public class ServerConfiguration : BaseApplicationConfiguration + { + public bool EnableInternetProviders { get; set; } + public string WeatherZipCode { get; set; } + } +} diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj index dabc6864ca..b91e7ea173 100644 --- a/MediaBrowser.Model/MediaBrowser.Model.csproj +++ b/MediaBrowser.Model/MediaBrowser.Model.csproj @@ -32,6 +32,8 @@ 4 + + -- cgit v1.2.3 From 50f88997bab58f4cfcbd3f420521776a54eb372d Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Sat, 8 Sep 2012 16:25:56 -0400 Subject: Added protobuf support for serializing ServerConfiguration --- MediaBrowser.ApiInteraction.Portable/ApiClient.cs | 5 +---- MediaBrowser.ApiInteraction/BaseHttpApiClient.cs | 7 ++----- .../Configuration/BaseApplicationConfiguration.cs | 9 ++++++++- MediaBrowser.Model/Configuration/ServerConfiguration.cs | 11 +++++++++++ 4 files changed, 22 insertions(+), 10 deletions(-) (limited to 'MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs') diff --git a/MediaBrowser.ApiInteraction.Portable/ApiClient.cs b/MediaBrowser.ApiInteraction.Portable/ApiClient.cs index cbd179b02e..eef73dd874 100644 --- a/MediaBrowser.ApiInteraction.Portable/ApiClient.cs +++ b/MediaBrowser.ApiInteraction.Portable/ApiClient.cs @@ -269,10 +269,7 @@ namespace MediaBrowser.ApiInteraction.Portable { string url = ApiUrl + "/ServerConfiguration"; - // At the moment this can't be retrieved in protobuf format - SerializationFormats format = DataSerializer.CanDeSerializeJsv ? SerializationFormats.Jsv : SerializationFormats.Json; - - GetDataAsync(url, callback, format); + GetDataAsync(url, callback); } /// diff --git a/MediaBrowser.ApiInteraction/BaseHttpApiClient.cs b/MediaBrowser.ApiInteraction/BaseHttpApiClient.cs index f298e1f7ec..c3871514e9 100644 --- a/MediaBrowser.ApiInteraction/BaseHttpApiClient.cs +++ b/MediaBrowser.ApiInteraction/BaseHttpApiClient.cs @@ -313,12 +313,9 @@ namespace MediaBrowser.ApiInteraction { string url = ApiUrl + "/ServerConfiguration"; - // At the moment this can't be retrieved in protobuf format - SerializationFormats format = DataSerializer.CanDeSerializeJsv ? SerializationFormats.Jsv : SerializationFormats.Json; - - using (Stream stream = await GetSerializedStreamAsync(url, format).ConfigureAwait(false)) + using (Stream stream = await GetSerializedStreamAsync(url).ConfigureAwait(false)) { - return DataSerializer.DeserializeFromStream(stream, format); + return DeserializeFromStream(stream); } } diff --git a/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs b/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs index 17be9eaef6..41eb1da2c8 100644 --- a/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs +++ b/MediaBrowser.Model/Configuration/BaseApplicationConfiguration.cs @@ -1,12 +1,19 @@ - +using ProtoBuf; + namespace MediaBrowser.Model.Configuration { /// /// Serves as a common base class for the Server and UI application Configurations + /// ProtoInclude tells Protobuf about subclasses, + /// The number 50 can be any number, so long as it doesn't clash with any of the ProtoMember numbers either here or in subclasses. /// + [ProtoContract, ProtoInclude(50, typeof(ServerConfiguration))] public class BaseApplicationConfiguration { + [ProtoMember(1)] public bool EnableDebugLevelLogging { get; set; } + + [ProtoMember(2)] public int HttpServerPortNumber { get; set; } public BaseApplicationConfiguration() diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs index c229ca5568..5bcd09ef00 100644 --- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs +++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs @@ -1,13 +1,24 @@ using MediaBrowser.Model.Weather; +using ProtoBuf; namespace MediaBrowser.Model.Configuration { + /// + /// Represents the server configuration. + /// + [ProtoContract] public class ServerConfiguration : BaseApplicationConfiguration { + [ProtoMember(3)] public bool EnableInternetProviders { get; set; } + + [ProtoMember(4)] public bool EnableUserProfiles { get; set; } + [ProtoMember(5)] public string WeatherZipCode { get; set; } + + [ProtoMember(6)] public WeatherUnits WeatherUnit { get; set; } public ServerConfiguration() -- cgit v1.2.3