Also close bug
[filters.git] / rasterman
CommitLineData
e60f6df6 1#!/usr/bin/perl
2
3$row = "!qwertyuiop!asdfghjkl!zxcvbnm!";
4@row_array = split(//, $row);
5
6while (<>) {
7 chomp;
8 y/A-Z/a-z/;
9 s/\byou\b/u/gi;
10 s/\bpeople\b/ppl/gi;
11 s/\bthrough\b/thru/gi;
12 s/\bthough\b/tho/gi;
13 s/\bnope\b/nup/gi;
14 s/\baustralia\b/oz/gi;
bc19f2cf 15 s/\bfilm\b/flim/gi;
e60f6df6 16 s/\bsucks\b/sux/gi;
17 s/\benough\b/enuff/gi;
18 s/\ba lot\b/a shitload/gi;
19 s/\bstuff\b/shit/gi;
20 s/, /.. /g;
21 s/\.$/.../g;
22
23 @lets = split(//);
24
25 $strlen = $#lets;
26
27 for ($x = 0; $x < $strlen; $x++) {
28 if (rand() < 0.01) {
29 swap(\@lets, $x, $x + 1);
30 next;
31 }
32
33 if (rand() < 0.10 && $lets[$x] eq " ") {
34 swap(\@lets, $x - 1, $x - 2);
35 next;
36 }
37
38 if(rand() < 0.01) {
39 $i = insert_adjacent(\@lets, $x, $lets[$x]);
40 $strlen += $i;
41 next;
42 }
43
44 if(rand() < 0.01) {
45 splice(@lets, $x, 1);
46 $strlen--;
47 next;
48 }
49 }
50
51 print join("", @lets) . "\n";
52}
53
54sub insert_adjacent {
55 my($aref, $pos, $let) = @_;
56
57
58 $newlet = get_adjacent($let);
59
60 if( !$newlet ) {
61 return 0;
62 }
63
64 splice(@$aref, $pos + 1, 0, $newlet);
65 return 1;
66}
67
68
69sub get_adjacent {
70 my($let) = @_;
71
72 return 0 if $let !~ /[a-zA-Z]/;
73
74 $i = index($row, $let);
75 $before = $row_array[$i - 1];
76 $after = $row_array[$i + 1];
77
78
79
80 if( $before eq "!" || (rand() < rand() && $after ne "!")) {
81 return $after;
82 } else {
83 return $before;
84 }
85}
86
87sub swap {
88 my($aref, $n, $m) = @_;
89 my($tmp);
90
91 if(defined($$aref[$n]) && defined($$aref[$m])) {
92 if(! (($$aref[$n] =~ /[A-Z ]/ && $$aref[$m] =~ /[A-Z ]/) ||
93 ($$aref[$n] =~ /[a-z ]/ && $$aref[$m] =~ /[a-z ]/) )) {
94 return;
95 }
96 $tmp = $$aref[$n];
97 $$aref[$n] = $$aref[$m];
98 $$aref[$m] = $tmp;
99 }
100}
101
This page took 0.015157 seconds and 4 git commands to generate.