Bing Direct Link

This script is for removing Bing Redirect link, but this doesn't support privacy, as it fetch the redirect result of the URL

目前为 2023-07-12 提交的版本。查看 最新版本

// ==UserScript==
// @name         Bing Direct Link
// @namespace    http://github.com/benyaminl
// @version      0.12
// @description  This script is for removing Bing Redirect link, but this doesn't support privacy, as it fetch the redirect result of the URL
// @author       Benyamin Limanto
// @match        https://www.bing.com/*
// @icon         https://icons.duckduckgo.com/ip2/bing.com.ico
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    var urlBody = document.querySelectorAll(".tilk");
    var i = -1;
    for(i=0; i < urlBody.length; i++)
    {
        let url = urlBody[i];
        let stringUrl = url.querySelector("cite");

        if (!(stringUrl.innerText.includes("...") || stringUrl.innerText.includes("…")))
        {
            let httpPrefix = (stringUrl.innerText.substr(0,4) == "http") ? "" : "http://";
            url.href = httpPrefix + stringUrl.innerText;
            let h2Url = url.parentNode.parentNode.querySelector("h2 a");

            h2Url.href = httpPrefix + stringUrl.innerText;
            console.log(stringUrl.innerText.substr(0,4));
        }
        else
        {
            fetch(url.href)
            .then(r => r.text())
            .then(d => {
                let realUrl = d.match(/https:\/\/.+/i)[0].replace("\";","");
                let h2Url = url.parentNode.parentNode.querySelector("h2 a");
                h2Url.href = realUrl;
            });
        }
    }

    var urlCard = document.querySelectorAll(".rd_sg_ttl");
    for(i=0; i < urlCard.length; i++)
    {
        let url = urlCard[i];
        let cite = urlCard[i].parentNode.querySelector("cite");
        if (!(cite.innerText.includes("...") || cite.innerText.includes("…")))
        {
            let httpPrefix = (cite.innerText.substr(0,4) == "http") ? "" : "http://";
            url.querySelector("a").href = httpPrefix + cite.innerText;
            console.log(cite.innerText);
        }
        else
        {
            fetch(url.querySelector("a").href)
            .then(r => r.text())
            .then(d => {
                let realUrl = d.match(/https:\/\/.+/i)[0].replace("\";","");
                console.log(realUrl);
                url.querySelector("a").href = realUrl;
            });
        }
    }

    var urls = document.querySelectorAll("a[href*='https://www.bing.com/ck']:not(.b_logoArea)");
    for(i=0;i < urls.length; i++)
    {
        let url = urls[i];
        fetch(url.href)
            .then(r => r.text())
            .then(d => {
                let realUrl = d.match(/https:\/\/.+/i)[0].replace("\";","");

                url.href = realUrl;
            });
    }
})();