Refactoring

This commit is contained in:
Simon Vieille 2018-02-06 09:22:41 +01:00
parent 8dfd3318bc
commit 6ca1a7cec3
No known key found for this signature in database
GPG key ID: 919533E2B946EA10
2 changed files with 34 additions and 32 deletions

View file

@ -66,16 +66,16 @@ $(function() {
var keys = $('#text').val(); var keys = $('#text').val();
if (keys.length) { if (keys.length) {
var msg = '{"type":"key","value": "' + (keys.replace('"', '\\"')) + '"}'; var msg = '{"type":"text","value": "' + (keys.replace('"', '\\"')) + '"}';
ws.send(msg); ws.send(msg);
} }
}); });
$('#text-send').on('keyup', function(e) { $('#text').on('keyup', function(e) {
var keys = $('#text').val(); var keys = $('#text').val();
if (e.keyCode === 13) { if (e.keyCode === 13) {
var msg = '{"type":"key","value": "' + (keys.replace('"', '\\"')) + '"}'; var msg = '{"type":"text","value": "' + (keys.replace('"', '\\"')) + '"}';
ws.send(msg); ws.send(msg);
} }
}); });
@ -83,20 +83,23 @@ $(function() {
$('#live-text').on('keyup', function(e) { $('#live-text').on('keyup', function(e) {
var value = $(this).val(); var value = $(this).val();
var live = false;
if (e.keyCode === 8) { if (e.keyCode === 8) {
value = 'backspace'; var msg = '{"type":"key","value": "backspace"}';
ws.send(msg);
} else if (e.keyCode === 13) { } else if (e.keyCode === 13) {
value = 'enter'; var msg = '{"type":"key","value": "enter"}';
} ws.send(msg);
} else if (value.length) {
if (value.length) {
if (value === ' ') { 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(''); $(this).val('');
} }
}); });

View file

@ -100,29 +100,28 @@ $server->addMessageHandler('keys', function (ConnectionInterface $from, array $d
$server->addMessageHandler('key', function (ConnectionInterface $from, array $data) { $server->addMessageHandler('key', function (ConnectionInterface $from, array $data) {
$value = $data['value'] ?? null; $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)) { 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))); return shell_exec(sprintf('xdotool type %s', escapeshellarg($value)));
} }
}); });