]> iEval git - filters.git/blobdiff - censor
* Added a censor filter.
[filters.git] / censor
diff --git a/censor b/censor
new file mode 100755 (executable)
index 0000000..2d46963
--- /dev/null
+++ b/censor
@@ -0,0 +1,61 @@
+#!/usr/bin/perl
+# Censor filter.
+# Copyright 2002 by Joey Hess under the terms of the GNU GPL.
+
+# Yes, this program is self-modifying code, if you want it to be.
+if (exists $ENV{ADD_WORD}) {
+       open(IN, $0) || die "cannot read myself";
+       @lines=<IN>;
+       close IN;
+       open OUT, ">$0" || die "cannot write myself";
+       for (@lines) {
+               print OUT $_;
+               if (/^__DATA__\n$/) {
+                       open(DATAOUT, "|sort|uniq|column >> $0");
+                       $ENV{ADD_WORD} =~ y/n-za-m/a-z/;
+                       print DATAOUT "$ENV{ADD_WORD}\n";
+                       print DATAOUT join("\n", 
+                                       map { chomp; split ' ', $_ } <DATA>);
+                       close DATAOUT;
+                       exit;
+               }
+       }
+}
+
+$censored = join("|", reverse sort { $a cmp $b } 
+               grep { length $_ }
+               map { chomp; y/a-z/n-za-m/; split ' ', $_ } <DATA>);
+
+while (<>) {
+       s/\b($censored)ed/CENSORED/ig; # don't say "CENSOREDed"
+       s/\b($censored)/CENSORED/ig;
+       print $_;
+}
+
+__DATA__
+ahqr           enaql           grng            pbzrvat         t\f+fcbg
+anxrq          encr            guebng          pbzvat          tebva
+avccyr         erne            gvg             pebgpu          ubbgre
+bcravat                fangpu          gvggl           penc            ubeal
+beny           fchax           gvggvr          penpx           ubyr
+betl           fcrez           hgrehf          pernz           uhzc
+betnfz         fcuvapgre       ihyin           phag            unaqwbo
+certanag       fghq            intvan          phz             urnq
+cevpx          fgnss           ivetva          phzzvat         wvfz
+chff           fhpx            ivoengbe        pnzr            xabo
+chffl          fjnyybj         jbzo            preivk          xvff
+chffvrf                fperj           jrg             pureel          ybir
+chovp          frk             juber           pyvg            ybire
+chqraqhz       frkhny          kkk             pyvgbehf        ybirq
+chzc           frrq            nany            pyvggl          ybnq
+cnagvrf                frzra           nerbyn          pyvznk          ynovn
+crargengr      funsg           nff             qevyyrq         ynvq
+crargengrq     funt            nffubyr         qrsybjre        yrfovna
+cravf          funttvat        obbo            qvpx            yvcf
+crgre          fuvg            oernfg          qvyqb           znfgheong
+crpxre         fyhg            ohgg            rebgvp          znfgheongr
+cunyyhf                fyhggvfu        ohggbpx         rerpgvba        znfgheongvat
+cvff           fyvg            onyy            rkcbfrq         znzznel
+ebfrohq                gbathr          ovgpu           shpx            znzznevrf
+ebq            gbby            oybj            snpvny
+ehg            gjng            pbpx            t-fcbg
This page took 0.019732 seconds and 4 git commands to generate.