7e3afbba |
1 | #!/usr/bin/perl -p |
2 | # B1FF filter. |
3 | # Copyright 1999 by Joey Hess under the terms of the GNU GPL. |
4 | |
5 | # I use an array, not a hash. because order is important. |
6 | @trans_table=( |
7 | '\bEVERYONE\b' => 'EVRY 1', |
8 | '\bEVERYBODY\b' => 'EVRY BUDY', |
9 | '\bEVERY\b' => 'EVRY', |
10 | '\bONE\b' => '1', |
11 | '\bAND\b' => '+', |
12 | '\bYOU' => 'U', |
13 | '\bITS\b' => 'IT"S', |
14 | '\bIT\'S\b' => 'ITS', |
15 | '\bIS\b' => 'IZ', |
16 | '\bLINUX\b' => 'LINUS', |
17 | '\bUNIX\b' => 'THE MANEFRA1M O/S', |
18 | '\bWINDOWS\b' => 'WINDOWZ (IT RULEZ MAN!)', |
19 | '\bYOU\'RE\b' => 'YOUR', |
20 | '\bTHEM\b' => 'THUM', |
21 | '\bHERE\b' => 'HERE', |
22 | '\bTHEY\'RE\b' => 'THE1R', |
23 | '\bTHEIR\b' => 'THERE', |
24 | '\bWAS\b' => 'WUZ', |
25 | '\bMACINTOSH\b' => 'IMAC', # too 90's? |
26 | '\bVERY\b' => 'TOTALLY', |
27 | '\bCOMPUTER\b' => 'VIC-20', |
28 | '\bWHETHER\b' => 'WHETHUR', |
29 | '\b(?:H|CR)ACKER\b' => 'KEWL HACKER D00D!', |
30 | '\bOF\b' => 'UV', |
31 | '\bGNU\b' => 'NEW', |
32 | '\bQUITE\b' => 'REAL', |
33 | '\bFREE\b' => 'FREE!', |
34 | |
35 | 'HOME' => 'HUM', |
36 | 'COME' => 'CUM', |
37 | 'MICRO' => 'MIKRO', |
38 | 'GOVERN' => 'GUVERN', |
39 | 'PERSON' => 'D00D', |
40 | 'SOME' => 'SUM', |
41 | 'WRITE' => 'RITE', |
42 | 'REAL' => 'REEL', |
43 | 'LITE' => 'L1TE', |
44 | 'BIAN' => 'B1AN', |
45 | 'TION' => 'SHUN', |
46 | 'FOR' => '4', |
47 | 'TO' => '2', |
48 | 'ATE' => '8', |
49 | '\b2TALLY\b' => 'TOTALY', # fix from line above |
50 | 'LL' => 'L', |
51 | 'OO' => '00', |
52 | 'MATE' => 'M8', |
53 | 'ER' => 'UR', |
54 | 'S+\b' => 'Z', |
55 | 'KN' => 'N', |
e99ec255 |
56 | 'IE' => 'EI', |
7e3afbba |
57 | ); |
58 | |
59 | $_=uc; |
60 | s/;/,/g; |
61 | s/'//g; |
62 | |
63 | while (@trans_table) { |
64 | $key=shift @trans_table; |
65 | $value=shift @trans_table; |
66 | s/$key/$value/g; |
67 | } |
68 | |
69 | s/(\!+)/$1.make_exclimation()/eg; |
70 | s/(\?+)/$1.make_question()/eg; |
71 | s/I/rand 3 > 2 ? '1' : 'I'/eg; # change 1/3 of I's to 1's |
72 | |
73 | @punct=('.','!',','); |
74 | |
75 | s/\. /. /g; |
76 | s/\./$punct[int(rand 3)]/eg; |
77 | s/\,/./g; |
78 | |
79 | |
80 | # b1ff can't hold down on shift too well!!!!!!!1! |
81 | sub make_exclimation { |
82 | my $length=shift || int(rand 5); |
83 | my $ret='!'; |
84 | my $last=0; |
85 | for (1..$length) { |
86 | if (! $last && int(rand 3) eq 2) { |
87 | $ret.="1"; |
88 | $last=1; |
89 | } |
90 | else { |
91 | $ret.="!"; |
92 | $last=0; |
93 | } |
94 | } |
95 | return $ret; |
96 | } |
97 | |
98 | # ask questions excitedly?!?!?!?! |
99 | sub make_question { |
100 | my $length=shift || int(rand 5) + 1; |
101 | my $ret=''; |
102 | my $last=0; |
103 | while (length($ret) < $length) { |
104 | if (! $last && int(rand 5) > 2) { |
105 | $ret.="?!"; |
106 | $last=1; |
107 | } |
108 | elsif (! $last && int(rand 5) > 3) { |
109 | $ret.="?1"; |
110 | $last=1; |
111 | } |
112 | else { |
113 | $ret.="?"; |
114 | $last=0; |
115 | } |
116 | } |
117 | return $ret; |
118 | } |