home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / info-service / gopher / Unix / go4gw1.1 / g2finger < prev    next >
Encoding:
Text File  |  1993-04-30  |  2.1 KB  |  98 lines

  1. #!/usr/local/bin/perl
  2.  
  3. #----------------------------------------------------------------------
  4. # variables you should change:
  5.  
  6. $finger_server = "epx.cis.umn.edu";   
  7. $finger_port   = 79;
  8.  
  9. #----------------------------------------------------------------------
  10.  
  11. sub finger_main {
  12.     local($_) = @_;
  13.     
  14.     if (/^$/) {
  15.     &Greply("1List of all users on $finger_server\t\t$finger_server\t$finger_port");
  16.     &Greply("7Query finger server $finger_server\t$Ggw $finger_server\t$Ghost\t$Gport");
  17.     &Greply(".");
  18.     exit(0);
  19.     }
  20.     
  21.     ($finger_server, $query) = split('\t');
  22.     
  23.     &GopenServer($finger_server,$finger_port);
  24.     &Gsend($query);
  25.     
  26.     while(<GSERVER>) {
  27.     s/\n//;
  28.     s/\r//;
  29.         push(@lines,$_);
  30.     }
  31.     
  32.     #
  33.     # Always return the output of the finger search first
  34.     #
  35.     
  36.     &Greply("0Raw search results\t$query\t$finger_server\t$finger_port");
  37.     
  38.     #
  39.     # Parse out various finger formats
  40.     #
  41.  
  42.     # Unix style finger format, and gnu finger
  43.   
  44.     if ($lines[0] =~ /Login\s+Name/ || $lindes[0] =~ /User\s+Real/) {
  45.     
  46.         foreach (@lines) {
  47.         if (!/^Login\s+Name/) {
  48.                     /^([\S]+)/;
  49.                     substr($_, 75) = "";
  50.                 &Greply("0$_\t$1\t$finger_server\t$finger_port");
  51.                 } else {
  52.                     &Greply("0$_\tnothing\tbogus\t0");
  53.                 }
  54.         }
  55.     }
  56.  
  57.     #
  58.     # VMS finger format
  59.     #
  60.  
  61.     if ($lines[1] =~ /Jobs\s+Load ave/) {
  62.         foreach (@lines) {
  63.         if (/^ User\s+Personal Name/ || /\d\d:\d\d:\d\d$/ ||
  64.             /Jobs\s+Load ave/) {
  65.                     &Greply("0$_\tnothing\tbogus\t0");
  66.                 } else {
  67.                     /^([\S]+)/;
  68.                     substr($_, 75) = "";
  69.                 &Greply("0$_\t$1\t$finger_server\t$finger_port");
  70.                 }
  71.         }
  72.      }
  73.  
  74.     #
  75.     # CSO gateway finger type servers
  76.     #
  77.     
  78.     foreach (@lines) {
  79.     if (/\s+name:\s+(.*)/ ||
  80.         /\s+person:\s+(.*)/) {
  81.         $newquery = $1;
  82.         $newquery =~ s/,//g; #remove commas
  83.         $newquery =~ s/\s+[A-z]$//; #remove trailing middle initial
  84.         &Greply("0$1\t$newquery\t$finger_server\t$finger_port");
  85.     }
  86.     }
  87.  
  88.  
  89.  
  90.     &Greply(".");
  91.     exit(0);
  92. }
  93.  
  94.  
  95.  
  96.  
  97. 1; # for require
  98.