X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=rasterman;fp=rasterman;h=492061c775bdbce7bbce83ea1aa2d6d9eb9f5677;hb=e60f6df68b27b49b6c2408ba70e8a2fcdcef652b;hp=0000000000000000000000000000000000000000;hpb=dc17484ae227d51938596b51191e2f1991b7ca51;p=filters.git diff --git a/rasterman b/rasterman new file mode 100755 index 0000000..492061c --- /dev/null +++ b/rasterman @@ -0,0 +1,100 @@ +#!/usr/bin/perl + +$row = "!qwertyuiop!asdfghjkl!zxcvbnm!"; +@row_array = split(//, $row); + +while (<>) { + chomp; + y/A-Z/a-z/; + s/\byou\b/u/gi; + s/\bpeople\b/ppl/gi; + s/\bthrough\b/thru/gi; + s/\bthough\b/tho/gi; + s/\bnope\b/nup/gi; + s/\baustralia\b/oz/gi; + s/\bsucks\b/sux/gi; + s/\benough\b/enuff/gi; + s/\ba lot\b/a shitload/gi; + s/\bstuff\b/shit/gi; + s/, /.. /g; + s/\.$/.../g; + + @lets = split(//); + + $strlen = $#lets; + + for ($x = 0; $x < $strlen; $x++) { + if (rand() < 0.01) { + swap(\@lets, $x, $x + 1); + next; + } + + if (rand() < 0.10 && $lets[$x] eq " ") { + swap(\@lets, $x - 1, $x - 2); + next; + } + + if(rand() < 0.01) { + $i = insert_adjacent(\@lets, $x, $lets[$x]); + $strlen += $i; + next; + } + + if(rand() < 0.01) { + splice(@lets, $x, 1); + $strlen--; + next; + } + } + + print join("", @lets) . "\n"; +} + +sub insert_adjacent { + my($aref, $pos, $let) = @_; + + + $newlet = get_adjacent($let); + + if( !$newlet ) { + return 0; + } + + splice(@$aref, $pos + 1, 0, $newlet); + return 1; +} + + +sub get_adjacent { + my($let) = @_; + + return 0 if $let !~ /[a-zA-Z]/; + + $i = index($row, $let); + $before = $row_array[$i - 1]; + $after = $row_array[$i + 1]; + + + + if( $before eq "!" || (rand() < rand() && $after ne "!")) { + return $after; + } else { + return $before; + } +} + +sub swap { + my($aref, $n, $m) = @_; + my($tmp); + + if(defined($$aref[$n]) && defined($$aref[$m])) { + if(! (($$aref[$n] =~ /[A-Z ]/ && $$aref[$m] =~ /[A-Z ]/) || + ($$aref[$n] =~ /[a-z ]/ && $$aref[$m] =~ /[a-z ]/) )) { + return; + } + $tmp = $$aref[$n]; + $$aref[$n] = $$aref[$m]; + $$aref[$m] = $tmp; + } +} +