Diff for /loncom/debugging_tools/activity_to_accesscount.pl between versions 1.1 and 1.2

version 1.1, 2003/11/14 18:24:40 version 1.2, 2003/11/14 19:41:38
Line 1 Line 1
 #!/usr/bin/perl -w  #!/usr/bin/perl -w
 #  #
 use strict;  use strict;
   use GDBM_File;
   
 sub unescape {  sub unescape {
     my $str=shift;      my $str=shift;
Line 12  my %resourceaccess; Line 13  my %resourceaccess;
   
 sub main {  sub main {
     my $file=$ARGV[0];      my $file=$ARGV[0];
     print STDERR "Using $file\n";      my ($path) = ($file =~ m:(.*)/activity\.log$:);
       my $target = $path.'/nohist_accesscount.db';
       print STDERR "source: $file\ntarget: $target\n";
       my %accessDB;
       my $accesstime = 0;
       my $starttime = time;
       if (-e $target) {
           if (! tie(%accessDB,'GDBM_File',$target,&GDBM_READER,0640)) {
               warn "Unable to tie to $target";
               return;
           }
           #
           if (exists($accessDB{'tabulated '.$file})) {
               $accesstime = $accessDB{'tabulated '.$file};
           }
           untie(%accessDB);
       }
       #
     my $line;      my $line;
     open FILEID,'<'.$file;      open FILEID,'<'.$file;
     my @allaccess;      my @allaccess;
     print STDERR "Access by resource\n\n";      print STDERR "Access by resource after $accesstime\n\n";
     my $numlines = 0;      my $numlines = 0;
     while ($line=<FILEID>) {      while ($line=<FILEID>) {
         $numlines++;          $numlines++;
Line 38  sub main { Line 56  sub main {
         shift(@accesses);          shift(@accesses);
  while (@accesses) {   while (@accesses) {
             my $date = shift(@accesses);              my $date = shift(@accesses);
               next if ($date =~ /\D/ || $date < $accesstime);
             my $access = shift(@accesses);              my $access = shift(@accesses);
             next if (! defined($access) || $access eq '' ||               next if (! defined($access) || $access eq '' || 
                      ! defined($date)   || $date   eq '');                       ! defined($date)   || $date   eq '');
             $access =~ s/(\&$|^:)//g;              $access =~ s/(\&$|^:)//g;
             my ($resource,$who,$domain,$post,@posts)=split(':',$access);              my ($resource,$who,$domain,$post,@posts)=split(':',$access);
     if (!$resource) {      if (!$resource || $resource eq '') {
                 next;                   next; 
             }              }
             $resource = &unescape($resource);              $resource = &unescape($resource);
             if ($resource !~ m:/: || $resource =~ m:/prtspool/:) {              if ($resource !~ m:(.*)/(.*)/: || $resource =~ m:/prtspool/:) {
                 next;                  next;
             }              }
             if ($resource =~ /___\d+___/) {              if ($resource =~ /___\d+___/) {
                 (undef,$resource) = split(/___\d+___/,$resource);                  (undef,$resource) = split(/___\d+___/,$resource);
             }              }
             next if ($resource =~ m:^/(res/adm|adm)/:);              next if ($resource =~ m:^/(res/adm|adm)/:);
             $resource =~ s:^/?res/?::;              $resource =~ s:^/?res/::;
             $resourceaccess{$resource}++;                          $resourceaccess{$resource}++;            
  }   }
     }      }
     print STDERR 'done.'.$/;      print STDERR 'done.  Updating '.$target.$/;
       if (! tie(%accessDB,'GDBM_File',$target,&GDBM_WRCREAT,0640)) {
           warn "Unable to open $target to store data".$/;
           return;
       }
       #
     while (my ($resource,$count) = each(%resourceaccess)) {      while (my ($resource,$count) = each(%resourceaccess)) {
           if (exists($accessDB{$resource})) {
               $accessDB{$resource}+=$count;
           } else {
               $accessDB{$resource} = $count;
           }
         print sprintf("%10.0f",$count).':'.$resource."\n";          print sprintf("%10.0f",$count).':'.$resource."\n";
     }      }
       $accessDB{'tabulated '.$file} = $starttime;
       untie(%accessDB);
 }  }
   
 main;  main;

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>