* Hahaha. Added a rasterman filter. (Not just "raster" as I worry about
[filters.git] / rasterman
diff --git a/rasterman b/rasterman
new file mode 100755 (executable)
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;
+    }
+}
+
This page took 0.010775 seconds and 4 git commands to generate.