Arabinizer

Hamood hamood habibi

目前為 2021-07-19 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Arabinizer
// @namespace    https://greasyfork.org/
// @version      0.1
// @description  Hamood hamood habibi
// @author       You
// @include      https://*.*/*
// @exclude      https://www.google.com/search?*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// ==/UserScript==

(function() {
  var replacements, regex, key, textnodes, node, s;

  replacements = {
    "qu": "q͞w",
    "Qu": "Q͞w",
    "QU": "Q͞W",
    "AA": "~",
    "AE": "~",
    "AI": "~",
    "AO": "~",
    "AU": "~",
    "EA": "~",
    "EE": "~",
    "EI": "~",
    "EO": "~",
    "EU": "~",
    "IA": "~",
    "IE": "~",
    "II": "~",
    "IO": "~",
    "IU": "~",
    "OA": "~",
    "OE": "~",
    "OI": "~",
    "OO": "~",
    "OU": "~",
    "UA": "~",
    "UE": "~",
    "UI": "~",
    "UO": "~",
    "UU": "~",

    "Aa": "~",
    "Ae": "~",
    "Ai": "~",
    "Ao": "~",
    "Au": "~",
    "Ea": "~",
    "Ee": "~",
    "Ei": "~",
    "Eo": "~",
    "Eu": "~",
    "Ia": "~",
    "Ie": "~",
    "Ii": "~",
    "Io": "~",
    "Iu": "~",
    "Oa": "~",
    "Oe": "~",
    "Oi": "~",
    "Oo": "~",
    "Ou": "~",
    "Ua": "~",
    "Ue": "~",
    "Ui": "~",
    "Uo": "~",
    "Uu": "~",

    "aa": "~",
    "ae": "~",
    "ai": "~",
    "ao": "~",
    "au": "~",
    "ea": "~",
    "ee": "~",
    "ei": "~",
    "eo": "~",
    "eu": "~",
    "ia": "~",
    "ie": "~",
    "ii": "~",
    "io": "~",
    "iu": "~",
    "oa": "~",
    "oe": "~",
    "oi": "~",
    "oo": "~",
    "ou": "~",
    "ua": "~",
    "ue": "~",
    "ui": "~",
    "uo": "~",
    "uu": "~",

    "A": "`",
    "E": "`",
    "I": "`",
    "O": "`",
    "U": "`",
    " a": " `",
    " e": " `",
    " i": " `",
    " o": " `",
    " u": " `",
    "a ": "- ",
    "e ": "- ",
    "i ": "- ",
    "o ": "- ",
    "u ": "- ",

    "AY": "-y",
    "EY": "-y",
    "IY": "-y",
    "OY": "-y",
    "UY": "-y",

    "Ay": "-y",
    "Ey": "-y",
    "Iy": "-y",
    "Oy": "-y",
    "Uy": "-y",

    "ay": "-y",
    "ey": "-y",
    "iy": "-y",
    "oy": "-y",
    "uy": "-y",

    "AR": "-r",
    "ER": "-r",
    "IR": "-r",
    "OR": "-r",
    "UR": "-r",

    "Ar": "-r",
    "Er": "-r",
    "Ir": "-r",
    "Or": "-r",
    "Ur": "-r",

    "ar": "-r",
    "er": "-r",
    "ir": "-r",
    "or": "-r",
    "ur": "-r",


    "a": "",
    "e": "",
    "i": "",
    "o": "",
    "u": "",
    "bb": "ḇ",
    "cc": "c̄",
    "dd": "ḏ",
    "ff": "f̱",
    "gg": "ḡ",
    "hh": "ẖ",
    "jj": "j̱",
    "kk": "ḵ",
    "ll": "ḻ",
    "mm": "m̱",
    "nn": "n̄",
    "pp": "p̄",
    "qq": "q̄",
    "rr": "r̄",
    "ss": "s̄",
    "tt": "ṯ",
    "vv": "v̄",
    "ww": "w̄",
    "xx": "x̄",
    "yy": "ȳ",
    "zz": "z̄",
    };

regex = {};
for (key in replacements) {
    regex[key] = new RegExp(key, 'g');
}

textnodes = document.evaluate( "//body//text()", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

for (var i = 0; i < textnodes.snapshotLength; i++) {
    node = textnodes.snapshotItem(i);
    s = node.data;
    for (key in replacements) {
        s = s.replace(regex[key], replacements[key]);
    }
    node.data = s;
}

})();