您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
To search scripts using Google Search
当前为
// ==UserScript== // @name GreasyFork Search // @namespace http://tampermonkey.net/ // @version 0.3.1 // @description To search scripts using Google Search // @author CY Fung // @match https://greasyfork.org/* // @icon https://www.google.com/s2/favicons?sz=64&domain=greasyfork.org // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; let input = document.querySelector('form input[name="q"]'); if (!(input instanceof HTMLInputElement)) return; let form = input.closest('form'); if (!(form instanceof HTMLFormElement)) return; let locales = [...document.querySelectorAll('select#language-selector-locale > option')].map(x => x.value) form.addEventListener('submit', function (evt) { let form = evt.target; if (!(form instanceof HTMLFormElement)) return; let input = form.querySelector('input[name="q"]'); if (!(input instanceof HTMLInputElement)) return; let value = input.value; let oldValue = value; const lang = document.documentElement.lang || ''; let useLang = false; let u = 0; let isGoogleSearch = false; let sites = []; const split = value.split(/\s+/); let reformedSplit = []; for (const s of split) { if (!isGoogleSearch && /^[a-z][a-z0-9_-]{2,}(\.[a-z][a-z0-9_-]{2,})*(\.[a-z-]{2,4})+$/.test(s)) { sites.push(s); } else if (u === 0 && s === 'g') { isGoogleSearch = true; } else if (locales.indexOf(s) >= 0 || s === lang) { useLang = s; } else { reformedSplit.push(s); } u++; } value = reformedSplit.join(' ') if (isGoogleSearch && value) { let q = value.replace('g ', ''); let m = "-inurl%3A%22%2Fusers%2F%22+-inurl%3A%22%2Fdiscussions%22-inurl%3A%22%2Fstats%22+-inurl%3A%22%2Ffeedback%22+-inurl%3A%22%2Fcode%22+-inurl%3A%22q%3D%22+-inurl%3A%22%2Fby-site%2F%22+inurl%3A%22%2Fscripts%2F%22+site%3Agreasyfork.org"; let lr = useLang ? `&lr=lang_${useLang}` : ''; evt.preventDefault(); location.href = `https://www.google.com/search?q=${encodeURIComponent(q)}+${m}${lr}` } else if (value) { if (!form.querySelector('input[name="site"]')) { input.parentNode.insertBefore(Object.assign(document.createElement('input'), { type: 'hidden', name: 'site', value: '' } ), input.nextSibiling); } const site = form.querySelector('input[name="site"]'); value = value.replace(/\s+/g, ' '); if (sites.length === 1) { site.value = sites[0]; } else site.value == ''; if (form.getAttribute('action') === `/${lang}/scripts` && useLang && useLang !== lang) { form.setAttribute('action', `/${useLang}/scripts`) } if (site.value === '') site.remove(); if (value !== oldValue) input.value = value; } else { evt.preventDefault(); } }) // Your code here... })();