#!/usr/bin/perl -w use strict; # http://wow.allakhazam.com/dev/wow/item-xml.pl?witem=16898 open(LOG,">>get_xml.log"); use DBI; require LWP::UserAgent; my $ua = LWP::UserAgent->new; $ua->timeout(10); my $base = "DATABASE"; my $user = "USER"; my $pass = "PASS"; my $dbh = DBI->connect("DBI:mysql:$base:localhost", "$user", "$pass") or die $DBI::err.": ".$DBI::errstr; my($query,$sth,$ref); my($url,$response,$value); $query = " SELECT main-id, item-id, item-name FROM item-db WHERE xml-is-cached=0 ORDER BY item-id ASC "; $sth = $dbh->prepare($query); $sth->execute(); while( $ref = $sth->fetchrow_hashref() ) { $url = "http://wow.allakhazam.com/dev/wow/item-xml.pl?witem=".$ref->{zam_id}; $response = $ua->get($url); $value = $response->content; my($sec, $min, $hour, $monthday, $month, $year, $weekday, $yearday, $isdaylight) = localtime(time); $month++; $year -= 100; $year += 2000; $month = sprintf("%02d", $month); my $stamp = "$year-$month-$monthday $hour:$min:$sec"; if( $value =~ /.*<\/wowitem>/gis ) { $query = sprintf(" UPDATE item-db SET xml-is-cached=%d, xml-cache=%s WHERE main-id=%d ", 1, $dbh->quote($value), $ref->{id} ); $dbh->do($query); print LOG "$stamp: Inserted XML for ID $ref->{item-id} with name $ref->{item-name}.\n"; print "$stamp: Inserted XML for ID $ref->{item-id} with name $ref->{item-name}.\n"; } else { print LOG "$stamp: Failed to get XML for ID $ref->{item-id} with name $ref->{item-name}.\n"; print "$stamp: Failed to get XML for ID $ref->{item-id} with name $ref->{item-name}.\n"; } } close(LOG); print "\nDone.\n";