Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- #
- # mods by cespun
- #
- use IO::File;
- $| = 1;
- STDOUT->autoflush(1);
- $debug = 1; ## recommended:0
- $bypassallrules = 0; ## recommended:0
- $sucks = ""; ## unused
- $sucks = "sucks" if ($debug>=1);
- $timenow ="";
- $printtimenow = 1; ## print timenow: 0|1
- my $logfile = '/var/log/squid/storeid.log';
- open my $logfh, '>>', $logfile
- or die "Couldn't open $logfile for appending: $!\n" if $debug;
- $logfh->autoflush(1) if $debug;
- while (<>) {
- $timenow = time()." " if ($printtimenow);
- print $logfh "$timenow"."in : input = $_" if ($debug >= 1);
- @X = split;
- if ($X[0] =~ m/^http.*/) {
- $url = $X[0];
- $referer = $X[1];
- $urlreferer = $X[0] ." ". $X[1];
- } else {
- $chanel = $X[0];
- $url = $X[1];
- $referer = $X[2];
- $urlreferer = $X[1] ." ". $X[2];
- }
- #youtube googlevideo
- if ($url =~ m/^https?\:\/\/.*googlevideo.*video(playback|goodput).*/){
- @cpn = m/[=%&?\/]cpn[=%&?\/]([^\&\s]*)/;
- @id = m/[=%&?\/]id[=%&?\/]([^\&\s]*)/;
- @itag = m/[=%&?\/]itag[=%&?\/]([\d]*)/;
- @range = m/[=%&?\/]range[=%&?\/]([\d]*-[\d]*)/;
- @mime = m/[=%&?\/]mime[=%&?\/]([^\&\s]*)/;
- if ($referer =~ m/^https?\:\/\/www\.youtube\.com\/(watch\?v|embed|v)[=%&?\/]([^\&\s\?]*)/){
- @id = $2;
- } elsif (defined(@cpn[0])){
- if (-e "/tmp/@cpn"){
- open FILE, "/tmp/@cpn";
- @id = <FILE>;
- close FILE;
- }
- }
- $out="OK store-id=http://squid/googlevideo/youtube/id=@id/itag=@itag/mime=@mime/range=@range";
- #youtube parameter
- } elsif ($url=~ m/^https?\:\/\/.*youtube.*(api.*stats.*ads|ptracking|set_awesome|stream_204|watchtime|qoe|atr|player_204|csi_204).*(content_v|video_id|docid|v).*/){
- @cpn = m/[=%&?\/]cpn[=%&?\/]([^\&\s]*)/;
- @id = m/[=%&?\/](content_v|video_id|docid|v)[=%&?\/]([^\&\s]*)/;
- if ($referer !~ m/^https?\:\/\/www\.youtube\.com\/(watch\?v|embed|v)[=%&?\/]([^\&\s\?]*)/){
- unless (-e "/tmp/@cpn"){
- open FILE, ">/tmp/@cpn";
- print FILE @id[1];
- close FILE;
- }
- }
- $out = "ERR";
- } else {
- $out="ERR";
- }
- if ($X[0] =~ m/^http.*/) {
- print "$out\n";
- print $logfh "$timenow"."out: $out\n" if ($debug>=1);
- } else {
- print "$chanel $out\n";
- print $logfh "$timenow"."out: $chanel $out\n" if ($debug>=1);
- }
- }
- close $logfh if ($debug);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement