31/38

Work in progress (1)

Here is a filter I've created to have a look at my browsing habits and patterns.

    #!/usr/bin/perl -w
    use HTTP::Proxy;
    use HTTP::Proxy::HeaderFilter::simple;
    use Fcntl ':flock';
    use strict;
    
    my $file = shift || '-';
    open OUT, ">> $file" or die "Can't open $file: $!";
    
    my $proxy = HTTP::Proxy->new( @ARGV ); # pass any args to the proxy
    
    $proxy->push_filter(
        response => HTTP::Proxy::HeaderFilter::simple->new(
            sub {
                my ( $self, $headers, $message ) = @_;
    
                flock( OUT, LOCK_EX );
                print OUT join( " ",
                      $message->request->headers->header( 'Referer' ) || 'NULL',
                      $message->request->uri,
                      $message->code ), $/;
                flock( OUT, LOCK_UN );
            }
        )
    );
    
    $proxy->start;
    
    close OUT;