yobukodori / script-for-me

A tiny userscript manager. Injects JavaScript code (and CSS code) into a page. A simple wrapper for the browser.contentScripts API.
Mozilla Public License 2.0
0 stars 0 forks source link

[twitter.com] Replace the X logo with a Twitter bird. Also replace the favicon displayed on the tab. #7

Closed yobukodori closed 1 year ago

yobukodori commented 1 year ago

Replace the X logo with a Twitter bird. Also change the favicon displayed on the tab. Script updated at Wed, 26 Jul 2023 01:12:57 GMT.

//name Replace the X logo with a Twitter bird
//; Also replace the favicon displayed on the tab.
//matches https://twitter.com/*, https://mobile.twitter.com/*
//option start
//css
path[d^="M18.244 2.25h3.308l-7.227"]{
    fill: rgb(29, 155, 240) !important;
    d: path("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") !important;
}
//js
(function(){
    "use strict";
    new MutationObserver((mutations, observer)=>{
        mutations.forEach((m,i)=>{
            if (m.type !== "childList"){ return; }
            m.addedNodes.forEach(n =>{
                if (n && n.nodeType === Node.ELEMENT_NODE){
                    if (n.tagName === "BODY"){
                        observer.disconnect();
                    }
                    else if (n.tagName === "LINK"){
                        if ((n.getAttribute("rel") || "").split(" ").includes("icon")){
                            n.setAttribute("href", "//abs.twimg.com/favicons/twitter.ico");
                            observer.disconnect();
                        }
                    }
                }
            });
        });
    }).observe(document.documentElement, {childList: true, subtree: true});
})();