using MediaBrowser.Controller; using MediaBrowser.Model.Logging; using System; using System.Diagnostics; namespace MediaBrowser.Server.Startup.Common.Browser { /// /// Class BrowserLauncher /// public static class BrowserLauncher { /// /// Opens the dashboard page. /// /// The page. /// The app host. /// The logger. public static void OpenDashboardPage(string page, IServerApplicationHost appHost, ILogger logger) { var url = appHost.GetLocalApiUrl("localhost") + "/web/" + page; OpenUrl(url, logger); } /// /// Opens the github. /// /// The logger. public static void OpenGithub(ILogger logger) { OpenUrl("https://github.com/MediaBrowser/MediaBrowser", logger); } /// /// Opens the community. /// /// The logger. public static void OpenCommunity(ILogger logger) { OpenUrl("http://emby.media/community", logger); } /// /// Opens the web client. /// /// The app host. /// The logger. public static void OpenWebClient(IServerApplicationHost appHost, ILogger logger) { OpenDashboardPage("index.html", appHost, logger); } /// /// Opens the dashboard. /// /// The app host. /// The logger. public static void OpenDashboard(IServerApplicationHost appHost, ILogger logger) { OpenDashboardPage("dashboard.html", appHost, logger); } /// /// Opens the swagger. /// /// The app host. /// The logger. public static void OpenSwagger(IServerApplicationHost appHost, ILogger logger) { var url = appHost.GetLocalApiUrl("localhost") + "/swagger-ui/index.html"; OpenUrl(url, logger); } /// /// Opens the URL. /// /// The URL. /// The logger. private static void OpenUrl(string url, ILogger logger) { 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); Console.WriteLine("Error launching url: {0}", ex.Message); 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 } } /// /// Processes the exited. /// /// The sender. /// The instance containing the event data. private static void ProcessExited(object sender, EventArgs e) { ((Process)sender).Dispose(); } } }