The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Updated on 11/21/05 by Jeff Mercer <riffer@vaxer.net>
#
package Net::ParseWhois::Domain::Registrar::DomainBank;

require 5.004;
use strict;

# TODO:
# this one needs work on parse_contacts .. try domainbank.net and domainbank.com.
# bleh.

@Net::ParseWhois::Domain::Registrar::DomainBank::ISA = qw(Net::ParseWhois::Domain::Registrar);
$Net::ParseWhois::Domain::Registrar::DomainBank::VERSION = 0.2;

sub rdebug		{ 0 }
sub regex_org_start	{ '^Registrant:'}
sub regex_no_match	{ '^No Match for \"' }
sub regex_created	{ '^Created on: (.*)$' }
sub regex_expires	{ '^Expires on: (.*)$' }
sub regex_updated	{ '^Last Updated on: (.*)$' } 
sub regex_domain	{ '^Domain Name: (.*)$' }
sub regex_nameservers	{ '^Domain servers in listed order:$' }
# Doesn't seem to offer Zone contacts anymore.  --jcm, 11/18/05
sub my_contacts		{ [ qw(Administrative Technical) ] }
# Nope, not needed anymore.  --jcm, 11/18/05
#sub my_contacts_extra_line { 1 }
sub my_nameservers_noips { 1 }
sub my_data		{ [ qw(my_contacts my_nameservers_noips regex_org_start regex_no_match regex_created regex_expires regex_updated regex_domain regex_nameservers) ] }

sub parse_text {
	my $self = shift;
	my $text = shift; # array ref, one line per element

	# Re-render output to make Contacts section format like NetSol type
	# (Only relevant for contacts that have multiple roles)
	#					--jcm, 11/21/05
	my $atext = join("\n",@{ $text });
	$atext =~ s/Administrative, Technical Contact:/Administrative Contact, Technical Contact:/g;
	$atext =~ s/Technical, Administrative Contact:/Administrative Contact, Technical Contact:/g;
	my @newtext = split(/\n/, $atext);
	$text = \@newtext;

	$self->dump_text($text) if $self->rdebug;
	$self->parse_start($text);
	$self->dump_text($text) if $self->rdebug;
	$self->parse_org($text);
	$self->dump_text($text) if $self->rdebug;
	$self->parse_domain_name($text);
	$self->dump_text($text) if $self->rdebug;
	$self->parse_domain_stats($text);
	$self->dump_text($text) if $self->rdebug;
	$self->parse_contacts($text);
	$self->dump_text($text) if $self->rdebug;
	$self->parse_nameservers($text);
	$self->dump_text($text) if $self->rdebug;

	return $self;
}

# Shouldn't need this anymore.   --jcm, 11/18/05
#sub parse_domain_stats { 
#
## required because they don't have UPDATED info .. changing base class would
## be complicated, and I think ICANN requires the updated: string in whois output.
## --aai
#
#	my ($self, $text) = @_;
#	while (@{ $text}) {
#		last if ($self->{RECORD_CREATED} && $self->{RECORD_EXPIRES});
#		my $t = shift(@{ $text });
#		next if $t=~ /^$/;
#		if ($t =~ /$self->{'regex_created'}/) {
#			$self->{RECORD_CREATED} = $1;
#		} elsif ($t =~ /$self->{'regex_expires'}/) {
#			$self->{RECORD_EXPIRES} = $1;
#		}
#	}
#}


1;