Mastodon ⇒ Kasgadon Fork

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