// ==UserScript== // @name Fix Google Search Options // @description Google検索で検索オプションのメニューをサイドバーへ移して表示します // @namespace https://pcvogel.sarakura.net/ // @include http://*.google.*/search?* // @include https://*.google.*/search?* // @include http://*.google.*/images?* // @include https://*.google.*/images?* // @exclude https://*.google.*/*tbm=shop* // @exclude https://*.google.*/*tbm=bks* // @exclude https://*.google.*/*tbm=app* // @exclude https://*.google.*/*tbm=lcl* // @exclude https://*.google.*/preferences?* // @grant GM_addStyle // @version 1.4.6 // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/9230/Fix%20Google%20Search%20Options.user.js // @updateURL https://update.greasyfork.icu/scripts/9230/Fix%20Google%20Search%20Options.meta.js // ==/UserScript== (function() { var CSS = '#center_col{ margin-left:20px !important; }'; GM_addStyle(CSS); //lr:検索範囲 function get_form_lr(){ var list = ['lang_ja', 'lang_en','']; var strlist = ['日本語のページ', '英語のページ','ウェブ全体']; var baseurl = document.location.href.replace(/lr=([^&]+)&?/, ''); var current = (RegExp.$1)? RegExp.$1 : ''; var generateOption = function(v) { var i; var valuestr; for( i = 0 ; i < list.length ; i++ ){ if( v == list[i] ){ valuestr = strlist[i]; } } return ''; }; var opts = list.map(generateOption).join("\n"); return ''; } //検索期間 function get_form_qdr(){ var list = ['', 'qdr%3Ah','qdr%3Ad','qdr%3Aw','qdr%3Am','qdr%3Am3','qdr%3Am6','qdr%3Ay','qdr%3Ay3',]; var strlist = ['期間指定なし','1 時間以内','24 時間以内','1 週間以内','1 か月以内','3 か月以内','6 か月以内','1 年以内','3 年以内']; var baseurl = document.location.href.replace(/tbs=([^&]+)&?/, ''); var currenttbs = (RegExp.$1)? RegExp.$1 : ''; currenttbs = currenttbs.replace(/\:/, '%3A'); var notqdr_tbs = currenttbs.replace(/,?(qdr%3A[^&^,]+)[&,]?/, ''); var currentqdr; if( notqdr_tbs == currenttbs ){ currentqdr = ''; }else{ currentqdr = RegExp.$1; } currentqdr = currentqdr.replace(/%2C.+/, ''); currentqdr = currentqdr.replace(/,.+/, ''); var generateOption = function(v) { var i; var valuestr; for( i = 0 ; i < list.length ; i++ ){ if( v == list[i] ){ valuestr = strlist[i]; } } var newtbs; if( currenttbs == '' ){ if( v == '' ){ newtbs = ''; }else{ newtbs = 'tbs=' + v; } }else{ if( currentqdr == '' ){ if( v == '' ){ newtbs = 'tbs=' + currenttbs; }else{ newtbs = 'tbs=' + currenttbs + ',' + v; } }else{ if( v == '' ){ newtbs = 'tbs=' + notqdr_tbs; }else{ newtbs = 'tbs=' + notqdr_tbs + ',' + v; } } } newtbs = newtbs.replace( /tbs=,/ , 'tbs='); return ''; }; var opts = list.map(generateOption).join("\n"); return ''; } function get_form_iXX( regstr , argstr , list , strlist ){ var baseurl = document.location.href.replace(/tbs=([^&]+)&?/, ''); var currenttbs = (RegExp.$1)? RegExp.$1 : ''; currenttbs = currenttbs.replace(/\:/g, '%3A'); currenttbs = currenttbs.replace(/,,/, ','); var notiXX_tbs = currenttbs.replace( regstr , '' ); var currentiXX; if( notiXX_tbs == currenttbs ){ currentiXX = ''; }else{ currentiXX = RegExp.$1; } currentiXX = currentiXX.replace(/%2C.+/, ''); currentiXX = currentiXX.replace(/,.+/, ''); var generateOption = function(v) { var i; var valuestr; for( i = 0 ; i < list.length ; i++ ){ if( v == list[i] ){ valuestr = strlist[i]; } } var newtbs; if( currenttbs == '' ){ if( v == '' ){ newtbs = ''; }else{ newtbs = 'tbs=' + v; } }else{ if( currentiXX == '' ){ if( v == '' ){ newtbs = 'tbs=' + currenttbs; }else{ newtbs = 'tbs=' + currenttbs + ',' + v; } }else{ if( v == '' ){ newtbs = 'tbs=' + notiXX_tbs; }else{ newtbs = 'tbs=' + notiXX_tbs + ',' + v; } } } newtbs = newtbs.replace( /tbs=,/ , 'tbs='); return ''; }; var opts = list.map(generateOption).join("\n"); return ''; } function get_form_imagesearch( type ){ var str = "" , bstr; if( type == 1 ){ bstr = "

"; }else{ bstr = "
"; } str = "
" + get_form_iXX( /(isz%3A[^&^,]+)[&]?/ , 'isz' , ['', 'isz%3Al','isz%3Am','isz%3Ai'],['すべてのサイズ','大','中','アイコンサイズ']) + bstr + get_form_iXX(/(ic%3A[^&^,]+)[&]?/ , 'ic' , ['', 'ic%3Acolor','ic%3Agray','ic%3Atrans'],['すべての色','フルカラー','白黒','透明']) + bstr + get_form_iXX(/(itp%3A[^&^,]+)[&]?/ , 'itp' , ['', 'itp%3Aclipart','itp%3Alineart','itp%3Aanimated'],['すべての種類','クリップアート','線画','GIF']) + bstr + get_form_iXX(/(qdr%3A[^&^,]+)[&]?/ , 'qdr' , ['', 'qdr%3Ad','qdr%3Aw','qdr%3Am','qdr%3Ay',],['期間指定なし','24 時間以内','1 週間以内','1 か月以内','1 年以内']) + bstr + get_form_iXX(/(il%3A[^&^,]+)[&]?/ , 'qdr' , ['','il%3Acl','il%3Aol' ],['すべて','クリエイティブ・コモンズ ライセンス','商用およびその他のライセンス']) + "
"; return str; } var e; var style; var targetElement , newDiv , parentDiv; if( document.URL.indexOf("tbm=") == -1 ){ targetElement = document.getElementById('center_col'); newDiv = document.createElement("div"); newDiv.style.position = "fixed"; newDiv.style.left = "30px"; newDiv.style.top = "200px"; newDiv.style.zIndex = 90000; newDiv.innerHTML = "
" + get_form_lr() + "

" + get_form_qdr() + "
"; parentDiv =targetElement.parentNode; parentDiv.insertBefore(newDiv, parentDiv.firstChild); document.getElementById('rcnt').style.paddingLeft = (newDiv.clientWidth+30).toString(10) + "px"; var entryElement; entryElement = document.getElementById('get_form_qdr'); entryElement.addEventListener('change', function() { var baseurl = document.location.href.replace(/&+tbs=([^&]+|)(&+|$)/, '&'); var url = baseurl.replace(/https*:\/\/www\.google\.co\.jp\/search\?/, 'search?'); url = url + '&' + this.options[ this.selectedIndex ].value; location.href = url; url = url.replace( /,,/ , ',' ); url = url.replace( /,$/ , '' ); }); entryElement = document.getElementById('get_form_lr'); entryElement.addEventListener('change', function() { var baseurl = document.location.href.replace(/&+lr=([^&]+|)(&+|$)/, '&'); baseurl = baseurl.replace( /\?lr=.+?&/ , '?' ); var url = baseurl.replace(/https*:\/\/www\.google\.co\.jp\/search\?/, 'search?'); url = url + '&lr=' + this.options[ this.selectedIndex ].value; location.href = url; }); } if( document.URL.indexOf("tbm=isch") > 0 ){ trustedTypes.createPolicy('default', { createHTML: (unsafeValue) => { return unsafeValue; } }); e = document.getElementById('islrg'); e = document.getElementById('kO001e'); newDiv = document.createElement("div"); newDiv.style.position = "fixed"; newDiv.style.left = "30px"; newDiv.style.top = "200px"; newDiv.style.zIndex = 90000; newDiv.innerHTML = get_form_imagesearch(1); e.appendChild(newDiv); style = document.createElement("style"); style.setAttribute( "type" , "text/css" ); style.appendChild( document.createTextNode("") ); document.getElementsByTagName("head")[0].appendChild(style); style.sheet.insertRule(".islrc {padding-left:160px !important; width:90% !important;}" , style.sheet.cssRules.length ); e = document.getElementsByClassName('D7EDBF8C40'); for( var i = 0; i < e.length ; i++ ){ e[i].addEventListener('click', function() { var baseurl = document.location.href.replace(/&+tbs=([^&]+|)(&+|$)/, '&'); var url = baseurl.replace(/https*:\/\/www.google.co.jp\/search\?/, 'search?'); url = url + '&' + this.options[ this.selectedIndex ].value; url = url.replace( /,,/ , ',' ); url = url.replace( /,$/ , '' ); location.href = url; }); } return; } })();