aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Startup.Common/Browser/BrowserLauncher.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Startup.Common/Browser/BrowserLauncher.cs')
-rw-r--r--MediaBrowser.Server.Startup.Common/Browser/BrowserLauncher.cs122
1 files changed, 122 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Startup.Common/Browser/BrowserLauncher.cs b/MediaBrowser.Server.Startup.Common/Browser/BrowserLauncher.cs
new file mode 100644
index 000000000..97f6b89d7
--- /dev/null
+++ b/MediaBrowser.Server.Startup.Common/Browser/BrowserLauncher.cs
@@ -0,0 +1,122 @@
+using MediaBrowser.Controller;
+using MediaBrowser.Model.Logging;
+using System;
+using System.Diagnostics;
+
+namespace MediaBrowser.Server.Startup.Common.Browser
+{
+ /// <summary>
+ /// Class BrowserLauncher
+ /// </summary>
+ public static class BrowserLauncher
+ {
+ /// <summary>
+ /// Opens the dashboard page.
+ /// </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)
+ {
+ var url = "http://localhost:" + appHost.HttpServerPort + "/" +
+ appHost.WebApplicationName + "/web/" + page;
+
+ OpenUrl(url, logger);
+ }
+
+ /// <summary>
+ /// Opens the github.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ public static void OpenGithub(ILogger logger)
+ {
+ OpenUrl("https://github.com/MediaBrowser/MediaBrowser", logger);
+ }
+
+ /// <summary>
+ /// Opens the community.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ public static void OpenCommunity(ILogger logger)
+ {
+ OpenUrl("http://mediabrowser.tv/community", logger);
+ }
+
+ /// <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)
+ {
+ OpenDashboardPage("index.html", appHost, logger);
+ }
+
+ /// <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)
+ {
+ OpenDashboardPage("dashboard.html", appHost, logger);
+ }
+
+ /// <summary>
+ /// Opens the swagger.
+ /// </summary>
+ /// <param name="appHost">The app host.</param>
+ /// <param name="logger">The logger.</param>
+ public static void OpenSwagger(IServerApplicationHost appHost, ILogger logger)
+ {
+ OpenUrl("http://localhost:" + appHost.HttpServerPort + "/" +
+ appHost.WebApplicationName + "/swagger-ui/index.html", logger);
+ }
+
+ /// <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)
+ {
+ 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(string.Format("Error launching url: {0}", ex));
+ 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();
+ }
+ }
+}