]> git.99rst.org Git - irssi-scripts.irssi.org.git/commitdiff
[mangle] extended
authorb2lp <#freenode>
Fri, 12 Jul 2019 18:41:28 +0000 (20:41 +0200)
committerbw1 <redacted>
Mon, 15 Jul 2019 07:41:54 +0000 (09:41 +0200)
scripts/mangle.pl

index 54ff2cc5f64007c6df146500acfa70adc401821d..f107d5d77bf98fe44cf988bdcab46dfb968c4e25 100644 (file)
@@ -6,13 +6,14 @@
 
 use strict;
 use locale;
+use utf8;
 use Irssi 20020324;
 use Irssi::TextUI;
 use POSIX;
 use Data::Dumper;
 
 use vars qw($VERSION %IRSSI %HELP %channels %translations);
-$VERSION = '2017031701';
+$VERSION = '2019071201';
 %IRSSI = (
     authors     => 'Szymon Sokol',
     contact     => 'szymon@hell.pl',
@@ -62,7 +63,278 @@ Lists available translations";
     $text =~ s/\s+//g;
     return $text;
   },
-  # -- --- .-. ... .  -.-. --- -.. .
+
+  # ds mangle by blap - double strike mathematical symbols
+  "ds" => sub { 
+    my %ds = (
+    "A" => "𝔸",
+    "B" => "𝔹",
+    "C" => "ℂ",
+    "D" => "𝔻",
+    "E" => "𝔼",
+    "F" => "𝔽",
+    "G" => "𝔾",
+    "H" => "ℍ",
+    "I" => "𝕀",
+    "J" => "𝕁",
+    "K" => "𝕂",
+    "L" => "𝕃",
+    "M" => "𝕄",
+    "N" => "ℕ",
+    "O" => "𝕆",
+    "P" => "ℙ",
+    "Q" => "ℚ",
+    "R" => "ℝ",
+    "S" => "𝕊",
+    "T" => "𝕋",
+    "U" => "𝕌",
+    "V" => "𝕍",
+    "W" => "𝕎",
+    "X" => "𝕏",
+    "Y" => "𝕐",
+    "Z" => "ℤ",
+    "a" => "𝕒",
+    "b" => "𝕓",
+    "c" => "𝕔",
+    "d" => "𝕕",
+    "e" => "𝕖",
+    "f" => "𝕗",
+    "g" => "𝕘",
+    "h" => "𝕙",
+    "i" => "𝕚",
+    "j" => "𝕛",
+    "k" => "𝕜",
+    "l" => "𝕝",
+    "m" => "𝕞",
+    "n" => "𝕟",
+    "o" => "𝕠",
+    "p" => "𝕡",
+    "q" => "𝕢",
+    "r" => "𝕣",
+    "s" => "𝕤",
+    "t" => "𝕥",
+    "u" => "𝕦",
+    "v" => "𝕧",
+    "w" => "𝕨",
+    "x" => "𝕩",
+    "y" => "𝕪",
+    "z" => "𝕫",
+    "0" => "𝟘",
+    "1" => "𝟙",
+    "2" => "𝟚",
+    "3" => "𝟛",
+    "4" => "𝟜",
+    "5" => "𝟝",
+    "6" => "𝟞",
+    "7" => "𝟟",
+    "8" => "𝟠",
+    "9" => "𝟡"
+    );
+    my ($text) = @_;
+    $text =~ s/./defined $ds{$&} ? $ds{$&} : "$&"/eg;
+    return $text;
+  },
+
+  # curs cursive by blap - cursive (bold) script
+  "curs" => sub { 
+    my %curs = (
+    "A" => "𝓐",
+    "B" => "𝓑",
+    "C" => "𝓒",
+    "D" => "𝓓",
+    "E" => "𝓔",
+    "F" => "𝓕",
+    "G" => "𝓖",
+    "H" => "𝓗",
+    "I" => "𝓘",
+    "J" => "𝓙",
+    "K" => "𝓚",
+    "L" => "𝓛",
+    "M" => "𝓜",
+    "N" => "𝓝",
+    "O" => "𝓞",
+    "P" => "𝓟",
+    "Q" => "𝓠",
+    "R" => "𝓡",
+    "S" => "𝓢",
+    "T" => "𝓣",
+    "U" => "𝓤",
+    "V" => "𝓥",
+    "W" => "𝓦",
+    "X" => "𝓧",
+    "Y" => "𝓨",
+    "Z" => "𝓩",
+    "a" => "𝓪",
+    "b" => "𝓫",
+    "c" => "𝓬",
+    "d" => "𝓭",
+    "e" => "𝓮",
+    "f" => "𝓯",
+    "g" => "𝓰",
+    "h" => "𝓱",
+    "i" => "𝓲",
+    "j" => "𝓳",
+    "k" => "𝓴",
+    "l" => "𝓵",
+    "m" => "𝓶",
+    "n" => "𝓷",
+    "o" => "𝓸",
+    "p" => "𝓹",
+    "q" => "𝓺",
+    "r" => "𝓻",
+    "s" => "𝓼",
+    "t" => "𝓽",
+    "u" => "𝓾",
+    "v" => "𝓿",
+    "w" => "𝔀",
+    "x" => "𝔁",
+    "y" => "𝔂",
+    "z" => "𝔃"
+    );
+    my ($text) = @_;
+    $text =~ s/./defined $curs{$&} ? $curs{$&} : "$&"/eg;
+    return $text;
+  },
+
+  # vapor double-width by blap - 'vaporwave' script
+  "vapor" => sub { 
+    my %vapor = (
+    " " => "  ",
+    "A" => "A",
+    "B" => "B",
+    "C" => "C",
+    "D" => "D",
+    "E" => "E",
+    "F" => "F",
+    "G" => "G",
+    "H" => "H",
+    "I" => "I",
+    "J" => "J",
+    "K" => "K",
+    "L" => "L",
+    "M" => "M",
+    "N" => "N",
+    "O" => "O",
+    "P" => "P",
+    "Q" => "Q",
+    "R" => "R",
+    "S" => "S",
+    "T" => "T",
+    "U" => "U",
+    "V" => "V",
+    "W" => "W",
+    "X" => "X",
+    "Y" => "Y",
+    "Z" => "Z",
+    "a" => "a",
+    "b" => "b",
+    "c" => "c",
+    "d" => "d",
+    "e" => "e",
+    "f" => "f",
+    "g" => "g",
+    "h" => "h",
+    "i" => "i",
+    "j" => "j",
+    "k" => "k",
+    "l" => "l",
+    "m" => "m",
+    "n" => "n",
+    "o" => "o",
+    "p" => "p",
+    "q" => "q",
+    "r" => "r",
+    "s" => "s",
+    "t" => "t",
+    "u" => "u",
+    "v" => "v",
+    "w" => "w",
+    "x" => "x",
+    "y" => "y",
+    "z" => "z",
+    "0" => "0",
+    "1" => "1",
+    "2" => "2",
+    "3" => "3",
+    "4" => "4",
+    "5" => "5",
+    "6" => "6",
+    "7" => "7",
+    "8" => "8",
+    "9" => "9",
+    '[' => '[',
+    ']' => ']',
+    '{' => '{',
+    '}' => '}',
+    '(' => '(',
+    ')' => ')',
+    '.' => '.',
+    ',' => ',',
+    '?' => '?',
+    '!' => '!',
+       '"' => chr(65282),
+    '\'' => ''',
+    '#' => '#',
+    '$' => '$',
+    '%' => '%',
+    '^' => '^',
+    '&' => '&',
+    '=' => '=',
+    '\\' => '\',
+    '/' => '/',
+    '`' => '`'
+    );
+    my ($text) = @_;
+    $text =~ s/./defined $vapor{$&} ? $vapor{$&} : "$&"/eg;
+    return $text;
+  },
+
+  # blox cypher by blap
+  "blox" => sub { 
+    my %blox = (
+    "a" => "▞",
+    "b" => "▍",
+    "c" => "▎",
+    "d" => "▅",
+    "e" => "▃",
+    "f" => "▚",
+    "g" => "◼",
+    "h" => "▇",
+    "i" => "▘",
+    "j" => "▛",
+    "k" => "┫",
+    "l" => "▋",
+    "m" => "▆",
+    "n" => "▝",
+    "o" => "▜",
+    "p" => "█",
+    "q" => "▁",
+    "r" => "▄",
+    "s" => "▜",
+    "t" => "▀",
+    "u" => "▌",
+    "v" => "▖",
+    "w" => "▙",
+    "x" => "▂",
+    "y" => "▗",
+    "z" => "▟",
+    "0" => "▊",
+    "1" => "▐",
+    "2" => "▔",
+    "3" => "▒",
+    "4" => "▏",
+    "5" => "░",
+    "6" => "▲",
+    "7" => "┣",
+    "8" => "▓",
+    "9" => "▼"
+    );
+    my ($text) = @_;
+    $text = lc($text);
+    $text =~ s/./defined $blox{$&} ? $blox{$&} : "$&"/eg;
+    return "╳".$text;
+  },
+
   "morse" => sub { 
     my %morse = (
     " " => "",
@@ -95,18 +367,18 @@ Lists available translations";
     # notice: Polish and German diacritical characters have their own 
     # Morse codes; the same probably stands true for other languages
     # using ISO-8859-2 - if you happen to know them, please send me e-mail
-    "±" => ".-.-",
-    "æ" => "-.-..",
-    "ê" => "..-..",
-    "³" => ".-..-",
-    "ñ" => "--.-",
-    "ó" => "---.".
-    "¶" => "...-...",
-    "¼" => "--..",
-    "¿" => "--..-",
-    'ä'=>'.-.-',
-    'ö'=>'---.',
-    'ü'=>'..--',
+    "±" => ".-.-",
+    "æ" => "-.-..",
+    "ê" => "..-..",
+    "³" => ".-..-",
+    "ñ" => "--.-",
+    "ó" => "---.".
+    "¶" => "...-...",
+    "¼" => "--..",
+    "¿" => "--..-",
+    'ä'=>'.-.-',
+    'ö'=>'---.',
+    'ü'=>'..--',
     "0" => "-----",
     "1" => ".----",
     "2" => "..---",
@@ -137,12 +409,145 @@ Lists available translations";
     $text =~ s/./defined $morse{$&} ? $morse{$&}." " : ""/eg;
     return $text.'[morse]';
   },
+
+  # Fraktur font by blap
+  "frakt" => sub { 
+    my %HoA = (
+    'a' => ["𝖆"],
+    'b' => ["𝖇"],
+    'c' => ["𝖈"],
+    'd' => ["𝖉"],
+    'e' => ["𝖊"],
+    'f' => ["𝖋"],
+    'g' => ["𝖌"],
+    'h' => ["𝖍"],
+    'i' => ["𝖎"],
+    'j' => ["𝖏"],
+    'k' => ["𝖐"],
+    'l' => ["𝖑"],
+    'm' => ["𝖒"],
+    'n' => ["𝖓"],
+    'o' => ["𝖔"],
+    'p' => ["𝖕"],
+    'q' => ["𝖖"],
+    'r' => ["𝖗"],
+    's' => ["𝖘"],
+    't' => ["𝖙"],
+    'u' => ["𝖚"],
+    'v' => ["𝖛"],
+    'w' => ["𝖜"],
+    'x' => ["𝖝"],
+    'y' => ["𝖞"],
+    'z' => ["𝖟"],
+    'A' => ["𝕬"],
+    'B' => ["𝕭"],
+    'C' => ["𝕮"],
+    'D' => ["𝕯"],
+    'E' => ["𝕰"],
+    'F' => ["𝕱"],
+    'G' => ["𝕲"],
+    'H' => ["𝕳"],
+    'I' => ["𝕴"],
+    'J' => ["𝕵"],
+    'K' => ["𝕶"],
+    'L' => ["𝕷"],
+    'M' => ["𝕸"],
+    'N' => ["𝕹"],
+    'O' => ["𝕺"],
+    'P' => ["𝕻"],
+    'Q' => ["𝕼"],
+    'R' => ["𝕽"],
+    'S' => ["𝕾"],
+    'T' => ["𝕿"],
+    'U' => ["𝖀"],
+    'V' => ["𝖁"],
+    'W' => ["𝖂"],
+    'X' => ["𝖃"],
+    'Y' => ["𝖄"],
+    'Z' => ["𝖅"]
+    );
+    my ($text) = @_;
+    $text =~ s/./defined $HoA{$&} ? $HoA{$&}[rand(@{$HoA{$&}})] : "$&"/eg;
+    return $text;
+  },
+
+  # Unicode Obfusticator by blap
+  "obfus" => sub { 
+    my %HoA = (
+    '0' => ["Ө","Ὀ","Ồ","Ổ","Θ","Ǒ","Ȏ","ϴ","Ò","Õ","Ô","Ǿ"],
+    '1' => ["Ĭ","Ἰ","Ī","Ӏ","Ί","Ι","І","Ї","Ῐ","Ῑ","Ὶ"],
+    '2' => ["ƻ","ƨ"],
+    '3' => ["Ʒ","Ӡ","Ҙ","ҙ","Ӟ","з","Յ","З","ɝ"],
+    '4' => ["Ч"],
+    '5' => ["Ƽ"],
+    '6' => ["ǝ","ə"],
+    '7' => ["7"],
+    '8' => ["Ց"],
+    '9' => ["9"],
+    'a' => ["ἅ","ἁ","ẚ","ӓ","ά","ᾷ","ᾶ","ᾱ","ǎ","ǟ","ά","ɑ"],
+    'b' => ["ƃ","ƅ","þ","ḃ","ḅ","ḇ","ϸ","ɓ"],
+    'c' => ["ċ","ć","ƈ","ⅽ","ϛ","ç","ς","ϲ"],
+    'd' => ["ƌ","ḑ","ⅾ","ḋ","ḍ","ḏ","ժ","ɗ","ɖ"],
+    'e' => ["ё","ė","ệ","ѳ","ḕ","ḝ","è","ê","ϱ","ȩ","ε"],
+    'f' => ["ғ","ƒ","ſ","ẛ","ϝ","ḟ"],
+    'g' => ["ğ","ģ","ɡ","ǥ","ǧ","ց","գ","ǵ","ḡ","ɕ"],
+    'h' => ["ĥ","һ","ẖ","ɧ","ɦ","ի","ḩ","ḫ","հ"],
+    'i' => ["ĩ","ī","ἲ","ɩ","¡","í","ì","ΐ","ί","ι","ḭ"],
+    'j' => ["ј","ĵ","ʝ","ȷ","ǰ","յ"],
+    'k' => ["ҝ","ƙ","ĸ","ķ","к","ḱ","ḳ","κ"],
+    'l' => ["ł","ŀ","ƚ","ľ","ĺ","ɫ","ǀ","ɭ","ɬ","ḻ","ḽ"],
+    'm' => ["₥","ṃ","ṁ","ɱ","ḿ"],
+    'n' => ["ƞ","ἤ","ṅ","ή","ñ","ɴ","ᾗ","ᾕ","ᾔ","ῇ","ռ","ղ"],
+    'o' => ["ớ","ở","ὁ","ŏ","ō","ơ","ὸ","ό","ó","ò","ʘ","ȫ"],
+    'p' => ["р","ҏ","ṗ","ṕ","ῤ","ῥ","þ","թ"],
+    'q' => ["ԛ","ʠ","զ","գ"],
+    'r' => ["ŗ","ŕ","ѓ","ӷ","г","ȑ","ɽ","ɼ"],
+    's' => ["ş","ś","ṧ","ṣ","ԑ","š","ʂ"],
+    't' => ["†","ṫ","ť","ț","Ւ","ȶ","ʈ"],
+    'u' => ["ư","ṻ","ṳ","ů","ū","ụ","ủ","ù","µ","ǜ","ǚ"],
+    'v' => ["ṿ","ὐ","ὗ","ὔ","ύ","ѵ","ү","ῠ","ῢ","ⅴ","ΰ"],
+    'w' => ["ԝ","ẉ","ẃ","ẁ","ŵ","ẇ","ẅ"],
+    'x' => ["ẋ","ҳ","ẍ","ϰ"],
+    'y' => ["у","ƴ","ӯ","ў","ỹ","ỵ","ỷ","ẙ","ÿ"],
+    'z' => ["ƶ","ž","ż","ź","ẓ","ẑ","ʑ"],
+    'A' => ["Ẩ","Ậ","Ą","Ἆ","Ӑ","Ά","Ᾱ","Α","Ⱥ","Ã","ᾉ","ᾈ"],
+    'B' => ["Ɓ","Ḃ","Ḅ","Β","В"],
+    'C' => ["Č","Ĉ","Ć","₵","Ҫ","Ͼ","Ç"],
+    'D' => ["Đ","Ɗ","Ɖ","Ḓ","Ḋ","Ḍ","Ḏ","Ð"],
+    'E' => ["Ẹ","Ę","Ẽ","Ĕ","Ệ","Ɛ","Ԑ","Ḗ","Ḝ","Ὲ","Ȩ"],
+    'F' => ["Ғ","Ƒ","₣","ϝ","Ϝ"],
+    'G' => ["Ĝ","Ğ","Ġ","Ģ","Ǥ","Ḡ","Ǵ"],
+    'H' => ["Ĥ","Ӈ","Ҥ","Ң","Ȟ","Н","Ḥ","Ḫ"],
+    'I' => ["Ỉ","Ἱ","Ī","İ","Ȉ","Ȋ","Ι","Í","Ḭ","Ὶ","Ḯ"],
+    'J' => ["Ĵ","ʆ","Ј"],
+    'K' => ["₭","Ƙ","Ķ","Κ","Ḱ","Ḳ","Ḵ","К","Ќ"],
+    'L' => ["Ł","Ľ","Ⅼ","Ḷ","Ḹ","Ḻ","ℒ"],
+    'M' => ["Ӎ","Ṃ","Ṁ","Μ","М","Ḿ"],
+    'N' => ["Ň","Ņ","Ń","₦","Ṋ","Ṉ","Ñ","Ǹ"],
+    'O' => ["Ӫ","Ờ","Ổ","Ọ","Θ","Ø","Ò","Õ","Ȭ","Ȯ"],
+    'P' => ["Ƥ","Ҏ","Ṗ","Ṕ","₱","Ῥ","Ρ"],
+    'Q' => ["Ԛ"],
+    'R' => ["Ř","Ŗ","Ŕ","Ṟ","Ṙ","Ȑ"],
+    'S' => ["ϟ","Ş","Ŝ","Ṡ","Š","Ș","Տ"],
+    'T' => ["Ṱ","Ṯ","Ṫ","Ʈ","Ŧ","Ţ","Т","Τ","Ί"],
+    'U' => ["Ự","Ų","Ứ","Ử","Ũ","Ȕ","Ȗ","Ǖ","Ǘ","Ǜ","Û","Ú"],
+    'V' => ["Ṿ","Ṽ","Ѷ","⋁","Ⅴ"],
+    'W' => ["Ԝ","Ẉ","Ẃ","Ẁ","Ŵ","Ẇ","Ẅ"],
+    'X' => ["Ẋ","Ҳ","Ẍ","Х","Χ"],
+    'Y' => ["Ỹ","Ẏ","Ұ","Ÿ","Ỳ","Ỵ","¥","ϓ","Ȳ","Υ"],
+    'Z' => ["Ž","Ż","Ź","Ẓ","Ζ","Ȥ"],
+    );
+    my ($text) = @_;
+    $text =~ s/./defined $HoA{$&} ? $HoA{$&}[rand(@{$HoA{$&}})] : "$&"/eg;
+    return $text;
+  },
+
   # convert text in Polish from ISO-8859-2 to 7-bit approximation
   # if you know how to do it for other languages using 8859-2, 
   # please let me know
   "polskawe" => sub {
     my ($text) = @_;
-    $text =~ y/¡ÆÊ£ÑÓ¦¯¬±æê³ñó¶¿¼/ACELNOSZZacelnoszz/;
+    $text =~ y/¡Ã\86Ã\8a£Ã\91Ã\93¦¯¬±æê³ñó¶¿¼/ACELNOSZZacelnoszz/;
     return $text;
   },
   # Ouch, my eyes!
@@ -183,7 +588,7 @@ Lists available translations";
   # rmv vwls
   "vowels" => sub {
     my ($text) = @_;
-    $text =~ y/aeiouy±ê//d;
+    $text =~ y/aeiouy±ê//d;
     return $text;
   }
 );
git clone https://git.99rst.org/PROJECT