-
-
Save croepha/7b53f211ae4be3c526c3 to your computer and use it in GitHub Desktop.
// This will open up a prompt for text to send to a console session on digital ocean | |
// Useful for long passwords | |
(function () { | |
var t = prompt("Enter text to be sent to console, (This wont send the enter keystroke)").split(""); | |
function f() { | |
var character = t.shift(); | |
var i=[]; | |
var code = character.charCodeAt(); | |
var needs_shift = "!@#$%^&*()_+{}:\"<>?~|".indexOf(character) !== -1 | |
var shift = XK_Shift_L; // To help with minification | |
function key(keycode, down) { | |
i=i.concat(RFB.messages.keyEvent(keycode, down)); | |
} | |
if (needs_shift) { | |
key(shift,1); | |
} | |
key(code,1); | |
key(code,0); | |
if (needs_shift) { | |
key(shift,0); | |
} | |
rfb._sock.send(i); | |
if (t.length > 0) { | |
setTimeout(f, 10); | |
} | |
} | |
f(); | |
})(); | |
// Minified version: | |
!function(){function t(){function n(t,e){s=s.concat(RFB.messages.keyEvent(t,e))}var o=e.shift(),s=[],i=o.charCodeAt(),c=-1!=='!@#$%^&*()_+{}:"<>?~|'.indexOf(o),r=XK_Shift_L;c&&n(r,1),n(i,1),n(i,0),c&&n(r,0),rfb._sock.send(s),e.length>0&&setTimeout(t,10)}var e=prompt("Enter text to be sent to console, (This wont send the enter keystroke)").split("");t()}(); | |
// This is an alternate version that will open a box on ctrl+shift+v or command+shift+v | |
// this version might work better on browsers that block prompt from console | |
(function(){ | |
var shift_down = false; | |
var ctrl_down = false; | |
var super_down = false; | |
var v_down = false; | |
$(document).keydown(function(e) { | |
if (e.which == 17) { ctrl_down = true; } | |
else if (e.which == 16) { shift_down = true; } | |
else if (e.which == 91) { super_down = true; } | |
else if (e.which == 86) { v_down = true; } | |
if (v_down && shift_down && (super_down || ctrl_down) ) { | |
ctrl_down = false; | |
shift_down = false; | |
super_down = false; | |
var t = prompt("Enter text to be sent to console, (This wont send the enter keystroke)").split(""); | |
function f() { | |
var character = t.shift(); | |
var i=[]; | |
var code = character.charCodeAt(); | |
var needs_shift = "!@#$%^&*()_+{}:\"<>?~|".indexOf(character) !== -1 | |
var shift = XK_Shift_L; // To help with minification | |
function key(keycode, down) { | |
i=i.concat(RFB.messages.keyEvent(keycode, down)); | |
} | |
if (needs_shift) { | |
key(shift,1); | |
} | |
key(code,1); | |
key(code,0); | |
if (needs_shift) { | |
key(shift,0); | |
} | |
rfb._sock.send(i); | |
if (t.length > 0) { | |
setTimeout(f, 10); | |
} | |
} | |
setTimeout(f, 10); | |
} | |
}); | |
$(document).keyup(function(e) { | |
if (e.which == 17) { ctrl_down = false; } | |
else if (e.which == 16) { shift_down = false; } | |
else if (e.which == 91) { super_down = false; } | |
else if (e.which == 86) { v_down = false; } | |
}); | |
})(); | |
// Minified version: | |
(function(){var d=!1,b=!1,c=!1,f=!1;$(document).keydown(function(a){17==a.which?b=!0:16==a.which?d=!0:91==a.which?c=!0:86==a.which&&(f=!0);if(f&&d&&(c||b)){c=d=b=!1;var g=prompt("Enter text to be sent to console, (This wont send the enter keystroke)").split(""),h=function(){function a(b,c){d=d.concat(RFB.messages.keyEvent(b,c))}var e=g.shift(),d=[],b=e.charCodeAt(),e=-1!=='!@#$%^&*()_+{}:"<>?~|'.indexOf(e),c=XK_Shift_L;e&&a(c,1);a(b,1);a(b,0);e&&a(c,0);rfb._sock.send(d);0<g.length&&setTimeout(h,10)}; | |
setTimeout(h,10)}});$(document).keyup(function(a){17==a.which?b=!1:16==a.which?d=!1:91==a.which?c=!1:86==a.which&&(f=!1)})})(); |
So Awesome. Thanks for this!
THANK YOU SOOOOOOO MUCH <3 I started typing out my ssh key...
Wow. <3 I love you so much right now.
On the latest version of Chrome (at the time of writing) I get the following error:
Package is invalid. Details: 'Could not load background page 'background.html'.'.
Thanks for sharing !
I cannot add chrome extension. It says that cannot add background.html.
Respect! thanks for sharing.
haha nice! 👍
thank you so much
hi
how about |
it changes ssh key letters to strange format.
for example = changed to +, date number to _@!*)&@$
Doesnt work anymore
kevin1, your right.
I updated the code to handle those characters
where i have to update this code
It isn't working!
Not working anymore.
Thank you for this, it works perfectly. I also ran into the same issue where the console kind of trips over itself and everything is capitalized. When I set the timeout to 100 instead of 10 (on line 27), I don't run into this issue, at least as frequently. It's a bit annoying to wait for the text to enter slowly, but I won't need to do it often so idc.
thanks all! definitely works for me, I also had to increase the timeout, as elmehalawi mentioned, I used Chrome
If characters are sent in the wrong order, watzon's script and increasing the timeout. This worked for me.
to facilitate a bit I created an extension follows the git and published extension
https://github.com/andrehrferreira/webextension-digitalocean-pasteconsole
https://chrome.google.com/webstore/detail/digital-ocean-paste-in-co/pigihfibffjpekhnjeofgbdkppghbofk