1#!/usr/bin/perl -w 2use HTTP::Proxy qw( :log ); 3use HTTP::Proxy::BodyFilter::tags; 4use HTTP::Proxy::BodyFilter::simple; 5use HTTP::Proxy::BodyFilter::htmltext; 6use strict; 7 8my $proxy = HTTP::Proxy->new(@ARGV); 9 10my %noaccent = ( 11 Agrave => 'A', Aacute => 'A', Acirc => 'A', Atilde => 'A', 12 Auml => 'A', Aring => 'A', AElig => 'AE', Ccedil => 'C', 13 Egrave => 'E', Eacute => 'E', Ecirc => 'E', Euml => 'E', 14 Igrave => 'I', Iacute => 'I', Icirc => 'I', Iuml => 'I', 15 Ntilde => 'N', Ograve => 'O', Oacute => 'O', Ocirc => 'O', 16 Otile => 'O', Ouml => 'O', Oslash => 'O', Ugrave => 'U', 17 Uacute => 'U', Ucirc => 'U', Uuml => 'U', Yacute => 'Y', 18 agrave => 'a', aacute => 'a', acirc => 'a', atilde => 'a', 19 auml => 'a', aring => 'a', aelig => 'ae', ccedil => 'c', 20 egrave => 'e', eacute => 'e', ecirc => 'e', euml => 'e', 21 igrave => 'i', iacute => 'i', icirc => 'i', iuml => 'i', 22 ntilde => 'n', ograve => 'o', oacute => 'o', ocirc => 'o', 23 otile => 'o', ouml => 'o', oslash => 'o', ugrave => 'u', 24 uacute => 'u', ucirc => 'u', uuml => 'u', yacute => 'y', 25 'yuml' => 'y', '�' => 'AE', '�' => 'ae', 26); 27 28my $re = join '|', sort keys %noaccent; 29 30$proxy->push_filter( 31 mime => 'text/html', 32 response => HTTP::Proxy::BodyFilter::tags->new, # protect tags 33 response => HTTP::Proxy::BodyFilter::simple->new( # remove accents 34 sub { ${ $_[1] } =~ s/&($re);/$noaccent{$1}/go; } 35 ), 36 response => HTTP::Proxy::BodyFilter::htmltext->new( # rot13 37 sub { 38 tr{�������������������������������������������������������} 39 {AAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy}; 40 tr/a-zA-z/n-za-mN-ZA-M/; 41 } 42 ) 43); 44 45$proxy->start; 46 47