Initial revision
[filters.git] / b1ff
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',
56 );
57
58 $_=uc;
59 s/;/,/g;
60 s/'//g;
61
62 while (@trans_table) {
63 $key=shift @trans_table;
64 $value=shift @trans_table;
65 s/$key/$value/g;
66 }
67
68 s/(\!+)/$1.make_exclimation()/eg;
69 s/(\?+)/$1.make_question()/eg;
70 s/I/rand 3 > 2 ? '1' : 'I'/eg; # change 1/3 of I's to 1's
71
72 @punct=('.','!',',');
73
74 s/\. /. /g;
75 s/\./$punct[int(rand 3)]/eg;
76 s/\,/./g;
77
78
79 # b1ff can't hold down on shift too well!!!!!!!1!
80 sub make_exclimation {
81 my $length=shift || int(rand 5);
82 my $ret='!';
83 my $last=0;
84 for (1..$length) {
85 if (! $last && int(rand 3) eq 2) {
86 $ret.="1";
87 $last=1;
88 }
89 else {
90 $ret.="!";
91 $last=0;
92 }
93 }
94 return $ret;
95 }
96
97 # ask questions excitedly?!?!?!?!
98 sub make_question {
99 my $length=shift || int(rand 5) + 1;
100 my $ret='';
101 my $last=0;
102 while (length($ret) < $length) {
103 if (! $last && int(rand 5) > 2) {
104 $ret.="?!";
105 $last=1;
106 }
107 elsif (! $last && int(rand 5) > 3) {
108 $ret.="?1";
109 $last=1;
110 }
111 else {
112 $ret.="?";
113 $last=0;
114 }
115 }
116 return $ret;
117 }
This page took 0.027681 seconds and 5 git commands to generate.