// ==UserScript==
// @name Mturk Radio Keybinds
// @namespace https://gist.github.com/Kadauchi
// @version 2.1.1
// @description Keybinds to select radios
// @author Kadauchi
// @icon http://i.imgur.com/oGRQwPN.png
// @include /^https://(www\.mturkcontent|s3\.amazonaws)\.com/
// @grant GM_getValue
// @grant GM_setValue
// @downloadURL none
// ==/UserScript==
document.body.insertAdjacentHTML(
`afterbegin`,
`
` +
`` +
`❔` +
`` +
`` +
`` +
`
`
);
const numbers = document.getElementById(`numbers`);
const letters = document.getElementById(`letters`);
const autosubmit = document.getElementById(`autosubmit`);
numbers.addEventListener(`change`, function (event) {
GM_setValue(`numbers`, numbers.checked);
});
letters.addEventListener(`change`, function (event) {
GM_setValue(`letters`, letters.checked);
});
autosubmit.addEventListener(`change`, function (event) {
GM_setValue(`autosubmit`, autosubmit.checked);
});
window.addEventListener(`keydown`, function (event) {
const key = event.key;
if (numbers.checked && key.match(/[1-9]/)) {
const radio = document.querySelectorAll(`[type="radio"]`)[key - 1];
if (radio) radio.click();
if (autosubmit.checked) document.querySelector(`[type="submit"]`).click();
}
if (letters.checked && key.match(/z|x|c|v|b|n|m|,|\./)) {
console.log(key);
const convert = { 'z': 0, 'x': 1, 'c': 2, 'v': 3, 'b': 4, 'n': 5, 'm': 6, ',': 7, '.': 8 };
const radio = document.querySelectorAll(`[type="radio"]`)[convert[key]];
if (radio) radio.click();
if (autosubmit.checked) document.querySelector(`[type="submit"]`).click();
}
if (key.match(/Enter/)) {
document.querySelector(`[type="submit"]`).click();
}
});
window.focus();