// ==UserScript== // @name 网站助手 // @namespace http://tampermonkey.net/ // @version 1.0 // @description 1、简化百度页面,去除广告;2、修改部分网站超链打开窗口为新窗口方式;3、Github搜索列表自动翻译,readme划词翻译 // @author Yisin // @match *://www.baidu.com/* // @match *://www.google.com.hk/* // @match *://bbs.125.la/* // @match *://github.com/* // @grant GM_xmlhttpRequest // @downloadURL none // ==/UserScript== (function() { 'use strict'; var temp1 = `
{text}

{desc}

`; var href = document.location.href; if(href == 'https://www.baidu.com/'){ document.getElementById('s_wrap').style.display = 'none'; document.body.style.overflow = 'hidden'; } else if(href.substring(0, 24) == 'https://www.baidu.com/s?'){ //encodeURIComponent(str) /*var $panel = _$('.opr-recommends-merge-content'); var items = []; items.push(formatByJson(temp1, { url: 'http://v.yinsin.net/images/yslogo.png', word: encodeURIComponent('隐心影视'), text: '隐心影视', desc: 'Vip视频免费看' })); $panel.find('.opr-recommends-merge-panel').html(items.join(''));*/ var cleard = function(){ $('#content_left > div').each(function(){ if(!$(this).hasClass('result') || $(this).find('.m').text() == '广告'){ $(this).html(''); } }); document.getElementById('content_right').innerHTML = ''; } setInterval(cleard, 1000); cleard(); } else if(href.substring(0, 26) == 'https://github.com/search?'){ var $inpo = document.querySelector('input.header-search-input'); if($inpo){ $inpo.value = 'search:start'; } var $p = document.querySelectorAll('.repo-list .repo-list-item p.d-inline-block'); if($p && $p.length){ var i1 = 0; var startFY = function(i2){ var text = $p[i2].innerText; fanyi(text, function(res){ if(res){ i1++; $p[i2].innerText = res; if(i1 < $p.length){ startFY(i1); } } }); } startFY(i1); } } else if(href.substring(0, 19) == 'https://github.com/'){ var redme = document.querySelector('article.entry-content'); redme.addEventListener('mouseup', function(){ var t1 = selectText(); if(t1 && !/^[\s]+$/g.test(t1)){ fanyi(t1, function(res){ if(res){ var ___res = redme.querySelector('.____res'); if(!___res || ___res.className != '____res'){ ___res = document.createElement("div"); ___res.className = '____res'; ___res.style.color = 'red'; ___res.style.position = 'fixed'; ___res.style.right = '10px'; ___res.style.top = '245px'; ___res.style.width = '400px'; ___res.style.height = '600px'; ___res.style.overflow = 'auto'; redme.appendChild(___res); } ___res.innerText = res; } }); } }); var span1 = document.querySelector('.repository-content span'); var t2 = span1.innerText; if(t2 && t2.length > 10){ var b2 = document.createElement("button"); b2.innerText = '翻译'; b2.addEventListener('click', function(){ fanyi(t2, function(res2){ if(res2){ span1.removeChild(b2); span1.innerHTML = span1.innerHTML + '
' + res2; } }); }); span1.appendChild(b2) } } function selectText(){ if(document.Selection){ //ie浏览器 return document.selection.createRange().text; }else{ //标准浏览器 return window.getSelection().toString(); } } // 超链接部分 var eles = document.querySelectorAll('a'); var host = document.location.host; if(eles && eles.length){ for(var i = 0; i < eles.length; i++){ var a = eles[i]; if(a){ if(host == "www.google.com.hk"){ a.target = "_blank"; } else if(host == "bbs.125.la"){ var f = "" + a.onclick; if(f.includes('atarget(this)')){ a.target = "_blank"; a.onclick = null; } } else if(host == "github.com" && a.className == 'v-align-middle'){ a.target = "_blank"; } } } } function fanyi(text, callback){ var call = "YoudaoFanyier.Instance.updateTranslate"; var time = new Date().valueOf(); var param = "type=data&only=on&doctype=jsonp&version=1.1&relatedUrl=http%3A%2F%2Ffanyi.youdao.com%2Fopenapi%3Fpath%3Dweb-mode%26mode%3Dfanyier&keyfrom=test&key=null&callback="+call+"&q="+encodeURIComponent(text)+"&ts="+time; GM_xmlhttpRequest({ method: 'GET', url: "http://fanyi.youdao.com/openapi.do?" + param, headers: {"Accept": "*/*", "connection": "Keep-Alive", "Content-Type":"charset=utf-8", "Referer": "http://fanyi.youdao.com/openapi?path=web-mode&mode=fanyier"}, contentType: "application/json", dataType: 'json', onload: function(response){ if(response.statusText == 'OK'){ try{ var res = response.responseText; if(/^YoudaoFanyier.Instance.updateTranslate/g.test(res)){ res = res.substring(call.length + 1, res.length - 2); } res = JSON.parse(res); if(callback && res.translation && res.translation.length){ callback(res.translation[0]); } }catch(e){ callback(response.statusText); } } else { callback(response.statusText); } } }); } function formatByJson(str, json){ if(json){ for(var key in json){ var exc = new RegExp('\{' + key + '\}', "g"); str = str.replace(exc, json[key]); } } return str; } function _isObject(obj){ return Object.prototype.toString.call(obj) === '[object Object]'; } function _$(selector){ function _jQuery(items){ this.eles = items; this.name = "_jQuery"; if(!items || !items.length){ this.eles = []; } } _jQuery.prototype = { html: function(str){ for(var i = 0; i < this.eles.length; i++){ this.eles[i].innerHTML = str; } }, text: function(str){ if(str){ for(var i = 0; i < this.eles.length; i++){ this.eles[i].innerText = str; } } else { var text = ''; for(var j = 0; j < this.eles.length; j++){ try{ text += this.eles[j].innerText; }catch(e){} } return text; } }, find: function(selector){ var items = []; for(var i = 0; i < this.eles.length; i++){ var all = this.eles[i].querySelectorAll(selector); if(all && all.length){ for(var j = 0; j < all.length; j++){ items.push(all[j]); } } } return new _jQuery(items); }, css: function(key, value){ if(key && value){ for(var i = 0; i < this.eles.length; i++){ this.eles[i].style[key] = value; } } else if(_isObject(key)){ for(var j = 0; j < this.eles.length; j++){ for(var k in key){ this.eles[j].style[k] = key[k]; } } } }, get: function(i){ return this.eles[i || 0]; } }; return new _jQuery(document.querySelectorAll(selector)); } // Your code here... })();