{ version => '01', contest_name => 'EU PSK DX Contest', contest_id => 'EU-PSK-DX', filter => { mode => \"IN ('PSK63', 'BPSK63' )", band => \"IN('80M','40M','20M','15M','10M')", }, defaults => { contest_url => 'http://eu.srars.org/index.php?option=com_content&task=view&id=20&Itemid=48', log_cols => [qw/ mycall call qso_date time_on mode freq band rst_sent stx rst_rcvd srx cont dxccprefix /], placeholders => [qw/ cont dxccprefix /], dropbox_options => { cont => [qw/ AF AN AS EU NA OC SA /], dxccprefix => [ sort keys %{{ do 'dxcc.inc' }} ], 'CATEGORY-OPERATOR' => [qw/ SOAB-HP-24 SOAB-LP-24 SOAB-HP-12 SOAB-LP-12 SO80-HP SO80-LP SO40-HP SO40-LP SO20-HP SO20-LP SO15-HP SO15-LP SO10-HP SO10-LP SOLF-HP SOLF-LP SOHF-HP SOHF-LP MOST-OM MOST-YM MOMT-OM MOMT-YM /], }, update => sub { my $row = shift; my %h; no warnings 'uninitialized'; $h{srx} = sprintf '%03d', $row->{srx} unless $row->{srx} =~ /\D/; $h{stx} = sprintf '%03d', $row->{stx} unless $row->{stx} =~ /\D/; $h{srx} = uc $row->{srx} if $row->{srx} =~ /[a-z]/; $h{stx} = uc $row->{stx} if $row->{stx} =~ /[a-z]/; # hack for users (seen a couple from HRD) that have both # the rst and exchange in the rst field. ($h{rst_rcvd}, $h{srx}) = split / /, $row->{rst_rcvd} if !$row->{srx} && $row->{rst_rcvd} =~ /^\d\d\d \s*\S+/; ($h{rst_sent}, $h{stx}) = split / /, $row->{rst_sent} if !$row->{stx} && $row->{rst_sent} =~ /^\d\d\d \s*\S+/; return \%h; }, Qs => [ { label => 'Own Country', weight => 1, group_by => 'band, call', where => {dxccprefix=>$INPUT{dxccprefix}} }, { label => 'Own Continent', weight => 2, group_by => 'band, call', where => {cont=>$INPUT{cont},dxccprefix=>{'!=' => $INPUT{dxccprefix}}} }, { label => 'Different Continent', weight => 3, group_by => 'cont, band, call', where => { cont=>{-not_in => [$INPUT{cont},'EU']} } }, ( ($INPUT{cont}||'') ne 'EU' ? { label => 'European Station', weight => 5, group_by => 'band, dxccprefix, call', where => {cont=>'EU'} } : () ), # TODO: /MM stations are 3pts each ], mults => [ { label => 'DXCC', group_by => 'band,cont,dxccprefix', where => {cont => {'!=' => 'EU'} } }, { label => 'EU Areas', group_by => 'band,dxccprefix,srx', where => { cont => 'EU' } }, # TODO: /MM stations don't count for mults ], cabrillo => { cabrillo_url => 'http://eu.srars.org/index.php?option=com_wrapper&Itemid=94', version => '2.0', headers => [qw/ CATEGORY-OPERATOR CLUB CATEGORY-POWER NAME EMAIL ADDRESS OPERATORS SOAPBOX /], qso_cols => [qw/cab_freq cab_mode cab_date cab_time mycall rst_sent stx call rst_rcvd srx /], qso_fmt => '%-5s %-2s %-10s %-04s %-13s %-3s %-6s %-13s %-3s %-6s', # ==== C A B R I L L O Q S O T E M P L A T E ==== # ------INFO SENT------- ------INFO RCVD------- # QSO: FREQ MO DATE TIME CALLSIGN RST NUMB CALLSIGN RST NUMB # QSO: ***** ** yyyy-mm-dd nnnn ************* nnn nnnnnnnn******************nnn nnnnnnnn # QSO: 14070 PM 2010-05-22 1200 4U1VIC 599 UN03 DA0EPC 599 GM30 # QSO: 14070 PM 2010-05-22 1201 4U1VIC 599 UN03 W4EPC 599 001 # 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456 }, }, years => { 2010 => { sample => '7ff18761a6907f15ee27a51dd015c7f1', filter => { qso_date => { -between => [20100522, 20100523] }, }, }, }, }