{ version => '02', contest_name => 'BARTG HF RTTY CONTEST', contest_id => 'BARTG-RTTY', filter => { mode => "RTTY", band => \"IN('80M','40M','20M','15M','10M')", }, defaults => { contest_url => 'http://www.bartg.org.uk/hfrttycontest.asp', # contest_url => 'http://www.bartg.org.uk/documents/Contests/HF/BARTG%20HF%20RTTY%20Contest%20rules%202011.pdf', log_cols => [qw/ mycall call qso_date time_on freq band mode rst_sent stx rst_rcvd srx dxccprefix calc1 pfx cont /], placeholders => [qw/ /], dropbox_options => { CATEGORY => [qw/ SOE SOAB SS10 SS15 SS20 SS40 SS80 SWL SOAB6 MS MM /], 'ARRL-SECTION' => [qw/ DX /], }, update => sub { my $row = shift; my $s = $row->{dxccprefix}; my %h => ( calc1 => '' ); my ($n,$t) = ( $row->{srx} =~ /^(\d+)(?:\D+(\d+))?\b/ ); $h{srx} = sprintf '%03d %04d', ($n||0), ($t||substr($row->{time_on},0,4)); $h{stx} = sprintf '%03d %04d', $row->{stx}, substr($row->{time_on},0,4); my $pfx = $row->{pfx}; if( !$pfx ){ my $call = $row->{call}; $call =~ s#/(M|QRP|MM|AM|P)$##i; my @parts = split '/', $call; my ($first) = $parts[0] =~ /^(.+\d+)/; if( ! $parts[1] ){ $pfx = $first; }elsif ($parts[1] =~ /\d/ && $parts[1] =~ /\D/){ $pfx = $parts[1]; }elsif( $parts[1] =~ /^\d+$/ ){ $pfx = $first; $pfx =~ s/\d+$/$parts[1]/; }elsif( $parts[1] =~ /^\D$/ ){ $pfx = $first; $pfx =~ s/^(.+\D)(\d+)$/$parts[1]$2/; } $h{pfx} = $pfx; } if( $s =~ /^(K|VE|JA|VK)$/ ){ my $n = ( $pfx =~ /(\d+)/g )[-1]; $s .= $n; $h{calc1} = $s ; # The Call area (e.g. K4) for K/VE/JA/VK. } return \%h; }, Qs => [ { label => 'Qs', weight => 1, group_by => 'call, band', where => {} }, { label => "ERRORS - unknown DXCC; no mult credit", weight => 0, group_by => 'qso_date,time_on,band,call', where => {dxccprefix=>'??'} }, ], mults => [ { label => 'DXCC', group_by => 'band,dxccprefix', where=>{dxccprefix=>{'!='=>'??'}} }, { label => 'K/VE/VK/JA Call Areas', group_by => 'band,calc1', where => { calc1 => {'!='=>''} } }, ], super_mults => [ { label => 'Continents', group_by => 'cont' }, # TODO: LIMIT 6 for super_mults ], cabrillo => { cabrillo_url => 'http://www.bartg.org.uk/documents/Contests/Cabrillo/Sample%20BARTG%20Sprint%20Cabrillo.pdf', version => '2.0', headers => [qw/ ARRL-SECTION CATEGORY CLUB NAME ADDRESS OPERATORS SOAPBOX /], qso_cols => [qw/cab_freq cab_mode cab_date cab_time mycall rst_sent stx call rst_rcvd srx /], qso_fmt => do { "%-5s %-2s %-10s %-04s %-12s %3d %10s %-12s %3d %10s" }, #1234567890123456789012345678901234567890123456789012345678901234567890123456789 #QSO: 14093 RY 2010-08-16 1721 GW4SKA 1 GB50ATG 002 #QSO: 14093 RY 2010-08-16 1721 GW4SKA 2 XU1ABC 010 }, }, years => { 2011 => { sample => '', filter => { qso_date => { -between => [20110319, 20110321] }, }, }, }, }