// ==UserScript==
// @name yimuhe
// @namespace https://greasyfork.org/zh-CN/scripts/38740-yimuhe
// @version 2.0.0
// @description 1.去除javlibrary详情页面中下载url的重定向;高亮yimuhe的下载链接;添加 在javdb中查询 链接
// 2.破坏torrentkitty的脚本变量引用. 原先l8l1X变量是引用window,然后给加定时器,不停地添加页面的mousedown事件,导致鼠标点击任何地方都会跳转到广告页面
// 3.给141jav每个车牌号后面加上复制按钮;添加 在JavLib中查询 链接
// 4.给javdb每个车牌号后面添加 在JavLib中查询 链接, 所有链接都添加可下载条件
// 5.javbus详情页面加上的车牌号后面添加 在JavLib中查询
// @author You
// @include http://*.javlib.com/*
// @include http*:/*.torrentkitty.*/*
// @include http*://*.o58c.com/*
// @include http*://*.f50q.com/*
// @include http*://*.141jav.com/*
// @include http*://javdb33.com/*
// @include http*://*.dmmbus.blog/*
// @include http*://*.javbus.com/*
// @include http*://*.buscdn.bar/*
// @run-at document-end
// @grant GM_xmlhttpRequest
// @connect *
// ==/UserScript==
(function () {
console.info('========= yimuhe ');
var javLibDomain="o58c";
var javLibUrl="https://www."+javLibDomain+".com";
let javLibRegx="("+javLibDomain+"|javlib|javlibrary)";
let javdbDomain="javdb33";
let javdbUrl="https://"+javdbDomain+".com";
let jav141Domain="141jav";
let javbusDomain="dmmbus";
execute(javLibRegx,function(location){
console.info("====yimuhe====去除javlibrary页面中下载url的重定向;高亮yimuhe的下载链接");
$.each($("a[href^='redirect.php?url']"),function(index,a){
//var origin = location.origin;
//a.href = decodeURIComponent(a.href.replace(origin+"/cn/redirect.php?url=",""));
var url = getQueryVariable(a,'url');
a.href = decodeURIComponent(url);
a.text = a.text + " " + a.href + " ";
if(a.href.includes("yimuhe")){
$(a).parentsUntil("tr").closest('.t').css('background-color', '#6B6C83');
a.style='font-size:40px;';
}else{
a.style='font-size:20px;';
}
});
});
execute(javLibRegx+".*\?v=.*",function(location){
console.info("====yimuhe====javlibrary详情页面中添加 在javdb中查询 链接");
let chepai = document.querySelector("#video_id > table > tbody > tr > td.text").innerText;
let trTag=document.querySelector("#video_id > table > tbody > tr");
let javdbQueryId = "javdbQueryId";
trTag.innerHTML = [trTag.innerHTML,'<td><a id="', javdbQueryId,'"href="',javdbUrl,'/search?q=',chepai,'&f=download">在javdb中查询</a></td>'].join('');
});
execute(jav141Domain,function(location){
console.info("3.给141jav每个车牌号后面加上复制按钮;添加 在JavLib中查询 链接.");
document.querySelectorAll('h5.title.is-4.is-spaced > a').forEach(function(element,index){
var chePai=element.innerText.trim();
appendCopyButton(chePai,element.parentElement);
appendHrefJavLib(chePai,element.parentElement);
let markAsOwnerButton = document.createElement('button');
markAsOwnerButton.dataset.type = 2;
markAsOwnerButton.dataset.chePai = chePai;
markAsOwnerButton.appendChild(document.createTextNode('设置为已拥有(javlib)'));
element.parentElement.appendChild(markAsOwnerButton);
markAsOwnerButton.onclick=function(event){
//debugger;
GM_xmlhttpRequest({
method: "GET",
//responseType: "json",
url: javLibUrl+"/cn/vl_searchbyid.php?keyword=" + event.target.dataset.chePai,
onerror: function() {},
onload: function(response) {
if (response.status != 200) {
console.log("失败。。。")
return;
}
let finalUrl = response.finalUrl;
if (finalUrl.includes('vl_searchbyid.php')){
console.log("有多个结果或者没有结果")
//有多个结果或者没有结果
} else {
// 明细页面
let patternAjaxid = /^var[ ]\$ajaxid.*;/m;
let result = patternAjaxid.exec(response.responseText);
let ajaxid = result[0].split('"')[1];
let data = "type=" + event.target.dataset.type + "&targetid="+ajaxid;
//debugger;
GM_xmlhttpRequest({
method: "POST",
responseType: "json",
headers: {"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"},
url: javLibUrl+"/ajax/ajax_cv_favoriteadd.php",
data: data,
onerror: function() {},
onload: function(response) {
if (response.status != 200) {
return;
}
let responseJson = JSON.parse(response.responseText);
if (responseJson.ERROR != 1) {
// 失败
console.log("失败。" + response.responseText);
}
}
});// end GM_xmlhttpRequest
}// end else
} // end onload
});// end GM_xmlhttpRequest
};
});
});
execute(javdbDomain,function(location){
console.info("4.给javdb添加 在JavLib中查询 链接.");
document.querySelectorAll("a.button.is-white.copy-to-clipboard").forEach(function(element,index){
var chePai=element.getAttribute('data-clipboard-text');
appendHrefJavLib(chePai,element.parentElement);
});
console.info("javdb 每个查询链接都添加 可下载 条件");
//document.querySelectorAll('div.tabs.is-boxed a').forEach(function(element,index){
document.querySelectorAll('a').forEach(function(element,index){
console.info(index+element);
let href = element.href;
if(href.includes("video_codes")
||href.includes("directors")
||href.includes("makers")
||href.includes("series")
||href.includes("publishers")
||href.includes("search")){
//element.href = href+"?f=download";
element.href = appendUrlParam(href,"f=download")
}else if(href.includes("actors")){
//element.href = href+"?t=d";
element.href = appendUrlParam(href,"t=d")
}else if(href.includes("tags")){
element.href = appendUrlParam(href,"c10=1")
}
});
document.querySelectorAll("div.tabs.is-boxed a").forEach((element,index)=>{
let href = element.href;
element.href=href.replace('&f=download','');
});
});
execute(javbusDomain,function(location){
console.info("5.给javbus每个车牌号后面加上复制按钮;添加 在JavLib中查询 链接.");
var chePai = document.querySelector("body > div.container > div.row.movie > div.col-md-3.info > p:nth-child(1) > span:nth-child(2)").innerText.trim();
var toAppendElement=document.querySelector("body > div.container > div.row.movie > div.col-md-3.info > p:nth-child(1)");
appendCopyButton(chePai,toAppendElement);
appendHrefJavLib(chePai,toAppendElement);
});
function execute(regExpString,callback){
var href = window.location.href;
var pattern=new RegExp(regExpString);
if(pattern.test(href)){
callback(window.location);
}else{
console.info("输入的参数 %s 与 %s 不匹配",regExpString,href);
}
}
execute("torrentkitty",function(location){
console.info("2.破坏torrentkitty的脚本变量引用. 原先l8l1X变量是引用window,然后给加定时器,不停地添加页面的mousedown事件,导致鼠标点击任何地方都会跳转到广告页面.");
window.l8l1X=1;
});
//////////////////////////////////////////////////////////////////////////////////////////////
/////////////////// 公共方法
/////////////////////////////////////////////////////////////////////////////////////////////
function appendHrefJavLib(chePai,toAppendElement){
var openHref=document.createElement('a');
openHref.href=javLibUrl+"/cn/vl_searchbyid.php?keyword="+chePai;
openHref.target="_blank";
openHref.innerText="JavLib中查询";
toAppendElement.appendChild(openHref);
}
function appendCopyButton(chePai,toAppendElement){
var copyButton = document.createElement('button');
copyButton.appendChild(document.createTextNode('复 制'));
toAppendElement.appendChild(copyButton);
copyButton.onclick=function(){
copyToClipboard(chePai);
};
}
function getQueryVariable(anchor,variable){
var query = anchor.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return false;
}
function appendUrlParam(url,param){
if(url.includes("?")){
return url + "&" + param;
}
return url + "?" + param;
}
function copyToClipboard (text) {
var textArea = document.createElement("textarea");
textArea.style.position = 'fixed';
textArea.style.top = '0';
textArea.style.left = '0';
textArea.style.width = '2em';
textArea.style.height = '2em';
textArea.style.padding = '0';
textArea.style.border = 'none';
textArea.style.outline = 'none';
textArea.style.boxShadow = 'none';
textArea.style.background = 'transparent';
textArea.value = text;
document.body.appendChild(textArea);
textArea.select();
try {
var successful = document.execCommand('copy');
var msg = successful ? '成功复制到剪贴板' : '该浏览器不支持点击复制到剪贴板';
//alert(msg);
} catch (err) {
alert('该浏览器不支持点击复制到剪贴板');
}
document.body.removeChild(textArea);
}
}) ();