// ==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 = `
`;
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...
})();