--- nsdl/lonsql 2005/11/17 22:34:49 1.3 +++ nsdl/lonsql 2005/11/24 20:21:15 1.6 @@ -3,7 +3,7 @@ # The LearningOnline Network # lonsql - LON TCP-NSDL Query Handler. # -# $Id: lonsql,v 1.3 2005/11/17 22:34:49 www Exp $ +# $Id: lonsql,v 1.6 2005/11/24 20:21:15 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -453,7 +453,7 @@ sub process_file { sub do_sql_query { my ($query) = @_; - &logthis('doing query '.$query); +# &logthis('doing query '.$query); my @results = (); @@ -853,11 +853,36 @@ sub nsdl_query { my ($keyword)=($query=~/\"\%([^\%]+)\%\"/); $keyword=&escape($keyword); &logthis('Doing '.$keyword); - my $url='http://search.nsdl.org?verb=Search&s=0&n=500&q='.$keyword; + my $url='http://search.nsdl.org?verb=Search&s=0&n=500&q=-link.primaryCollection:oai\:nsdl.org\:nsdl.nsdl\:00254%20'.$keyword; my $ua=new LWP::UserAgent; my $response=$ua->get($url); - - return []; + my $parser=HTML::LCParser->new(\$response->content); + my %result=(); + my $is=(); + my $cont=''; + my $array=[]; + my $token; + while ($token=$parser->get_token) { + if ($token->[0] eq 'T') { + $cont.=$token->[1]; + } elsif ($token->[0] eq 'S') { + if ($token->[1] eq 'record') { + %result=(); + } elsif ($token->[1]=~/^dc\:/) { + $is=$token->[1]; + $cont=''; + } + } elsif ($token->[0] eq 'E') { + if ($token->[1] eq 'record') { +# +# Now store it away +# + } elsif ($token->[1]=~/^dc\:/) { + $result{$is}=$cont; + } + } + } + return $array; } =pod