diff --git a/Agent/Program.cs b/Agent/Program.cs index 0f50f448..f9bebf01 100644 --- a/Agent/Program.cs +++ b/Agent/Program.cs @@ -46,6 +46,7 @@ namespace Remotely.Agent builder.AddConsole().AddEventLog(); }); serviceCollection.AddSingleton(); + serviceCollection.AddScoped(); serviceCollection.AddScoped(); serviceCollection.AddScoped(); serviceCollection.AddScoped(); diff --git a/Agent/Services/AppLauncher.cs b/Agent/Services/AppLauncher.cs index 86b602cd..81de7d01 100644 --- a/Agent/Services/AppLauncher.cs +++ b/Agent/Services/AppLauncher.cs @@ -21,6 +21,48 @@ namespace Remotely.Agent.Services private ConnectionInfo ConnectionInfo { get; } + public async Task LaunchChatService(string requesterID, HubConnection hubConnection) + { + try + { + var rcBinaryPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ScreenCast", OSUtils.ScreenCastExecutableFileName); + if (!File.Exists(rcBinaryPath)) + { + await hubConnection.InvokeAsync("DisplayMessage", "Chat executable not found on target device.", "Executable not found on device.", requesterID); + } + + + // Start ScreenCast. + await hubConnection.InvokeAsync("DisplayMessage", $"Starting chat service...", "Starting chat service.", requesterID); + if (OSUtils.IsWindows) + { + + if (Program.IsDebug) + { + Process.Start("conhost.exe", $"{rcBinaryPath} -mode Chat -requester {requesterID}"); + } + else + { + var result = Win32Interop.OpenInteractiveProcess($"conhost.exe {rcBinaryPath} -mode Chat -requester {requesterID}", "default", false, out _); + if (!result) + { + await hubConnection.InvokeAsync("DisplayMessage", "Remote control failed to start on target device.", "Failed to start remote control.", requesterID); + } + } + } + else if (OSUtils.IsLinux) + { + var args = $"bash -c {rcBinaryPath} -mode Chat -requester {requesterID} & disown"; + StartLinuxScreenCaster(args); + } + } + catch (Exception ex) + { + Logger.Write(ex); + await hubConnection.InvokeAsync("DisplayMessage", "Remote control failed to start on target device.", "Failed to start remote control.", requesterID); + } + } + public async Task LaunchRemoteControl(string requesterID, string serviceID, HubConnection hubConnection) { try @@ -54,17 +96,15 @@ namespace Remotely.Agent.Services else if (OSUtils.IsLinux) { var args = $"{rcBinaryPath} -mode Unattended -requester {requesterID} -serviceid {serviceID} -deviceid {ConnectionInfo.DeviceID} -host {ConnectionInfo.Host} & disown"; - await StartLinuxScreenCaster(args); + StartLinuxScreenCaster(args); } } catch (Exception ex) { Logger.Write(ex); await hubConnection.InvokeAsync("DisplayMessage", "Remote control failed to start on target device.", "Failed to start remote control.", requesterID); - throw; } } - public async Task RestartScreenCaster(List viewerIDs, string serviceID, string requesterID, HubConnection hubConnection) { try @@ -104,7 +144,7 @@ namespace Remotely.Agent.Services else if (OSUtils.IsLinux) { var args = $"{rcBinaryPath} -mode Unattended -requester {requesterID} -serviceid {serviceID} -deviceid {ConnectionInfo.DeviceID} -host {ConnectionInfo.Host} -relaunch true -viewers {string.Join(",", viewerIDs)} & disown"; - await StartLinuxScreenCaster(args); + StartLinuxScreenCaster(args); } } catch (Exception ex) @@ -115,7 +155,7 @@ namespace Remotely.Agent.Services } } - private async Task StartLinuxScreenCaster(string args) + private void StartLinuxScreenCaster(string args) { var xauthority = OSUtils.StartProcessWithResults("find", $"/ -name Xauthority").Split('\n', StringSplitOptions.RemoveEmptyEntries).First(); var display = ":0"; @@ -140,8 +180,7 @@ namespace Remotely.Agent.Services psi.Environment.Add("DISPLAY", display); psi.Environment.Add("XAUTHORITY", xauthority); Logger.Write($"Attempting to launch screen caster with username {username}, xauthority {xauthority}, and display {display}."); - var casterProc = Process.Start(psi); - await Task.Run(() => { casterProc.WaitForExit(); }); + Process.Start(psi); } } } diff --git a/Agent/Services/ChatClientService.cs b/Agent/Services/ChatClientService.cs new file mode 100644 index 00000000..b2016a79 --- /dev/null +++ b/Agent/Services/ChatClientService.cs @@ -0,0 +1,97 @@ +using Microsoft.AspNetCore.SignalR.Client; +using Remotely.Shared.Services; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.IO.Pipes; +using System.Linq; +using System.Runtime.Caching; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace Remotely.Agent.Services +{ + public class ChatClientService + { + public ChatClientService(AppLauncher appLauncher) + { + AppLauncher = appLauncher; + } + + private SemaphoreSlim MessageLock { get; } = new SemaphoreSlim(1); + private AppLauncher AppLauncher { get; } + private CacheItemPolicy CacheItemPolicy { get; } = new CacheItemPolicy() + { + SlidingExpiration = TimeSpan.FromMinutes(10), + RemovedCallback = new CacheEntryRemovedCallback(args => + { + (args.CacheItem.Value as NamedPipeClientStream).Dispose(); + }) + }; + + private MemoryCache ChatClients { get; } = new MemoryCache("ChatClients"); + public async Task SendMessage(string message, string senderConnectionID, HubConnection hubConnection) + { + try + { + if (await MessageLock.WaitAsync(30000)) + { + NamedPipeClientStream clientPipe; + if (!ChatClients.Contains(senderConnectionID)) + { + var rcBinaryPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ScreenCast", OSUtils.ScreenCastExecutableFileName); + await AppLauncher.LaunchChatService(senderConnectionID, hubConnection); + + clientPipe = new NamedPipeClientStream(".", "Remotely_Chat" + senderConnectionID, PipeDirection.InOut, PipeOptions.Asynchronous); + clientPipe.Connect(15000); + if (!clientPipe.IsConnected) + { + Logger.Write("Failed to connect to chat host."); + return; + } + ChatClients.Add(senderConnectionID, clientPipe, CacheItemPolicy); + } + + clientPipe = (NamedPipeClientStream)ChatClients.Get(senderConnectionID); + + if (!clientPipe.IsConnected) + { + ChatClients.Remove(senderConnectionID); + await hubConnection.SendAsync("DisplayMessage", "Chat disconnected. Please try again.", "Chat disconnected."); + return; + } + + using (var sw = new StreamWriter(clientPipe, leaveOpen: true)) + { + await sw.WriteLineAsync(message); + await sw.FlushAsync(); + } + + _ = Task.Run(async () => { await ReadFromStream(clientPipe, senderConnectionID, hubConnection); }); + } + } + catch (Exception ex) + { + Logger.Write(ex); + } + finally + { + MessageLock.Release(); + } + } + + private async Task ReadFromStream(NamedPipeClientStream clientPipe, string senderConnectionID, HubConnection hubConnection) + { + while (clientPipe.IsConnected) + { + using (var sr = new StreamReader(clientPipe, leaveOpen: true)) + { + var message = await sr.ReadLineAsync(); + await hubConnection.SendAsync("Chat", message, senderConnectionID); + } + } + } + } +} diff --git a/Agent/Services/DeviceSocket.cs b/Agent/Services/DeviceSocket.cs index a4b1be26..167317a6 100644 --- a/Agent/Services/DeviceSocket.cs +++ b/Agent/Services/DeviceSocket.cs @@ -24,7 +24,8 @@ namespace Remotely.Agent.Services Uninstaller uninstaller, CommandExecutor commandExecutor, ScriptRunner scriptRunner, - AppLauncher appLauncher) + AppLauncher appLauncher, + ChatClientService chatService) { Updater = updater; ConfigService = configService; @@ -32,9 +33,11 @@ namespace Remotely.Agent.Services CommandExecutor = commandExecutor; ScriptRunner = scriptRunner; AppLauncher = appLauncher; + ChatService = chatService; } public bool IsConnected => HubConnection?.State == HubConnectionState.Connected; private AppLauncher AppLauncher { get; } + private ChatClientService ChatService { get; } private CommandExecutor CommandExecutor { get; } private ConfigService ConfigService { get; } private ConnectionInfo ConnectionInfo { get; set; } @@ -53,7 +56,7 @@ namespace Remotely.Agent.Services .AddMessagePackProtocol() .Build(); - RegisterMessageHandlers(HubConnection); + RegisterMessageHandlers(); await HubConnection.StartAsync(); @@ -78,21 +81,24 @@ namespace Remotely.Agent.Services HeartbeatTimer.Elapsed += HeartbeatTimer_Elapsed; HeartbeatTimer.Start(); } + public void SendHeartbeat() { var currentInfo = Device.Create(ConnectionInfo); HubConnection.InvokeAsync("DeviceHeartbeat", currentInfo); } - private void HeartbeatTimer_Elapsed(object sender, ElapsedEventArgs e) { SendHeartbeat(); } - private void RegisterMessageHandlers(HubConnection hubConnection) + private void RegisterMessageHandlers() { - hubConnection.On("ExecuteCommand", (async (string mode, string command, string commandID, string senderConnectionID) => + HubConnection.On("Chat", async (string message, string senderConnectionID) => { + await ChatService.SendMessage(message, senderConnectionID, HubConnection); + }); + HubConnection.On("ExecuteCommand", (async (string mode, string command, string commandID, string senderConnectionID) => { if (!IsServerVerified) { @@ -101,9 +107,9 @@ namespace Remotely.Agent.Services return; } - await CommandExecutor.ExecuteCommand(mode, command, commandID, senderConnectionID, hubConnection); + await CommandExecutor.ExecuteCommand(mode, command, commandID, senderConnectionID, HubConnection); })); - hubConnection.On("TransferFiles", async (string transferID, List fileIDs, string requesterID) => + HubConnection.On("TransferFiles", async (string transferID, List fileIDs, string requesterID) => { Logger.Write($"File transfer started by {requesterID}."); var sharedFilePath = Directory.CreateDirectory(Path.Combine(Path.GetTempPath(),"RemotelySharedFiles")).FullName; @@ -132,9 +138,9 @@ namespace Remotely.Agent.Services } } } - await HubConnection.InvokeAsync("TransferCompleted", transferID, requesterID); + await this.HubConnection.InvokeAsync("TransferCompleted", transferID, requesterID); }); - hubConnection.On("DeployScript", async (string mode, string fileID, string commandContextID, string requesterID) => { + HubConnection.On("DeployScript", async (string mode, string fileID, string commandContextID, string requesterID) => { if (!IsServerVerified) { Logger.Write($"Script deploy attempted before server was verified. Mode: {mode}. File ID: {fileID}. Sender: {requesterID}"); @@ -142,14 +148,14 @@ namespace Remotely.Agent.Services return; } - await ScriptRunner.RunScript(mode, fileID, commandContextID, requesterID, hubConnection); + await ScriptRunner.RunScript(mode, fileID, commandContextID, requesterID, HubConnection); }); - hubConnection.On("UninstallClient", () => + HubConnection.On("UninstallClient", () => { Uninstaller.UninstallAgent(); }); - hubConnection.On("RemoteControl", async (string requesterID, string serviceID) => + HubConnection.On("RemoteControl", async (string requesterID, string serviceID) => { if (!IsServerVerified) { @@ -157,9 +163,9 @@ namespace Remotely.Agent.Services Uninstaller.UninstallAgent(); return; } - await AppLauncher.LaunchRemoteControl(requesterID, serviceID, hubConnection); + await AppLauncher.LaunchRemoteControl(requesterID, serviceID, HubConnection); }); - hubConnection.On("RestartScreenCaster", async (List viewerIDs, string serviceID, string requesterID) => + HubConnection.On("RestartScreenCaster", async (List viewerIDs, string serviceID, string requesterID) => { if (!IsServerVerified) { @@ -167,14 +173,14 @@ namespace Remotely.Agent.Services Uninstaller.UninstallAgent(); return; } - await AppLauncher.RestartScreenCaster(viewerIDs, serviceID, requesterID, hubConnection); + await AppLauncher.RestartScreenCaster(viewerIDs, serviceID, requesterID, HubConnection); }); - hubConnection.On("CtrlAltDel", () => + HubConnection.On("CtrlAltDel", () => { User32.SendSAS(false); }); - hubConnection.On("ServerVerificationToken", (string verificationToken) => + HubConnection.On("ServerVerificationToken", (string verificationToken) => { if (verificationToken == ConnectionInfo.ServerVerificationToken) { diff --git a/ScreenCast.Core/Conductor.cs b/ScreenCast.Core/Conductor.cs index 27d942f9..e52bfd76 100644 --- a/ScreenCast.Core/Conductor.cs +++ b/ScreenCast.Core/Conductor.cs @@ -68,9 +68,13 @@ namespace Remotely.ScreenCast.Core Host = ArgDict["host"]; } - if (Mode == AppMode.Unattended) + if (Mode == AppMode.Chat || Mode == AppMode.Unattended) { RequesterID = ArgDict["requester"]; + } + + if (Mode == AppMode.Unattended) + { ServiceID = ArgDict["serviceid"]; DeviceID = ArgDict["deviceid"]; } diff --git a/ScreenCast.Core/Services/ChatService.cs b/ScreenCast.Core/Services/ChatHostService.cs similarity index 56% rename from ScreenCast.Core/Services/ChatService.cs rename to ScreenCast.Core/Services/ChatHostService.cs index a4a33979..73921402 100644 --- a/ScreenCast.Core/Services/ChatService.cs +++ b/ScreenCast.Core/Services/ChatHostService.cs @@ -2,17 +2,18 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.IO; using System.IO.Pipes; +using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Remotely.ScreenCast.Core.Services { - public class ChatService + public class ChatHostService { - private NamedPipeServerStream NamedPipeStream { get; set; } private string AsciiLogo => @" _____ _ _ | __ \ | | | | @@ -24,9 +25,16 @@ namespace Remotely.ScreenCast.Core.Services |___/ "; - public async Task StartChat() + private NamedPipeServerStream NamedPipeStream { get; set; } + private StreamWriter Writer { get; set; } + private StreamReader Reader { get; set; } + + public async Task StartChat(string requesterID) { - NamedPipeStream = new NamedPipeServerStream("Remotely_Chat" + Process.GetCurrentProcess().Id, PipeDirection.InOut, 1); + NamedPipeStream = new NamedPipeServerStream("Remotely_Chat" + requesterID, PipeDirection.InOut, 10, PipeTransmissionMode.Byte, PipeOptions.Asynchronous | PipeOptions.WriteThrough); + Writer = new StreamWriter(NamedPipeStream); + Reader = new StreamReader(NamedPipeStream); + Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.Cyan; Console.Title = "Remotely Chat"; @@ -43,27 +51,53 @@ namespace Remotely.ScreenCast.Core.Services await Task.Delay(10000); if (!NamedPipeStream.IsConnected) { - Console.WriteLine("Connection failed. Closing..."); - await Task.Delay(3000); - Environment.Exit(0); + await Close(); } }); var cts = new CancellationTokenSource(10000); await NamedPipeStream.WaitForConnectionAsync(cts.Token); + _ = Task.Run(ReadFromStream); Console.WriteLine("You're now connected with a technician."); Console.WriteLine(); Console.WriteLine("Type your responses below and hit Enter to send."); Console.WriteLine("Press Ctrl + C to exit."); - Console.WriteLine(); - while (true) + while (NamedPipeStream.IsConnected) { - Console.ForegroundColor = ConsoleColor.Cyan; - Console.Write("You: "); - Console.ForegroundColor = ConsoleColor.White; - var input = Console.ReadLine(); - await NamedPipeStream.WriteAsync(Encoding.UTF8.GetBytes(input)); + SetPrompt(); + var message = Console.ReadLine(); + await Writer.WriteLineAsync(message); + await Writer.FlushAsync(); } + + await Close(); + } + + private async Task Close() + { + Console.WriteLine("Connection failed. Closing..."); + await Task.Delay(3000); + Environment.Exit(0); + } + + private async Task ReadFromStream() + { + while (NamedPipeStream.IsConnected) + { + var message = await Reader.ReadLineAsync(); + Console.WriteLine(); + Console.WriteLine(); + Console.WriteLine(message); + SetPrompt(); + } + } + + private void SetPrompt() + { + Console.WriteLine(); + Console.ForegroundColor = ConsoleColor.Cyan; + Console.Write("You: "); + Console.ForegroundColor = ConsoleColor.White; } } } diff --git a/ScreenCast.Win/Program.cs b/ScreenCast.Win/Program.cs index 4c61fbe7..c3635d72 100644 --- a/ScreenCast.Win/Program.cs +++ b/ScreenCast.Win/Program.cs @@ -45,7 +45,7 @@ namespace Remotely.ScreenCast.Win if (Conductor.Mode == Core.Enums.AppMode.Chat) { - Services.GetRequiredService().StartChat().Wait(); + Services.GetRequiredService().StartChat(Conductor.RequesterID).Wait(); } else { @@ -76,7 +76,7 @@ namespace Remotely.ScreenCast.Win serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); - serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddTransient(provider => { try diff --git a/Server/Pages/Invite.cshtml b/Server/Pages/Invite.cshtml index 08201c93..002979e1 100644 --- a/Server/Pages/Invite.cshtml +++ b/Server/Pages/Invite.cshtml @@ -3,7 +3,8 @@ @{ ViewData["Title"] = "Invite"; } -

Organization Invite

+

Organization Invite

+
@if (Model.Success) @@ -16,9 +17,19 @@ else { -
Uh oh.
-

@Model.Message

- +
+
+ WARNING: +

You will leave your current organization and lose access to its agents unless someone is able to invite you back in.

+

Are you sure you want to leave your current organization and join this one?

+
+
+ +
+ + +
+
}
diff --git a/Server/Pages/Invite.cshtml.cs b/Server/Pages/Invite.cshtml.cs index badb7ced..4652853c 100644 --- a/Server/Pages/Invite.cshtml.cs +++ b/Server/Pages/Invite.cshtml.cs @@ -18,27 +18,43 @@ namespace Remotely.Server.Pages } private DataService DataService { get; } public bool Success { get; set; } - public string Message { get; set; } + + public class InputModel + { + public string InviteID { get; set; } + } + + [BindProperty] + public InputModel Input { get; set; } = new InputModel(); public void OnGet(string id) { if (string.IsNullOrWhiteSpace(id)) { - Success = false; - Message = "No invititation ID is specified."; - return; + ModelState.AddModelError("MissingID", "No invititation ID is specified."); } - var result = DataService.JoinViaInvitation(User.Identity.Name, id); + + Input.InviteID = id; + } + + public IActionResult OnPost() + { + if (string.IsNullOrWhiteSpace(Input?.InviteID)) + { + Success = false; + ModelState.AddModelError("MissingID", "No invititation ID is specified."); + return Page(); + } + + var result = DataService.JoinViaInvitation(User.Identity.Name, Input.InviteID); if (result == false) { Success = false; - Message = "The invitation ID wasn't found or is for another account."; - return; + ModelState.AddModelError("InviteIDNotFound", "The invitation ID wasn't found or is for another account."); } - - Success = true; - Message = "You've successfully joined the organization."; - } + Success = true; + return Page(); + } } } \ No newline at end of file diff --git a/Server/Server.csproj b/Server/Server.csproj index f4e2d5a2..1f1938b7 100644 --- a/Server/Server.csproj +++ b/Server/Server.csproj @@ -3,7 +3,6 @@ netcoreapp3.1 true - aspnet-DoXM_Server-C4DA754F-DF49-46C8-9091-A7EC11A0D311 Latest Windows 1.0.0.0 diff --git a/Server/Services/BrowserSocketHub.cs b/Server/Services/BrowserSocketHub.cs index a586fbf0..83a20e2b 100644 --- a/Server/Services/BrowserSocketHub.cs +++ b/Server/Services/BrowserSocketHub.cs @@ -49,6 +49,13 @@ namespace Remotely.Server.Services } private SignInManager SignInManager { get; } + public async Task Chat(string message, string[] deviceIDs) + { + deviceIDs = DataService.FilterDeviceIDsByUserPermission(deviceIDs, RemotelyUser); + var connections = GetActiveClientConnections(deviceIDs); + await DeviceHub.Clients.Clients(connections.Select(x => x.Key).ToList()).SendAsync("Chat", $"{RemotelyUser.UserName}: {message}", Context.ConnectionId); + } + public async Task DeployScript(string fileID, string mode, string[] deviceIDs) { deviceIDs = DataService.FilterDeviceIDsByUserPermission(deviceIDs, RemotelyUser); diff --git a/Server/Services/DeviceSocketHub.cs b/Server/Services/DeviceSocketHub.cs index 7786bc8d..f63e49e1 100644 --- a/Server/Services/DeviceSocketHub.cs +++ b/Server/Services/DeviceSocketHub.cs @@ -39,13 +39,17 @@ namespace Remotely.Server.Services } } - public async void BashResultViaAjax(string commandID) + public async Task BashResultViaAjax(string commandID) { var commandContext = DataService.GetCommandContext(commandID); await BrowserHub.Clients.Client(commandContext.SenderConnectionID).SendAsync("BashResultViaAjax", commandID, Device.ID); } + public async Task Chat(string message, string senderConnectionID) + { + await BrowserHub.Clients.Client(senderConnectionID).SendAsync("Chat", Device.DeviceName, message); + } - public async void CMDResultViaAjax(string commandID) + public async Task CMDResultViaAjax(string commandID) { var commandContext = DataService.GetCommandContext(commandID); await BrowserHub.Clients.Client(commandContext.SenderConnectionID).SendAsync("CMDResultViaAjax", commandID, Device.ID); diff --git a/Server/wwwroot/Downloads/Install-Win10-x64.ps1 b/Server/wwwroot/Downloads/Install-Win10-x64.ps1 index 14b12c08..86dadb1b 100644 --- a/Server/wwwroot/Downloads/Install-Win10-x64.ps1 +++ b/Server/wwwroot/Downloads/Install-Win10-x64.ps1 @@ -149,7 +149,9 @@ function Install-DesktopRuntime() { Write-Host ".NET Core Windows Desktop runtime not found. Downloading installer." $Response = Invoke-WebRequest -Uri "https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-desktop-3.1.1-windows-x64-installer" -UseBasicParsing $DownloadLink = $Response.Links | Where-Object { $_.href -like "*windowsdesktop-runtime*" } + $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest -Uri $DownloadLink.href -OutFile "$env:TEMP\windowsdesktop-runtime.exe" + $ProgressPreference = 'Continue' Write-Host "Installing .NET Core Windows Desktop runtime." Start-Process -FilePath "$env:TEMP\windowsdesktop-runtime.exe" -ArgumentList "/install /quiet /norestart" -Wait } diff --git a/Server/wwwroot/Downloads/Install-Win10-x86.ps1 b/Server/wwwroot/Downloads/Install-Win10-x86.ps1 index 07bd4b69..a52afd80 100644 --- a/Server/wwwroot/Downloads/Install-Win10-x86.ps1 +++ b/Server/wwwroot/Downloads/Install-Win10-x86.ps1 @@ -142,7 +142,9 @@ function Install-DesktopRuntime() { Write-Host ".NET Core Windows Desktop runtime not found. Downloading installer." $Response = Invoke-WebRequest -Uri "https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-desktop-3.1.1-windows-x86-installer" -UseBasicParsing $DownloadLink = $Response.Links | Where-Object { $_.href -like "*windowsdesktop-runtime*" } + $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest -Uri $DownloadLink.href -OutFile "$env:TEMP\windowsdesktop-runtime.exe" + $ProgressPreference = 'Continue' Write-Host "Installing .NET Core Windows Desktop runtime." Start-Process -FilePath "$env:TEMP\windowsdesktop-runtime.exe" -ArgumentList "/install /quiet /norestart" -Wait } diff --git a/Server/wwwroot/scripts/BrowserSockets.js b/Server/wwwroot/scripts/BrowserSockets.js index 2eff0849..962769b1 100644 --- a/Server/wwwroot/scripts/BrowserSockets.js +++ b/Server/wwwroot/scripts/BrowserSockets.js @@ -32,6 +32,9 @@ export function Connect() { } ; function applyMessageHandlers(hubConnection) { + hubConnection.on("Chat", (deviceName, message) => { + AddConsoleHTML(`Chat from ${deviceName}: ${message}`); + }); hubConnection.on("UserOptions", (options) => { Main.UserSettings.CommandModeShortcuts.Web = options.CommandModeShortcutWeb; Main.UserSettings.CommandModeShortcuts.PSCore = options.CommandModeShortcutPSCore; diff --git a/Server/wwwroot/scripts/BrowserSockets.js.map b/Server/wwwroot/scripts/BrowserSockets.js.map index 721a300c..d8764f20 100644 --- a/Server/wwwroot/scripts/BrowserSockets.js.map +++ b/Server/wwwroot/scripts/BrowserSockets.js.map @@ -1 +1 @@ -{"version":3,"file":"BrowserSockets.js","sourceRoot":"","sources":["BrowserSockets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAK1C,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACjI,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGhE,MAAM,CAAC,IAAI,UAAe,CAAC;AAC3B,MAAM,CAAC,IAAI,SAAiB,CAAC;AAC7B,MAAM,CAAC,IAAI,SAAkB,CAAC;AAE9B,MAAM,UAAU,OAAO;IACnB,IAAI,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,UAAU,GAAG,IAAI,OAAO,CAAC,oBAAoB,EAAE;SAC1C,OAAO,CAAC,aAAa,CAAC;SACtB,eAAe,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;SACvE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;SAC9C,KAAK,EAAE,CAAC;IAEb,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAEjC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,SAAS,GAAG,KAAK,CAAC;QAClB,gBAAgB,CAAC,8EAA8E,CAAC,CAAC;IACrG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QACT,SAAS,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QACxC,SAAS,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;YAC7B,EAAE,CAAC,SAAS,CAAC,oBAAoB,EAC7B,mEAAmE,EACnE,gGAAgG,CAAC,CAAC;YACtG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;SACxC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAAA,CAAC;AAEF,SAAS,oBAAoB,CAAC,aAAa;IACvC,aAAa,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,OAAoB,EAAE,EAAE;QACrD,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,GAAG,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC5E,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;QAClF,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAC;QAChF,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAC9E,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,GAAG,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC5E,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QACvC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;QACnC,QAAQ,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAa,EAAE,EAAE;QACnD,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,MAAc,EAAE,EAAE;QACrD,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE;QACnD,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACvC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,MAA2B,EAAE,EAAE;QAC7D,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAChC,kBAAkB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,MAA4B,EAAE,EAAE;QAC/D,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACjC,kBAAkB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,cAAsB,EAAE,YAAoB,EAAE,EAAE;QAChF,IAAI,cAAc,EAAE;YAChB,gBAAgB,CAAC,cAAc,CAAC,CAAC;SACpC;QACD,IAAI,YAAY,EAAE;YACd,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;SACjC;IACL,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,OAAe,EAAE,EAAE;QACvD,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,UAAkB,EAAE,EAAE;QACzD,IAAI,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,GAAG,YAAY,CAAC,CAAC;QAC1E,IAAI,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACjD,gBAAgB,CAAC,SAAS,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxD,CAAC,CAAC,CAAA;IACF,aAAa,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE;QAC5E,IAAI,SAAS,GAAG,GAAG,QAAQ,CAAC,MAAM,8BAA8B,SAAS,IAAI,QAAQ,EAAE,CAAC;QACxF,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3B,GAAG,CAAC,MAAM,GAAG;YACT,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBACnB,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;gBACtD,kBAAkB,CAAC,SAAS,CAAC,CAAC;aACjC;QACL,CAAC,CAAC;QACF,GAAG,CAAC,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE;QAC3E,IAAI,SAAS,GAAG,GAAG,QAAQ,CAAC,MAAM,6BAA6B,SAAS,IAAI,QAAQ,EAAE,CAAC;QACvF,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3B,GAAG,CAAC,MAAM,GAAG;YACT,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBACnB,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvD,kBAAkB,CAAC,SAAS,CAAC,CAAC;aACjC;QACL,CAAC,CAAC;QACF,GAAG,CAAC,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE;QACzE,IAAI,SAAS,GAAG,GAAG,QAAQ,CAAC,MAAM,8BAA8B,SAAS,IAAI,QAAQ,EAAE,CAAC;QACxF,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3B,GAAG,CAAC,MAAM,GAAG;YACT,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBACnB,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvD,kBAAkB,CAAC,SAAS,CAAC,CAAC;aACjC;QACL,CAAC,CAAC;QACF,GAAG,CAAC,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE;QAC1E,IAAI,SAAS,GAAG,GAAG,QAAQ,CAAC,MAAM,8BAA8B,SAAS,IAAI,QAAQ,EAAE,CAAC;QACxF,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3B,GAAG,CAAC,MAAM,GAAG;YACT,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBACnB,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvD,kBAAkB,CAAC,SAAS,CAAC,CAAC;aACjC;QACL,CAAC,CAAC;QACF,GAAG,CAAC,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,uBAAuB,EAAE,CAAC,OAAuB,EAAE,EAAE;QAClE,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,SAAiB,EAAE,EAAE;QAChD,SAAS,GAAG,SAAS,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,cAAsB,EAAE,EAAE;QAClE,MAAM,CAAC,IAAI,CAAC,2BAA2B,cAAc,cAAc,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACP,CAAC"} \ No newline at end of file +{"version":3,"file":"BrowserSockets.js","sourceRoot":"","sources":["BrowserSockets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAK1C,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACjI,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGhE,MAAM,CAAC,IAAI,UAAe,CAAC;AAC3B,MAAM,CAAC,IAAI,SAAiB,CAAC;AAC7B,MAAM,CAAC,IAAI,SAAkB,CAAC;AAE9B,MAAM,UAAU,OAAO;IACnB,IAAI,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,UAAU,GAAG,IAAI,OAAO,CAAC,oBAAoB,EAAE;SAC1C,OAAO,CAAC,aAAa,CAAC;SACtB,eAAe,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;SACvE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;SAC9C,KAAK,EAAE,CAAC;IAEb,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAEjC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,SAAS,GAAG,KAAK,CAAC;QAClB,gBAAgB,CAAC,8EAA8E,CAAC,CAAC;IACrG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QACT,SAAS,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QACxC,SAAS,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;YAC7B,EAAE,CAAC,SAAS,CAAC,oBAAoB,EAC7B,mEAAmE,EACnE,gGAAgG,CAAC,CAAC;YACtG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;SACxC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAAA,CAAC;AAEF,SAAS,oBAAoB,CAAC,aAAa;IACvC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,UAAkB,EAAE,OAAe,EAAE,EAAE;QAC7D,cAAc,CAAC,uCAAuC,UAAU,cAAc,OAAO,EAAE,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,OAAoB,EAAE,EAAE;QACrD,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,GAAG,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC5E,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;QAClF,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAC;QAChF,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAC9E,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,GAAG,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC5E,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QACvC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;QACnC,QAAQ,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAa,EAAE,EAAE;QACnD,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,MAAc,EAAE,EAAE;QACrD,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE;QACnD,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACvC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,MAA2B,EAAE,EAAE;QAC7D,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAChC,kBAAkB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,MAA4B,EAAE,EAAE;QAC/D,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACjC,kBAAkB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,cAAsB,EAAE,YAAoB,EAAE,EAAE;QAChF,IAAI,cAAc,EAAE;YAChB,gBAAgB,CAAC,cAAc,CAAC,CAAC;SACpC;QACD,IAAI,YAAY,EAAE;YACd,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;SACjC;IACL,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,OAAe,EAAE,EAAE;QACvD,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,UAAkB,EAAE,EAAE;QACzD,IAAI,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,GAAG,YAAY,CAAC,CAAC;QAC1E,IAAI,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACjD,gBAAgB,CAAC,SAAS,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxD,CAAC,CAAC,CAAA;IACF,aAAa,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE;QAC5E,IAAI,SAAS,GAAG,GAAG,QAAQ,CAAC,MAAM,8BAA8B,SAAS,IAAI,QAAQ,EAAE,CAAC;QACxF,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3B,GAAG,CAAC,MAAM,GAAG;YACT,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBACnB,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;gBACtD,kBAAkB,CAAC,SAAS,CAAC,CAAC;aACjC;QACL,CAAC,CAAC;QACF,GAAG,CAAC,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE;QAC3E,IAAI,SAAS,GAAG,GAAG,QAAQ,CAAC,MAAM,6BAA6B,SAAS,IAAI,QAAQ,EAAE,CAAC;QACvF,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3B,GAAG,CAAC,MAAM,GAAG;YACT,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBACnB,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvD,kBAAkB,CAAC,SAAS,CAAC,CAAC;aACjC;QACL,CAAC,CAAC;QACF,GAAG,CAAC,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE;QACzE,IAAI,SAAS,GAAG,GAAG,QAAQ,CAAC,MAAM,8BAA8B,SAAS,IAAI,QAAQ,EAAE,CAAC;QACxF,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3B,GAAG,CAAC,MAAM,GAAG;YACT,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBACnB,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvD,kBAAkB,CAAC,SAAS,CAAC,CAAC;aACjC;QACL,CAAC,CAAC;QACF,GAAG,CAAC,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE;QAC1E,IAAI,SAAS,GAAG,GAAG,QAAQ,CAAC,MAAM,8BAA8B,SAAS,IAAI,QAAQ,EAAE,CAAC;QACxF,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3B,GAAG,CAAC,MAAM,GAAG;YACT,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBACnB,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvD,kBAAkB,CAAC,SAAS,CAAC,CAAC;aACjC;QACL,CAAC,CAAC;QACF,GAAG,CAAC,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,uBAAuB,EAAE,CAAC,OAAuB,EAAE,EAAE;QAClE,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,SAAiB,EAAE,EAAE;QAChD,SAAS,GAAG,SAAS,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,cAAsB,EAAE,EAAE;QAClE,MAAM,CAAC,IAAI,CAAC,2BAA2B,cAAc,cAAc,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACP,CAAC"} \ No newline at end of file diff --git a/Server/wwwroot/scripts/BrowserSockets.ts b/Server/wwwroot/scripts/BrowserSockets.ts index ec7e4123..1f41bb5e 100644 --- a/Server/wwwroot/scripts/BrowserSockets.ts +++ b/Server/wwwroot/scripts/BrowserSockets.ts @@ -44,6 +44,9 @@ export function Connect() { }; function applyMessageHandlers(hubConnection) { + hubConnection.on("Chat", (deviceName: string, message: string) => { + AddConsoleHTML(`Chat from ${deviceName}: ${message}`); + }); hubConnection.on("UserOptions", (options: UserOptions) => { Main.UserSettings.CommandModeShortcuts.Web = options.CommandModeShortcutWeb; Main.UserSettings.CommandModeShortcuts.PSCore = options.CommandModeShortcutPSCore; diff --git a/Server/wwwroot/scripts/Commands/WebCommands.js b/Server/wwwroot/scripts/Commands/WebCommands.js index f25f8be3..f41bb9f9 100644 --- a/Server/wwwroot/scripts/Commands/WebCommands.js +++ b/Server/wwwroot/scripts/Commands/WebCommands.js @@ -7,13 +7,14 @@ import * as DataGrid from "../DataGrid.js"; import { AddConsoleHTML, AddConsoleOutput, AddTransferHarness } from "../Console.js"; import { GetSelectedDevices } from "../DataGrid.js"; var commands = [ - new ConsoleCommand("Chat", [], "Start a chat session with the selected device.", "chat -message Hey, this is your IT guy.", "", (parameters, paramaterDict) => { + new ConsoleCommand("Chat", [ + new Parameter("message", "The message to send to the remote device.", "String") + ], "Start a chat session with the selected device.", "chat -message Hey, this is your IT guy.", "", (parameters, paramaterDict) => { var selectedDevices = Main.DataGrid.GetSelectedDevices(); if (selectedDevices.length == 0) { AddConsoleOutput("You must select a device first."); return; } - AddConsoleOutput("Sending chat message..."); BrowserSockets.Connection.invoke("Chat", paramaterDict["message"], selectedDevices.map(x => x.ID)); }), new ConsoleCommand("DeployScript", [ diff --git a/Server/wwwroot/scripts/Commands/WebCommands.js.map b/Server/wwwroot/scripts/Commands/WebCommands.js.map index 99db8932..b5d990a8 100644 --- a/Server/wwwroot/scripts/Commands/WebCommands.js.map +++ b/Server/wwwroot/scripts/Commands/WebCommands.js.map @@ -1 +1 @@ -{"version":3,"file":"WebCommands.js","sourceRoot":"","sources":["WebCommands.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"WebCommands.js","sourceRoot":"","sources":["WebCommands.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/Server/wwwroot/scripts/Commands/WebCommands.ts b/Server/wwwroot/scripts/Commands/WebCommands.ts index d6446d49..254b70bb 100644 --- a/Server/wwwroot/scripts/Commands/WebCommands.ts +++ b/Server/wwwroot/scripts/Commands/WebCommands.ts @@ -12,7 +12,9 @@ import { GetSelectedDevices } from "../DataGrid.js"; var commands: Array = [ new ConsoleCommand( "Chat", - [], + [ + new Parameter("message", "The message to send to the remote device.", "String") + ], "Start a chat session with the selected device.", "chat -message Hey, this is your IT guy.", "", @@ -23,7 +25,6 @@ var commands: Array = [ return; } - AddConsoleOutput("Sending chat message..."); BrowserSockets.Connection.invoke("Chat", paramaterDict["message"], selectedDevices.map(x => x.ID)); } ),