Purmt

Scramble selected names

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

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

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

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

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

// ==UserScript==
// @name         Purmt
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Scramble selected names
// @author       Tad Naff
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    const to_scramble=['Trump','Republican','Putin','Bezos','Bloomberg','Zuckerberg'];
    const cre=[];
    for(let i in to_scramble){
       cre[i] = new RegExp(to_scramble[i]);
    }
    function scramble(word){
        let i, out;
        const l = word.length,
              arr = word.toLowerCase().split('');
        for(i = 0; i < l; i++){
            let i1 = Math.floor(Math.random()*l),
                i2 = Math.floor(Math.random()*l),
                s = arr[i1];
            arr[i1] = arr[i2];
            arr[i2] = s;
        }
        arr[0] = arr[0].toUpperCase();
        out = arr.join('');
        return out;
    }
    let working=false;
    function doit(){
        if(working) return;
        working = true;
        replace(document.getElementsByTagName('body')[0]);
        working = false;
    }
    function replace(elt){
        let in1,in2;
        if(null == elt)return;
        if(elt.nodeType == 3){
            for(let ci in to_scramble){
                in1 = elt.textContent;
                in2 = in1;
                while(in1.match(cre[ci])){
                    in1 = in1.replace(cre[ci],scramble(to_scramble[ci]));
                }
                if (in1 != in2) elt.textContent = in1;
            }
        }else{
            for(let ch in elt.childNodes){
                replace(elt.childNodes[ch]);
            }
        }
    }
    const observer = new MutationObserver(doit);
    observer.observe(document.getElementsByTagName('body')[0],{attributes:false,childList:true,subtree:true});
    setTimeout(doit,500);
})();