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

由于手机搜索东西搜到cdsn下载的网站,特意标识一下防止误进恶心人,自动加载搜索结果的下一页(默认关闭)

当前为 2021-10-13 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

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

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         【手机】去除百度跳转及去推广,标识csdn下载
// @namespace    http://tampermonkey.net/
// @version      0.3.5
// @description  由于手机搜索东西搜到cdsn下载的网站,特意标识一下防止误进恶心人,自动加载搜索结果的下一页(默认关闭)
// @author       MT-戒酒的李白染
// @include    *://m.baidu.com/*
// @include    *://www.baidu.com/*
// @include    *://baijiahao.baidu.com/*
// @include    *://tieba.baidu.com/*
// @include    *://wk.baidu.com/*
// @include    *://jingyan.baidu.com/*
// @include    *://baike.baidu.com/*
// @include    *://zhidao.baidu.com/*
// @grant        GM_addStyle
// @grant        GM_registerMenuCommand
// @grant        GM_unregisterMenuCommand
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM_deleteValue
// @grant        GM_listValues
// @grant        GM_xmlhttpRequest
// @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;
            })
            removeControl();
        }

        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() {
            if ($(".icon-logo").length) {
                $(".icon-logo")[0].remove(); //底部下一页前面图标删除
            }

            $("#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) {
                    if (items.outerText.match(/(大家还在搜|百度APP内打开)/)) {
                        console.log('%c%s', 'color:blue;', "删除广告==>大家都在搜:隐藏的(点击后,跳出来的)");
                        items.childNodes[1].remove();
                    }
                }
                let bottom_logo_text = items.getElementsByClassName("c-color-source"); //底部标识
                if (bottom_logo_text != null) {
                    let bottom_remove_flag = false;
                    let bottom_logo = Array.from(bottom_logo_text);
                    bottom_logo.forEach((items_b, index_b) => {
                        let it_text = items_b.outerText;
                        if (it_text.match(/百度(APP内打开|手机助手)/)) {
                            bottom_remove_flag = true;
                        }
                    })
                    if (bottom_remove_flag) {
                        console.log('%c%s', 'color:blue;', "删除广告==>百度APP内打开");
                        items.remove();
                    }
                }
                if (items.getElementsByClassName('component-box').length == 0 && searchArticleOriginal_link.match(/http(s|):\/\/(download.csdn.net|www.iteye.com\/resource)/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();
                }
            })
            let every_result = $("span");
            every_result = Array.from(every_result);
            every_result.forEach((items, index) => {
                let result_parent = items.parentElement.parentElement;
                if (items.outerText.match(/百度APP内打开/) || result_parent.getAttribute("data-from") == "etpl") {
                    console.log("存在隐藏");
                    every_result[index].parentElement.parentElement.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);
                            if (internalVideoMatch) {
                                internalVideoMatch = internalVideoMatch[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;
        })
    }

    let baidu = {
        current_url: window.location.href,
        init() {
            this.search();
            this.baijiahao();
            this.tieba();
            this.wenku();
            this.jingyan();
            this.baike();
            this.zhidao();
        },
        css: {
            search: `
            .c-container.na-ec-item,
            .c-container.ec-container,
            div[data-type="ad"],
            .c-result.sfc-log[data-tpl="adv_wenku_fc"],
            .c-recomm-wrap.new-ux-recom-wrapper.animation,
            #results-pre,
            .video-recommend,
            .c-result.sfc-log[data-tpl="search_recomm"],
            .sfc-image-content-waterfall-item[wat-item-data-id="no-img"],
            .se-results-pre,
            div#copyright + div{
                display:none !important;
            }
            .searchboxtop.newsearch-white-style .se-form {
                border-color: #4e6ef2 !important;
            }
            .searchboxtop.newsearch-white-style .se-bn {
                color: #fff !important;
                background: #4e6ef2 !important;
            }
            .se-head-logo .se-logo img {
                display: inherit !important;
            }
            .se-head-tablink {
                border-bottom: 1px solid #e6e6e6 !important;
                background-color: #fff !important;
            }
            a.se-tabitem span{
                color: #000 !important;
            }
            div.c-peak-layer{
                display:none !important;
            }
            .se-tablink-scroll-wrapper .se-tab-cur:after{
                border-bottom: 2px solid #38f !important;
            }
            `,
            baijiahao: `
            .layer-wrap,
            .openImg,
            .oPadding,
            .infinite-scroll-component__outerdiv,
            .bottomTTSStruct,
            .undefined,
            .headDeflectorContainer,
            .followSuper,
            #searchwordSdk ~ div:nth-child(n+4),
            #searchwordSdk,
            div#commentModule div div span:last-child{
              display:none !important;
            }
            body.scrollHide{
              overflow:auto !important;
            }
            .mainContent{
              height:  auto !important;
            }
            `,
            tieba: `
            .tb-backflow-defensive,
            .fixed-nav-bar-defensive,
            .post-cut-guide,
            .ertiao-wrap-defensive,
            .feed-warp.gray-background,
            .pb-page-wrapper.app-view.transition-fade nav:first-child,
            .banner-wrapper-defensive{
              display:none !important;
            }
            body.tb-modal-open{
              overflow:auto !important;
            }`,
            wenku: `
            .reader-pop-manager-view-containter,
            .core-download,
            .card-wrap.card-vip,
            #app{
              display:none !important;
            }
            .reader-wrap{
              height:auto !important;
            }
            #view-app,
            #view-rr-app{
              max-height: 100% !important;
            }
            .top-card{
                margin-top: 10px !important;
            }
            *{
              -webkit-touch-callout: inherit !important;
              -khtml-user-select: auto !important;
              -moz-user-select: auto !important;
              -ms-user-select: auto !important;
              user-select: auto !important;
            }
            `,
            jingyan: `
            .article-feed-next,
            .wgt-rel-exp-feed,
            .article-feed-btn-fixed,
            .read-whole-mask.app{
              display:none !important;
            }
            .exp-content-container.fold.more2line{
              max-height: 100% !important;
            }
            `,
            baike: `
            .BK-after-content-wrapper,
            .yitiao-container,
            #J-tashuo-button-fixed{
              display:none !important;
            }`,
            zhidao: `
            #feed-recommend,
            .dec,
            .dec + div,
            .wgt-topic-hot,
            #respect-footer,
            #wap-youx-change-asp,
            div.question-line + div,
            .w-detail-display-btn{
                display:none !important;
            }
            .w-detail-container{
                max-height: 100% !important;
                overflow: auto !important;
            }
            `,
        },
        search() {
            // 百度搜索
            if (this.current_url.match(/(m|www).baidu.com/g)) {
                GM_addStyle(this.css.search);
                $(function () {
                    main_start();
                })
            }
        },
        baijiahao() {
            // 百家号
            if (this.current_url.indexOf("baijiahao.baidu.com") != -1) {
                GM_addStyle(this.css.baijiahao);
            }
        },
        tieba() {
            //  贴吧
            if (this.current_url.indexOf("tieba.baidu.com") != -1) {
                GM_addStyle(this.css.tieba);
            }
        },
        wenku() {
            // 文库
            if (this.current_url.indexOf("wk.baidu.com") != -1) {
                GM_addStyle(this.css.wenku);
            }
        },
        jingyan() {
            // 经验
            if (this.current_url.indexOf("jingyan.baidu.com") != -1) {
                GM_addStyle(this.css.jingyan);
            }
        },
        baike() {
            // 百科
            if (this.current_url.indexOf("baike.baidu.com") != -1) {
                GM_addStyle(this.css.baike);
            }
        },
        zhidao(){
            // 知道
            if (this.current_url.indexOf("zhidao.baidu.com") != -1) {
                GM_addStyle(this.css.zhidao);
            }
        }
    }

    function autoLoadNextPage() {
        var isloding_flag = false;
        let isloading_html = `<div class="page-isloading" style="margin: 0.08rem;background: #999;height: 45px;font-size: 15px;display: none;text-align: center;align-items: center;width: inherit;justify-content: center;color: #fff;border-radius: 0.12rem;">
        <span style="">正在加载中...</span>
    </div>`;
        $("#page-controller").after($(isloading_html));

        $(window).bind("scroll", function () {
            // scroll at bottom
            if (Math.ceil($(window).scrollTop() + $(window).height()) >= $(document).height()) {
                // load data
                if (isloding_flag == false) {
                    $(".page-isloading").css("display", "flex");
                    isloding_flag = true;

                    let next_page_url = $(".new-nextpage").attr("href") || $(".new-nextpage-only").attr("href");
                    console.log("正在请求下一页数据", next_page_url);
                    GM_xmlhttpRequest({
                        url: next_page_url,
                        timeout: 5000,
                        method: "GET",
                        onload: function (resp) {
                            $(".page-isloading").css("display", "none");
                            console.log("正在请求的下一页url", next_page_url);
                            let page_html = $(resp.response);
                            let search_result = page_html.find(".c-result.result");
                            let next_html_next_page_html = page_html.find("#page-controller");
                            let this_page_results = $("#results");
                            if (this_page_results != void 0) {
                                $.each(search_result, (i, n) => {
                                    this_page_results.append(n);
                                })
                                $("#page-controller").html(next_html_next_page_html);
                            } else {
                                $(".page-isloading").html("<span>已加载所有的搜索结果</span>");
                                $(window).unbind();
                            }

                            isloding_flag = false;
                        },
                        onerror: function (resp) {
                            console.log(resp);
                            $(".page-isloading").html("<span>加载失败</span>");
                        }
                    })

                } else {
                    console.log("正在加载中请稍后,请勿重复");
                }


            }
        })
    }

    function main_start() {
        replaceLink();
        if (GM_getValue("menu_autoloading")) {
            autoLoadNextPage();
        }

    }
    var GM_menus = [
        ["menu_autoloading", "自动展开下一页", false]
    ]

    function change_normal_menu() {
        //修改菜单默认值
        console.log(GM_listValues())
        for (let i = 0; i < GM_menus.length; i++) {
            let get_GM_value = GM_getValue(GM_menus[i][0]);
            if (get_GM_value) {
                GM_menus[i][2] = true;
            } else {
                GM_menus[i][2] = false;
            }
        }
    }

    function register_GM_Menu() {
        //注册油猴菜单
        for (let i = 0; i < GM_menus.length; i++) {
            let current_v = GM_menus[i][0];
            let current_name = GM_menus[i][1];
            let current_status = GM_menus[i][2];
            GM_registerMenuCommand(`[${current_status?"√":"×"}]${current_name}`, function () {
                if (current_status) {
                    GM_deleteValue(current_v);
                } else {
                    GM_setValue(current_v, "1");
                }
                window.location.reload();
            })
        }

    }
    change_normal_menu();
    register_GM_Menu();
    GM_addStyle(Flag_Title_css);
    baidu.init();
})();