From 6ca1a7cec33a6eb0530251f1a684e50f18fa08a1 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Tue, 6 Feb 2018 09:22:41 +0100 Subject: [PATCH] Refactoring --- client/assets/js/main.js | 25 +++++++++++++----------- server/run_server.php | 41 ++++++++++++++++++++-------------------- 2 files changed, 34 insertions(+), 32 deletions(-) diff --git a/client/assets/js/main.js b/client/assets/js/main.js index d271c66..c8c48e5 100644 --- a/client/assets/js/main.js +++ b/client/assets/js/main.js @@ -66,16 +66,16 @@ $(function() { var keys = $('#text').val(); if (keys.length) { - var msg = '{"type":"key","value": "' + (keys.replace('"', '\\"')) + '"}'; + var msg = '{"type":"text","value": "' + (keys.replace('"', '\\"')) + '"}'; ws.send(msg); } }); - $('#text-send').on('keyup', function(e) { + $('#text').on('keyup', function(e) { var keys = $('#text').val(); if (e.keyCode === 13) { - var msg = '{"type":"key","value": "' + (keys.replace('"', '\\"')) + '"}'; + var msg = '{"type":"text","value": "' + (keys.replace('"', '\\"')) + '"}'; ws.send(msg); } }); @@ -83,20 +83,23 @@ $(function() { $('#live-text').on('keyup', function(e) { var value = $(this).val(); + var live = false; if (e.keyCode === 8) { - value = 'backspace'; + var msg = '{"type":"key","value": "backspace"}'; + ws.send(msg); } else if (e.keyCode === 13) { - value = 'enter'; - } - - if (value.length) { + var msg = '{"type":"key","value": "enter"}'; + ws.send(msg); + } else if (value.length) { if (value === ' ') { - value = 'space'; + var msg = '{"type":"key","value": "space"}'; + ws.send(msg); + } else { + var msg = '{"type":"text","value": "' + (value.replace('"', '\\"')) + '"}'; + ws.send(msg); } - var msg = '{"type":"key","value": "' + (value.replace('"', '\\"')) + '"}'; - ws.send(msg); $(this).val(''); } }); diff --git a/server/run_server.php b/server/run_server.php index 631d944..3265163 100755 --- a/server/run_server.php +++ b/server/run_server.php @@ -100,29 +100,28 @@ $server->addMessageHandler('keys', function (ConnectionInterface $from, array $d $server->addMessageHandler('key', function (ConnectionInterface $from, array $data) { $value = $data['value'] ?? null; + $map = [ + 'up' => 'Up', + 'down' => 'Down', + 'left' => 'Left', + 'right' => 'Right', + 'tab' => 'Tab', + 'backspace' => 'BackSpace', + 'enter' => 'Return', + 'space' => 'space', + 'escape' => 'Escape', + ]; + + if (!empty($value) && isset($map[$value])) { + return shell_exec(sprintf('xdotool key %s', $map[$value])); + } +}); + +$server->addMessageHandler('text', function (ConnectionInterface $from, array $data) { + $value = $data['value'] ?? null; + $live = $data['live'] ?? false; if (!empty($value)) { - switch ($value) { - case 'up': - return shell_exec('xdotool key Up'); - case 'down': - return shell_exec('xdotool key Down'); - case 'left': - return shell_exec('xdotool key Left'); - case 'right': - return shell_exec('xdotool key Right'); - case 'tab': - return shell_exec('xdotool key Tab'); - case 'backspace': - return shell_exec('xdotool key BackSpace'); - case 'enter': - return shell_exec('xdotool key Return'); - case 'space': - return shell_exec('xdotool key space'); - case 'escape': - return shell_exec('xdotool key Escape'); - } - return shell_exec(sprintf('xdotool type %s', escapeshellarg($value))); } });