Greasy Fork

Greasy Fork is available in English.

【手机】去除百度跳转及去推广,标识csdn下载

由于手机搜索东西搜到cdsn下载的网站,特意标识一下防止误进恶心人

目前为 2021-03-02 提交的版本。查看 最新版本

// ==UserScript==
// @name         【手机】去除百度跳转及去推广,标识csdn下载
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  由于手机搜索东西搜到cdsn下载的网站,特意标识一下防止误进恶心人
// @author       MT-戒酒的李白染
// @match        http*://*.baidu.com/from=*
// @match        http*://*.baidu.com/s?word=*
// @match        http*://*.baidu.com/s?from=*
// @grant        GM_addStyle
// @require	     http://cdn.staticfile.org/jquery/2.1.4/jquery.min.js
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';
    var Flag_Title_css = `.component-box .praise {
padding-right: 20px;
background: #ff5722;
text-indent: 1em;
border-top-left-radius: 50px;
border-top-right-radius: 50px;
border-bottom-left-radius: 50px;
border-bottom-right-radius: 50px;
background: -webkit-linear-gradient(left,#ff5722,#f78d6b);
background: -o-linear-gradient(right,#ff5722,#f78d6b);
background: -moz-linear-gradient(right,#ff5722,#f78d6b);
background: linear-gradient(to right,#ff5722,#f78d6b);

}
.component-box .praise,.component-box .share {
/*width: 110px;
height: 34px;
line-height: 34px;*/
height:auto;line-height:normal;color: #fff;
}
.component-box a {
display: inline-block;
font-size: 14px;
}
.component-box {
/*margin: 0 auto;
text-align: center;
display: inline;*/
display: flex;
margin: 0;
text-align: left;
font-size: 0;
position: relative;
width: 260px;
}
`


    function repalceLink_Event(){
        function repalceA_Tag(DOM,new_href){
            let aTag = Array.from(DOM.getElementsByTagName("a"));
            aTag.forEach((item)=>{
                item.href=new_href;
            })
        }
        function addWebsiteFlag(DOM){
            let WebsiteTitle = Array.from(DOM.getElementsByClassName("c-title-text"));
            if(WebsiteTitle.length){
                console.log(WebsiteTitle[0]);
                let Title_Div = document.createElement("div");
                Title_Div.className ='component-box';
                Title_Div.innerHTML=`<a class="praise" href="javascript:;">CSDN下载</a>`;
                WebsiteTitle[0].append(Title_Div);
            }

        }
        function removeControl(){
            $("#page-relative").remove();//末尾 ===>>  大家都在搜  广告位
            $(".c-recomm-wrap.new-ux-recom-wrapper.c-bg-color-white.animation").remove();//中间 ===>>  大家都在搜  广告位
            $("#pop-up").remove(); //跳转百度app提示
            let searchWebSitePages = $(".c-result.result");
            searchWebSitePages=Array.from(searchWebSitePages);
            searchWebSitePages.forEach((items,index)=>{
                let searchArticleOriginal_link = JSON.parse(items.dataset.log)['mu'];
                if(searchArticleOriginal_link.match(/recommend_list.baidu.com/g)){
                    console.log('%c%s','color:blue;',"删除广告==>大家都在搜");
                    items.remove();
                }
                if(items.outerText.substr(0,5)=="大家还在搜"){
                    console.log('%c%s','color:blue;',"删除广告==>大家都在搜:显示出来的");
                    items.remove();
                }
                if(items.childNodes.length>1){
                    console.log('%c%s','color:blue;',"删除广告==>大家都在搜:隐藏的");
                    items.childNodes[1].remove();
                }
                if(items.getElementsByClassName('component-box').length==0&&searchArticleOriginal_link.match(/http(s|):\/\/download.csdn.net/g)){
                    addWebsiteFlag(items);
                    console.log("插入csdn标题");
                }
                if(items.hasAttribute("srcid")&&items.attributes.srcid.value.match(/(sigma|vid_fourfold)/g)){
                    console.log('%c%s','color:blue;',"删除推荐==>xxx 相关 xxx");
                    items.remove();
                }
            })
        }
        function replaceLink(){
            let searchWebSitePages = $(".c-result.result");
            searchWebSitePages=Array.from(searchWebSitePages);
            searchWebSitePages.forEach((items,index)=>{
                let searchArticleOriginal_link = JSON.parse(items.dataset.log)['mu'];
                if(searchArticleOriginal_link){
                    let BaiduSearchReplaceAfter = items.getElementsByTagName("article")[0];
                    if(BaiduSearchReplaceAfter&&BaiduSearchReplaceAfter.hasAttribute('rl-link-href')){
                        let BaiduSearchReplaceAfterValue = BaiduSearchReplaceAfter.getAttributeNode("rl-link-href").value;
                        if(!BaiduSearchReplaceAfterValue.match(/http(s|):\/\/m.baidu.com\/from/g)){
                            console.info('%c%s','color:red;',"当前的 ===>> "+BaiduSearchReplaceAfterValue);
                            return
                        }
                        if(BaiduSearchReplaceAfterValue.match(/http:\/\/www.internal.video.baidu.com/g)||searchArticleOriginal_link.match(/http:\/\/www.internal.video.baidu.com/g)){

                            let internalVideo = decodeURIComponent(BaiduSearchReplaceAfter.getAttribute("rl-link-data-log"));
                            let internalVideoMatch = internalVideo.match(/\/sf\?pd=video_pag(.*?)={/g)[0];
                            let newinternalVideo = internalVideoMatch.substring(0,internalVideoMatch.length-2);
                            console.log('%c%s','color:orange;',"修复后的视频:"+newinternalVideo);
                            BaiduSearchReplaceAfter.setAttribute("rl-link-href",newinternalVideo);
                            repalceA_Tag(items,newinternalVideo);
                        }else if(searchArticleOriginal_link.match(/http:\/\/m.baidu.com\/productcard/g)){
                            console.info('%c%s','color:red;',"该链接不予替换");
                        }else{
                            BaiduSearchReplaceAfter.setAttribute("rl-link-href",searchArticleOriginal_link);
                            repalceA_Tag(items,searchArticleOriginal_link);
                            //console.info('%c%s','color:red;',"修复后的 ===>> "+searchArticleOriginal_link);
                        }
                    }
                }
            })
        }
        function main(){
            removeControl();
            replaceLink();
        }
        main();
    }
    var runNum = 0;
    function replaceLink(){
        Array.from($("script")).forEach((items,index)=>{
            if(items.text.match(/define\(\"@molecule\/aftclk\/index\",/g)){
                console.log('%c%s','color:blue;',"删除跳转百度app提示js==>");
                items.remove();
            }
        })
        $(".search-page").bind("DOMNodeInserted",function(){
            console.log("当前执行次数:"+runNum);
            repalceLink_Event();
            runNum=runNum+1;
        })
    }




    function main_start() {
        replaceLink();


    }
    GM_addStyle(".c-container.na-ec-item,.c-recomm-wrap.new-ux-recom-wrapper.animation{display:none}");
    GM_addStyle(Flag_Title_css);
    $(function(){

        main_start();
    })
})();