The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Copyright (C) 2008 Wes Hardaker
# License: Same as perl.  See the LICENSE file for details.
package Ham::Callsign::DB::QRZ;

use Ham::Callsign::DB;
use Ham::Callsign;
use Ham::Scraper;

our @ISA = qw(Ham::Callsign::DB);

use strict;

sub init {
    my ($self) = @_;
    # none needed
}

sub do_load_data {
    my ($self, $place) = @_;
    # none needed.
}

sub do_lookup {
    my ($self, $callsign) = @_;

    my %qrz = Ham::Scraper::QRZ($callsign);
    my %results = (%qrz, FromDB => 'QRZ');

    return if (!$results{'Name'});

    $results{'thecallsign'} = uc($callsign);
    $results{'entity_name'} = $qrz{'Name'};

    $results{'first_name'} =  $qrz{'Name'};
    $results{'first_name'} =~ s/ .*//;

    $results{'last_name'} =  $qrz{'Name'};
    $results{'last_name'} =~ s/.* //;

    $results{'city'} =  $qrz{'CityStateZip'};
    $results{'city'} =~ s/,* .*//;

    $results{'zip'} =  $qrz{'CityStateZip'};
    $results{'zip'} =~ s/.*(\d+)$/$1/;

    $results{'state'} =  $qrz{'CityStateZip'};
    $results{'state'} =~ s/.* ([A-Z][A-Z]) .*/$1/;

    $results{'qth'} = $qrz{'CityStateZip'} . ", " . $qrz{'Grid'};

    foreach my $xfer (qw(CityStateZip TimeZone GMTOffset Grid)) {
	$results{$xfer} = $qrz{$xfer};
    }

    return [new Ham::Callsign(%results)];
}

sub do_create_tables {
    my ($self) = @_;

    # not needed
}

1;

=pod

=head1 NAME

=cut