#!/usr/bin/perl -w
use strict;

use Astro::Time;

my $exper;
my $startDate;
my $stopDate;
my $startUT;
my $stopUT;
my $dayno;
my $tels;
my $band;

sub resetVars() {
  $exper = 'xx';
  $startDate = 'xx';
  $startUT = 'xx';
  $stopDate = 'xx';
  $stopUT = 'xx';
  $tels = 'xx';
  $dayno = 'xx';
  $band = 'xx';
}

my @LBAant = ('At', 'Mp', 'Ho', 'Cd', 'Pa', 'Wa', 'Td');
sub isLBA ($) {
  my $tels = shift;
  my @lbaTel = ();
  my $isLBA = 0;
  foreach (@LBAant) {
    if ($tels =~ /$_/) {
      $isLBA = 1;
      push @lbaTel, $_;
    }
  }
  if ($isLBA) {
    return join(' ', @lbaTel);
  } else {
    return undef;
  }
}

resetVars();
my $preamble = 1;
while (<>) {
  s/\#.*$//;
  if (/^\s*$/) {
    next;
  }

  if ($preamble) {
    if (/^\s*Version\s+\S+/) {
      $preamble = 0;
      next;
    } else {
      next;
    }
  } elsif (/Observational code:\s*(\S+)/) {
    $exper = $1;
    $exper =~ s/raks/rk/;
    $exper =~ s/rags/rg/;
  } elsif (/Start\(UT\): (\S+)\s*(\S+)/) {
    $startDate = $1;
    $startUT = $2;
    $startDate =~ s/\./\//g;
    my ($day, $month, $year) = $startDate =~ m[(\d+)/(\d+)/(\d+)];
    $dayno = cal2dayno($day, $month, $year);
    $startDate =~ s[(\d+/\d+)/\d+$][$1];
    $startUT =~ s[(\d+:\d+):\d+$][$1];
  } elsif (/Stop\(UT\)\s*:\s*(\S+)\s*(\S+)/) {
    $stopDate = $1;
    $stopUT = $2;
    $stopDate =~ s/\./\//g;
    $stopUT =~ s[(\d+:\d+):\d+$][$1];
  } elsif (/GRT: (\S.*\S)/) {
    $tels = $1;
    if (defined ($tels = isLBA($tels))) {
      #$tels =~ s/\(.*?\)//g;
      #$tels =~ s/,//g;
      print "| [[$exper]] | $band | $tels |  $startDate | $dayno/$startUT-$stopUT | Radioastron | ? |\n";
    }
    resetVars();
  } elsif (/^\s*GRT:/) {
    resetVars();
  } elsif (/^\s*Pcal:/ || /^\s*Task:/ || /^\s*Proposals:/ || /^\s*Source:/
	   || /^\s*Comments:/ || /^\s*COMMENTS:/) {
    # Ignore
  } elsif (/^\s*Band:\s*(\S+)/) {
    $band = $1;
  } elsif (/^\s*=+\s*$/) {
    last;
  } else {
    warn "Skipped $_\n";
  }

  

}
