Bläddra i källkod

update browser launcher

Luke Pulverenti 9 år sedan
förälder
incheckning
ebf0eeb3bd

+ 3 - 1
MediaBrowser.Controller/IServerApplicationHost.cs

@@ -12,7 +12,7 @@ namespace MediaBrowser.Controller
     public interface IServerApplicationHost : IApplicationHost
     {
         event EventHandler HasUpdateAvailableChanged;
-        
+
         /// <summary>
         /// Gets the system info.
         /// </summary>
@@ -86,5 +86,7 @@ namespace MediaBrowser.Controller
         /// <param name="ipAddress">The ip address.</param>
         /// <returns>System.String.</returns>
         string GetLocalApiUrl(IPAddress ipAddress);
+
+        void LaunchUrl(string url);
     }
 }

+ 5 - 0
MediaBrowser.Server.Mono/Native/BaseMonoApp.cs

@@ -222,6 +222,11 @@ namespace MediaBrowser.Server.Mono.Native
             return GetInfo(Environment);
         }
 
+        public void LaunchUrl(string url)
+        {
+            throw new NotImplementedException();
+        }
+
         public static FFMpegInstallInfo GetInfo(NativeEnvironment environment)
         {
             var info = new FFMpegInstallInfo();

+ 5 - 0
MediaBrowser.Server.Startup.Common/ApplicationHost.cs

@@ -1404,5 +1404,10 @@ namespace MediaBrowser.Server.Startup.Common
                 return externalDns;
             }
         }
+
+        public void LaunchUrl(string url)
+        {
+            NativeApp.LaunchUrl(url);
+        }
     }
 }

+ 15 - 44
MediaBrowser.Server.Startup.Common/Browser/BrowserLauncher.cs

@@ -15,87 +15,58 @@ namespace MediaBrowser.Server.Startup.Common.Browser
         /// </summary>
         /// <param name="page">The page.</param>
         /// <param name="appHost">The app host.</param>
-        /// <param name="logger">The logger.</param>
-        public static void OpenDashboardPage(string page, IServerApplicationHost appHost, ILogger logger)
+        public static void OpenDashboardPage(string page, IServerApplicationHost appHost)
         {
             var url = appHost.GetLocalApiUrl("localhost") + "/web/" + page;
 
-            OpenUrl(url, logger);
+            OpenUrl(appHost, url);
         }
 
         /// <summary>
         /// Opens the community.
         /// </summary>
-        /// <param name="logger">The logger.</param>
-        public static void OpenCommunity(ILogger logger)
+        public static void OpenCommunity(IServerApplicationHost appHost)
         {
-            OpenUrl("http://emby.media/community", logger);
+            OpenUrl(appHost, "http://emby.media/community");
         }
 
         /// <summary>
         /// Opens the web client.
         /// </summary>
         /// <param name="appHost">The app host.</param>
-        /// <param name="logger">The logger.</param>
-        public static void OpenWebClient(IServerApplicationHost appHost, ILogger logger)
+        public static void OpenWebClient(IServerApplicationHost appHost)
         {
-            OpenDashboardPage("index.html", appHost, logger);
+            OpenDashboardPage("index.html", appHost);
         }
 
         /// <summary>
         /// Opens the dashboard.
         /// </summary>
         /// <param name="appHost">The app host.</param>
-        /// <param name="logger">The logger.</param>
-        public static void OpenDashboard(IServerApplicationHost appHost, ILogger logger)
+        public static void OpenDashboard(IServerApplicationHost appHost)
         {
-            OpenDashboardPage("dashboard.html", appHost, logger);
+            OpenDashboardPage("dashboard.html", appHost);
         }
 
         /// <summary>
         /// Opens the URL.
         /// </summary>
         /// <param name="url">The URL.</param>
-        /// <param name="logger">The logger.</param>
-        private static void OpenUrl(string url, ILogger logger)
+        private static void OpenUrl(IServerApplicationHost appHost, string url)
         {
-            var process = new Process
-            {
-                StartInfo = new ProcessStartInfo
-                {
-                    FileName = url
-                },
-
-                EnableRaisingEvents = true,
-            };
-
-            process.Exited += ProcessExited;
-
             try
             {
-                process.Start();
+                appHost.LaunchUrl(url);
+            }
+            catch (NotImplementedException)
+            {
+                
             }
             catch (Exception ex)
             {
-                logger.ErrorException("Error launching url: {0}", ex, url);
-
-                Console.WriteLine("Error launching url: {0}", ex.Message);
+                Console.WriteLine("Error launching url: " + url);
                 Console.WriteLine(ex.Message);
-
-//#if !__MonoCS__
-//                System.Windows.Forms.MessageBox.Show("There was an error launching your web browser. Please check your default browser settings.");
-//#endif
             }
         }
-
-        /// <summary>
-        /// Processes the exited.
-        /// </summary>
-        /// <param name="sender">The sender.</param>
-        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
-        private static void ProcessExited(object sender, EventArgs e)
-        {
-            ((Process)sender).Dispose();
-        }
     }
 }

+ 1 - 1
MediaBrowser.Server.Startup.Common/EntryPoints/StartupWizard.cs

@@ -46,7 +46,7 @@ namespace MediaBrowser.Server.Startup.Common.EntryPoints
         /// </summary>
         private void LaunchStartupWizard()
         {
-            BrowserLauncher.OpenDashboardPage("wizardstart.html", _appHost, _logger);
+            BrowserLauncher.OpenDashboardPage("wizardstart.html", _appHost);
         }
 
         /// <summary>

+ 2 - 0
MediaBrowser.Server.Startup.Common/INativeApp.cs

@@ -102,5 +102,7 @@ namespace MediaBrowser.Server.Startup.Common
         IPowerManagement GetPowerManagement();
 
         FFMpegInstallInfo GetFfmpegInstallInfo();
+
+        void LaunchUrl(string url);
     }
 }

+ 1 - 1
MediaBrowser.ServerApplication/MainStartup.cs

@@ -317,7 +317,7 @@ namespace MediaBrowser.ServerApplication
         {
             if (e.Reason == SessionSwitchReason.SessionLogon)
             {
-                BrowserLauncher.OpenDashboard(_appHost, _logger);
+                BrowserLauncher.OpenDashboard(_appHost);
             }
         }
 

+ 40 - 1
MediaBrowser.ServerApplication/Native/WindowsApp.cs

@@ -1,14 +1,17 @@
-using MediaBrowser.Common.Net;
+using System;
+using MediaBrowser.Common.Net;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Server.Startup.Common;
 using MediaBrowser.ServerApplication.Networking;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.IO;
 using System.Reflection;
 using System.Windows.Forms;
 using CommonIO;
 using MediaBrowser.Controller.Power;
 using MediaBrowser.Server.Startup.Common.FFMpeg;
+using OperatingSystem = MediaBrowser.Server.Startup.Common.OperatingSystem;
 
 namespace MediaBrowser.ServerApplication.Native
 {
@@ -162,6 +165,42 @@ namespace MediaBrowser.ServerApplication.Native
             return info;
         }
 
+        public void LaunchUrl(string url)
+        {
+            var process = new Process
+            {
+                StartInfo = new ProcessStartInfo
+                {
+                    FileName = url
+                },
+
+                EnableRaisingEvents = true,
+            };
+
+            process.Exited += ProcessExited;
+
+            try
+            {
+                process.Start();
+            }
+            catch (Exception ex)
+            {
+                _logger.ErrorException("Error launching url: {0}", ex, url);
+
+                throw;
+            }
+        }
+
+        /// <summary>
+        /// Processes the exited.
+        /// </summary>
+        /// <param name="sender">The sender.</param>
+        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
+        private static void ProcessExited(object sender, EventArgs e)
+        {
+            ((Process)sender).Dispose();
+        }
+
         private string[] GetDownloadUrls()
         {
             switch (Environment.SystemArchitecture)

+ 4 - 4
MediaBrowser.ServerApplication/ServerNotifyIcon.cs

@@ -168,7 +168,7 @@ namespace MediaBrowser.ServerApplication
 
         void notifyIcon1_DoubleClick(object sender, EventArgs e)
         {
-            BrowserLauncher.OpenDashboard(_appHost, _logger);
+            BrowserLauncher.OpenDashboard(_appHost);
         }
 
         private void LocalizeText()
@@ -199,17 +199,17 @@ namespace MediaBrowser.ServerApplication
 
         void cmdBrowse_Click(object sender, EventArgs e)
         {
-            BrowserLauncher.OpenWebClient(_appHost, _logger);
+            BrowserLauncher.OpenWebClient(_appHost);
         }
 
         void cmdCommunity_Click(object sender, EventArgs e)
         {
-            BrowserLauncher.OpenCommunity(_logger);
+            BrowserLauncher.OpenCommunity(_appHost);
         }
 
         void cmdConfigure_Click(object sender, EventArgs e)
         {
-            BrowserLauncher.OpenDashboard(_appHost, _logger);
+            BrowserLauncher.OpenDashboard(_appHost);
         }
 
         void cmdRestart_Click(object sender, EventArgs e)