yimuhe

1.去除javlibrary详情页面中下载url的重定向;高亮yimuhe的下载链接;添加 在javbus中查询 链接

Stan na 18-03-2023. Zobacz najnowsza wersja.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

// ==UserScript==
// @name         yimuhe
// @namespace    https://greasyfork.org/zh-CN/scripts/38740-yimuhe
// @version      2.3.4
// @description  1.去除javlibrary详情页面中下载url的重定向;高亮yimuhe的下载链接;添加 在javbus中查询 链接
//               2.破坏torrentkitty的脚本变量引用. 原先l8l1X变量是引用window,然后给加定时器,不停地添加页面的mousedown事件,导致鼠标点击任何地方都会跳转到广告页面
//               3.给141jav每个车牌号后面加上复制按钮;添加 在JavLib中查询 链接
//               4.给javdb每个车牌号后面添加 在JavLib中查询 链接, 所有链接都添加可下载条件
//               5.javbus详情页面加上的车牌号后面添加 在JavLib中查询
//               6.解决csdn网页复制带尾巴问题

// @author       You

// @require      https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js

// @include      http://*.javlib.com/*
// @include      http*:/*.torrentkitty.*/*
// @include      http*://*.u65w.com/*
// @include      http*://*.141jav.com/*

// @include      http*://javdb003.com/*
// @include      http*://javdb004.com/*

// @include      http*://*.seejav.men/*
// @include      http*://*.javbus.com/*
// @include      http*://*.fanbus.*/*

// @include      http*://*.csdn.*/*

// @run-at       document-end
// @grant        GM_xmlhttpRequest
// @connect      *
// ==/UserScript==

(function() {
    'use strict';

    console.info('========= yimuhe ');



    var javLibDomain="u65w";
    var javLibUrl="https://www."+javLibDomain+".com";
    let javLibRegx="("+javLibDomain+"|javlib|javlibrary)";

    let javdbDomain="javdb003";
    let javdbUrl="https://"+javdbDomain+".com";

    let jav141Domain="141jav";

    let javbusDomain="fanbus";
    const javabusUrl = "https://www."+javbusDomain+".cfd";

    execute(javLibRegx,function(location){
        console.info("====yimuhe====去除javlibrary页面中下载url的重定向;高亮yimuhe的下载链接");
           const mainNode=document.querySelector('#video_comments');

        mainNode.addEventListener('DOMNodeInserted',(a,b,c)=>{
            console.log(123213);
        })
        $.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 toAppendElement = document.querySelector("#video_id > table > tbody > tr > td.text");
        appendCopyButton(chePai,toAppendElement);
        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(javLibRegx+".*\?v=.*",function(location){
        console.info("====yimuhe====javlibrary详情页面中添加 在javbus中查询 链接");
        let chePai = document.querySelector("#video_id > table > tbody > tr > td.text").innerText;
        let toAppendElement = document.querySelector("#video_id > table > tbody > tr > td.text");
        appendCopyButton(chePai,toAppendElement);
        let trTag=document.querySelector("#video_id > table > tbody > tr");
        let javdbQueryId = "javdbQueryId";
        trTag.innerHTML = [trTag.innerHTML,'<td><a id="', javdbQueryId,'"href="',javabusUrl,'/search/=',chePai,'">在javbus中查询</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(e) {
                        console.log(e);
                    },
                    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(e) {
                                    console.log(e);
                                },
                                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','');
        });
    });

    //debugger;
    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.innerHTML = "复 制";
        copyButton.setAttribute('id','copyButton');
        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);
    }
})();