[Koha-cvs] CVS: koha/misc/amazonratings get_ratings.pl,1.1,1.2
Chris Cormack
rangi at users.sourceforge.net
Sat Mar 6 08:55:49 CET 2004
Update of /cvsroot/koha/koha/misc/amazonratings
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4665
Modified Files:
get_ratings.pl
Log Message:
Bugfix, now it actually does whats its supposed to.
Index: get_ratings.pl
===================================================================
RCS file: /cvsroot/koha/koha/misc/amazonratings/get_ratings.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** get_ratings.pl 6 Mar 2004 07:45:33 -0000 1.1
--- get_ratings.pl 6 Mar 2004 07:55:35 -0000 1.2
***************
*** 13,63 ****
use C4::Context;
! my $url="http://www.amazon.com/exec/obidos/search-handle-url/index%3Dbooks%26field-isbn%3D";
! my $dbh=C4::Context->dbh();
!
! my $query="SELECT isbn,biblioitemnumber,biblionumber FROM biblioitems";
! my $sth=$dbh->prepare($query);
$sth->execute();
! while (my $data=$sth->fetchrow_hashref()){
! $data->{'isbn'}=~ s/\-//g;
! $data->{'isbn'}=~ s/ +//g;
!
! # append isbn
! # isbn must appear without spaces or -
!
! $url.=$data->{'isbn'};
! my $ua = LWP::UserAgent->new;
! my $content = $ua->get($url)->content;
! #print $content;
!
!
! my $rating;
!
! if ($content=~ /alt="(.*?) out of 5 stars"/){
! $rating=$1;
!
! }
! if ($rating){
! # first check we dont already have a rating, if so, and its different update it
! # otherwise insert a new rating
! my $query2="SELECT * FROM ratings WHERE biblioitemnumber=?";
! my $sth2=$dbh->prepare($query2);
! $sth2->execute($data->{'biblioitemnumber'});
! if (my $ratings=$sth2->fetchrow_hashref()){
! if ($rating ne $ratings->{'rating'}){
! my $query3="UPDATE ratings SET rating=? WHERE biblioitemnumber=?";
! my $sth3=$dbh->prepare($query3);
! $sth3->execute($rating,$data->{'biblioitemnumber'});
! $sth3->finish();
! }
! }
! else {
! my $query3="INSERT INTO ratings (rating,biblioitemnumber,biblionumber) VALUES (?,?,?)";
! my $sth3=$dbh->prepare($query3);
! $sth3->execute($rating,$data->{'biblioitemnumber'},$data->{'biblionumber'});
! $sth3->finish();
! }
! $sth2->finish();
}
}
--- 13,70 ----
use C4::Context;
! my $dbh = C4::Context->dbh();
! my $query =
! "SELECT isbn,biblioitemnumber,biblionumber FROM biblioitems where isbn is NOT NULL and isbn <> ''
! group by isbn";
! my $sth = $dbh->prepare($query);
$sth->execute();
! while ( my $data = $sth->fetchrow_hashref() ) {
! $data->{'isbn'} =~ s/\-//g;
! $data->{'isbn'} =~ s/ +//g;
!
! # append isbn
! # isbn must appear without spaces or -
! my $url = "http://www.amazon.com/exec/obidos/search-handle-url/index%3Dbooks%26field-isbn%3D";
! $url .= $data->{'isbn'};
! my $ua = LWP::UserAgent->new;
! my $content = $ua->get($url)->content;
!
! #print $content;
!
! my $rating;
!
! if ( $content =~ /alt="(.*?) out of 5 stars"/ ) {
! $rating = $1;
!
}
+ if ($rating) {
+
+ # first check we dont already have a rating, if so, and its different update it
+ # otherwise insert a new rating
+ my $query2 = "SELECT * FROM ratings WHERE biblioitemnumber=?";
+ my $sth2 = $dbh->prepare($query2);
+ $sth2->execute( $data->{'biblioitemnumber'} );
+ if ( my $ratings = $sth2->fetchrow_hashref() ) {
+ if ( $rating ne $ratings->{'rating'} ) {
+ my $query3 =
+ "UPDATE ratings SET rating=? WHERE biblioitemnumber=?";
+ my $sth3 = $dbh->prepare($query3);
+ $sth3->execute( $rating, $data->{'biblioitemnumber'} );
+ $sth3->finish();
+ }
+ }
+ else {
+ my $query3 =
+ "INSERT INTO ratings (rating,biblioitemnumber,biblionumber) VALUES (?,?,?)";
+ my $sth3 = $dbh->prepare($query3);
+ $sth3->execute(
+ $rating, $data->{'biblioitemnumber'},
+ $data->{'biblionumber'}
+ );
+ $sth3->finish();
+ }
+ $sth2->finish();
+
}
+ }
More information about the Koha-cvs
mailing list