Mastodon ⇒ Kasgadon Fork

    @@ -1,40 +1,36 @@ /* - * @title セミ - * @description みんな、大好き。セミ + * @title Mastodon ⇒ Kasgadon + * @description マストドンがカスガドンになります。 + * @include * * @license MIT License - * @require + * @javascript_url */ - function replaceText (root) { - var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, { - acceptNode : function (node) { return NodeFilter.FILTER_ACCEPT } + { + + const replaceText = root => { + + const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, { + acceptNode : node => NodeFilter.FILTER_ACCEPT }, true); while (walker.nextNode()) { walker.currentNode.nodeValue = walker.currentNode.nodeValue. - replace(/([セゼ]ミ|蝉)/gi, "リア充"); + replace(/(トゥート|トゥート)[!!]?/g, 'トゥース!'); } - } - var observer = new MutationObserver(function (mutations) { - mutations.forEach(function (mutation) { - replaceText(mutation.target); - }); + }; + + const observer = new MutationObserver(mutations => { + mutations.forEach(mutation => replaceText(mutation.target)); }); + observer.observe(document.body, { - characterData: true + childList: true, + // characterData: true, + subtree: true }); - /* - document.body.addEventListener("DOMNodeInserted", (function me (e) { - var walker = document.createTreeWalker(e.target, NodeFilter.SHOW_TEXT, { - acceptNode : function (node) { return NodeFilter.FILTER_ACCEPT } - }, true); + replaceText(document.body); - while (walker.nextNode()) with (walker.currentNode) + }- nodeValue = nodeValue.replace(/([セゼ]ミ|蝉)/gi, "リア充"); - - return me; - })({ target: document.body }), false); - */ -
  • /*
     * @title Mastodon ⇒ Kasgadon
     * @description マストドンがカスガドンになります。
     * @include *
     * @license MIT License
     * @javascript_url
     */
    
    {
    
    const replaceText = root => {
    
    	const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, {
    		acceptNode : node => NodeFilter.FILTER_ACCEPT
    	}, true);
    
    	while (walker.nextNode()) {
    		walker.currentNode.nodeValue = walker.currentNode.nodeValue.
    			replace(/(トゥート|トゥート)[!!]?/g, 'トゥース!');
    	}
    
    };
    
    const observer = new MutationObserver(mutations => {
    	mutations.forEach(mutation => replaceText(mutation.target));
    });
    
    observer.observe(document.body, {
    	childList: true,
    //	characterData: true,
    	subtree: true
    });
    
    replaceText(document.body);
    
    }
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。