From: Joey Hess Date: Mon, 1 Apr 2013 17:46:04 +0000 (-0400) Subject: lolcat: New filter. X-Git-Tag: 2.49~1 X-Git-Url: http://git.ieval.ro/?p=filters.git;a=commitdiff_plain;h=0c3e934eb371b7220346e4311843944b8437a656 lolcat: New filter. --- diff --git a/debian/changelog b/debian/changelog index a432820..df19b14 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ filters (2.49) UNRELEASED; urgency=low * scottish: Fix typo. Closes: #688905 + * lolcat: New filter. -- Joey Hess Wed, 26 Sep 2012 15:46:28 -0400 diff --git a/filters.6 b/filters.6 index fd860e5..29f9bd9 100644 --- a/filters.6 +++ b/filters.6 @@ -19,6 +19,8 @@ text to stdout. Some filters also support reading from files and writing to stdout. .IP b1ff The B1FF filter +.IP lolcat +As seen in internet gifs everywhere. .IP cockney Cockney English .IP chef diff --git a/lolcat b/lolcat new file mode 100755 index 0000000..22c4a58 --- /dev/null +++ b/lolcat @@ -0,0 +1,86 @@ +#!/usr/bin/perl -p +# lolcatz filtur +# Copyright 2013 by Joey Hess under the terms of the GNU GPL. + +# an array, not a hash. because order is important +@trans_table=( + 'can i' => 'i can', + '\bi\'ve' => 'i', + '\ba\s+' => '', # nuke 'a' + 'cheese' => 'cheez', + '\brock\b' => 'rawk', + 'ese\b' => 'ees', + 's\'s\b' => 's', + '\'s\b' => 's', + 'er\b' => 'r', + 'ture\b' => 'chur', + 'day' => 'dai', + '\bok\b' => 'k', + '\boks\b' => 'ks', + 'boy' => 'boi', + 'tion' => 'shun', + 'ight' => 'ite', + 'innocent' => 'innozent', + 'ph' => 'f', + 'es' => 'ez', + 'ed\b' => 'd', + 'ns' => 'nz', + 'ks' => 'kz', + 'ds' => 'dz', + 'se' => 'ze', + 'zs' => 's', + 'sz' => 'z', + 'ss' => 's', + 'cc' => 'cs', + 'ck' => 'k', + 'oa' => 'o', + '\bcat' => 'kat', + 'ive\b' => 'iv', + 'ake' => 'aek', + 'ed\b' => 'd', + 'ing\b' => 'in', + 'sion' => 'shun', + '\bam\b' => 'iz', + '\bhave\b' => 'has', + '\bwho' => 'hoo', + '\bwake\b' => 'waek', + '\bone\b' => '1', + '\btwo\b' => '2', + '\bto\b' => '2', + '\btoo\b' => '2', + '\bthree\b' => '3', + '\bfour\b' => '4', + '\bfor\b' => '4', + '\bfore\b' => '4', + '\bfive\b' => '5', + '\bsix\b' => '6', + '\bseven\b' => '7', + '\beight\b' => '8', + '\bnine\b' => '9', + '\bten\b' => '10', + 'god' => 'ceilin cat', + 'jezus' => 'jebus', + 'kitty' => 'kitteh', + 'saturdai' => 'katurdai', + 'allah' => 'invisible man', + 'delicious' => 'delishus', + '\bdoctor\b' => 'docta', + '\bdr\b' => 'docta', + '\bgay\b' => 'ghey', + '\bgood\b' => 'gud', + '\bever' => 'evr', + '\bpage\b' => 'paeg', + 'cheezburgr' => 'cheezburger', # fix up to canonical form +); + +y/A-Z/a-z/; + +while (@trans_table) { + $key=shift @trans_table; + $value=shift @trans_table; + s/$key/$value/g; +} + +s/es/ez/g; + +y/a-z/A-Z/;