-
-
Save anonymous/a260ec48257b50277244abc78f068c26 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name E-Hentai Search Pre-fill/Append | |
// @author Aaron Bassett http://foobr.co.uk (original script owner) | |
// @description Attempts to prefill/append with English and Chinese languages | |
// @include http://g.e-hentai.org/* | |
// @include https://exhentai.org/* | |
// @grant GM_getValue | |
// @grant GM_setValue | |
// ==/UserScript== | |
(function(){ | |
function prefillEnglish() { | |
document.getElementsByName('f_search')[0].value = 'language:English$ '; | |
document.getElementsByName('f_search')[0].focus(); | |
document.getElementsByName('f_search')[0].setSelectionRange(30,30); | |
} | |
var prefillEnglishShortcut = (GM_getValue('mainShortcut') != undefined && GM_getValue('mainShortcut') != '') ? GM_getValue('mainShortcut') : "CTRL+Z"; | |
shortcut(prefillEnglishShortcut,prefillEnglish); | |
function appendEnglish() { | |
document.getElementsByName('f_search')[0].value = document.getElementsByName('f_search')[0].value +' language:English$ '; | |
document.getElementsByName('f_search')[0].focus(); | |
document.getElementsByName('f_search')[0].setSelectionRange(120,120); | |
} | |
var appendEnglishShortcut = (GM_getValue('resetShortcut') != undefined && GM_getValue('resetShortcut') != '') ? GM_getValue('resetShortcut') : "CTRL+X"; | |
shortcut(appendEnglishShortcut,appendEnglish); | |
function prefillChinese() { | |
document.getElementsByName('f_search')[0].value = 'language:Chinese$ '; | |
document.getElementsByName('f_search')[0].focus(); | |
document.getElementsByName('f_search')[0].setSelectionRange(30,30); | |
} | |
var prefillChineseShortcut = (GM_getValue('mainShortcut2') != undefined && GM_getValue('mainShortcut2') != '') ? GM_getValue('mainShortcut2') : "CTRL+A"; | |
shortcut(prefillChineseShortcut,prefillChinese); | |
function appendChinese() { | |
document.getElementsByName('f_search')[0].value = document.getElementsByName('f_search')[0].value +' language:Chinese$ '; | |
document.getElementsByName('f_search')[0].focus(); | |
document.getElementsByName('f_search')[0].setSelectionRange(120,120); | |
} | |
var appendChineseShortcut = (GM_getValue('resetShortcut2') != undefined && GM_getValue('resetShortcut2') != '') ? GM_getValue('resetShortcut2') : "CTRL+S"; | |
shortcut(appendChineseShortcut,appendChinese); | |
})(); | |
function shortcut(shortcut,callback,opt) { | |
var default_options = {'type':'keydown','propagate':false,'target':document} | |
if(!opt) opt = default_options; | |
else {for(var dfo in default_options) {if(typeof opt[dfo] == 'undefined') opt[dfo] = default_options[dfo];}} | |
var ele = opt.target; | |
if(typeof opt.target == 'string') ele = document.getElementById(opt.target); | |
var ths = this; | |
var func = function(e) { | |
e = e || window.event; | |
if (e.keyCode) code = e.keyCode; | |
else if (e.which) code = e.which; | |
var character = String.fromCharCode(code).toLowerCase(); | |
var keys = shortcut.toLowerCase().split("+"); | |
var kp = 0; | |
var shift_nums = {"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":"\"",",":"<",".":">","/":"?","\\":"|"} | |
var special_keys = {'esc':27,'escape':27,'tab':9,'space':32,'return':13,'enter':13,'backspace':8,'scrolllock':145,'scroll_lock':145,'scroll':145,'capslock':20,'caps_lock':20,'caps':20,'numlock':144,'num_lock':144,'num':144,'pause':19,'break':19,'insert':45,'home':36,'delete':46,'end':35,'pageup':33,'page_up':33,'pu':33,'pagedown':34,'page_down':34,'pd':34,'left':37,'up':38,'right':39,'down':40,'f1':112,'f2':113,'f3':114,'f4':115,'f5':116,'f6':117,'f7':118,'f8':119,'f9':120,'f10':121,'f11':122,'f12':123} | |
for(var i=0; k=keys[i],i<keys.length; i++) { | |
if(k == 'ctrl' || k == 'control') {if(e.ctrlKey) kp++; | |
} else if(k == 'shift') {if(e.shiftKey) kp++; | |
} else if(k == 'alt') {if(e.altKey) kp++; | |
} else if(k.length > 1) { if(special_keys[k] == code) kp++; | |
} else { if(character == k) kp++; | |
else {if(shift_nums[character] && e.shiftKey) { | |
character = shift_nums[character]; | |
if(character == k) kp++; | |
} | |
} | |
} | |
} | |
if(kp == keys.length) { | |
callback(e); | |
if(!opt['propagate']) { | |
e.cancelBubble = true; | |
e.returnValue = false; | |
if (e.stopPropagation) { | |
e.stopPropagation(); | |
e.preventDefault(); | |
} | |
return false; | |
} | |
} | |
} | |
if(ele.addEventListener) ele.addEventListener(opt['type'], func, false); | |
else if(ele.attachEvent) ele.attachEvent('on'+opt['type'], func); | |
else ele['on'+opt['type']] = func; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment