Greasy Fork 支持简体中文。

文字化けcoder

atcoderの問題文がたまに文字化けします。縛りプレイ用。

// ==UserScript==
// @name         文字化けcoder
// @namespace    http://tampermonkey.net/
// @version      1
// @description  atcoderの問題文がたまに文字化けします。縛りプレイ用。
// @author       @neet1737984
// @license      MIT
// @match        https://atcoder.jp/*_*
// @grant        none
// ==/UserScript==

const bakemozi = "蜀?捉荳翫蛟九?轤ケ縺檎ュ蛾俣髫斐荳ヲ繧薙〒縺翫縲縲繧狗縺九縺ヲ譎ィ縺セ縺ァ縺ョ逡ェ蜿キ縺御サ倥¢繧峨蠑ヲ縺ゥ縺?@縺ョ莠、轤ケ縺悟ュ伜惠縺吶k縺?°蛻、螳壹@縺ヲ縺上□縺輔>縲縺ヲ縺?∪縺吶?�����������";

const jatch = /^[\p{scx=Hiragana}\p{scx=Katakana}\p{scx=Han}]+$/u;

const CORRUPTION_P = 0.2;

(function() {
    'use strict';

    // Your code here...
    let content = document.querySelectorAll('div.col-sm-12');
    if(content.length==2){
        let elements = content[1].querySelectorAll('p,h3,li');
        elements.forEach(element => {
            element.childNodes.forEach(child => {
                if (child.nodeType === Node.TEXT_NODE) {
                    let s = child.textContent;
                    let t = ""
                    for (var i = 0; i < s.length; ++i) {
                        if(jatch.test(s[i]) && Math.random()<CORRUPTION_P){
                            t += bakemozi[Math.floor(Math.random()*bakemozi.length)];
                        }
                        else{
                            t += s[i];
                        }
                    }
                    child.textContent = t;
                }
            });
        });
    }
})();