🎉 欢迎访问GreasyFork.Org 镜像站!本镜像站由公众号【爱吃馍】搭建,用于分享脚本。联系邮箱📮

Greasy fork 爱吃馍镜像

Twitter - replace X and Favicon

i like birds!

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

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

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

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

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

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

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.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

// ==UserScript==
// @name         Twitter - replace X and Favicon
// @namespace    http://tampermonkey.net/
// @version      0.2.1
// @description  i like birds!
// @author       [email protected]
// @match        https://twitter.com/*
// @match        https://x.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=twitter.com
// @grant        none
// @license MIT 
// ==/UserScript==

(() => {
    let xLogo='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z';
    let oldxLogo='M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0'
    
    let oldLogo='M23.643 4.937c-.835.37-1.732.62-2.675.733.962-.576 1.7-1.49 2.048-2.578-.9.534-1.897.922-2.958 1.13-.85-.904-2.06-1.47-3.4-1.47-2.572 0-4.658 2.086-4.658 4.66 0 .364.042.718.12 1.06-3.873-.195-7.304-2.05-9.602-4.868-.4.69-.63 1.49-.63 2.342 0 1.616.823 3.043 2.072 3.878-.764-.025-1.482-.234-2.11-.583v.06c0 2.257 1.605 4.14 3.737 4.568-.392.106-.803.162-1.227.162-.3 0-.593-.028-.877-.082.593 1.85 2.313 3.198 4.352 3.234-1.595 1.25-3.604 1.995-5.786 1.995-.376 0-.747-.022-1.112-.065 2.062 1.323 4.51 2.093 7.14 2.093 8.57 0 13.255-7.098 13.255-13.254 0-.2-.005-.402-.014-.602.91-.658 1.7-1.477 2.323-2.41z';
    let oldPromoLogo='M19.498 3h-15c-1.381 0-2.5 1.12-2.5 2.5v13c0 1.38 1.119 2.5 2.5 2.5h15c1.381 0 2.5-1.12 2.5-2.5v-13c0-1.38-1.119-2.5-2.5-2.5zm-3.502 12h-2v-3.59l-5.293 5.3-1.414-1.42L12.581 10H8.996V8h7v7z';
    let oldFavicon='https://abs.twimg.com/favicons/twitter.2.ico';

    function findElementToRemove(container, iconSelector) {
        let removeElement = null;
        if (container.querySelectorAll(iconSelector).length > 0) {
            removeElement = container;
        }
        return removeElement;
    }

    function twitterFixLogo() {
        let svgContainers = document.querySelectorAll('svg');
        for (let container of svgContainers) {
            let removeElement = findElementToRemove(container, `svg path[d='${xLogo}']`);
            if (removeElement) {
                let ele = removeElement.getElementsByTagName("path");
                ele[0].setAttribute("style", 'color: rgb(29, 155, 240)');
                ele[0].setAttribute("d", `${oldLogo}`);
                break;
            }
        }
    }

    function twitterFixIcon(){
        var link = document.querySelector("link[rel~='icon']");
        if (!link) {
            link = document.createElement('link');
            link.rel = 'icon';
            document.head.appendChild(link);
        }
        link.href = oldFavicon;
    }


    // Observe elements with logo and change it
    let logoMutationObserver = new MutationObserver(twitterFixLogo);
    logoMutationObserver.observe(document.body, { childList: true, subtree: true });
    // Fix the favIcon
    twitterFixIcon();
    // Kill the observer, as the page is probably loaded completely and logo's replaced.
    setTimeout(function() {
        logoMutationObserver.disconnect()
    }, 5000)
    // Fix the icon after a window resize
    addEventListener("resize", (event) => {});
    onresize = (event) => {
        twitterFixLogo();
    };



})();