#!/usr/bin/perl
use strict; use warnings;
use utf8;

my $susbscription_id = "00000000000000000000";
use AWSECommerceService; # Amazon laden
use Data::Dumper; 

my @data = ();

############## Amazon Daten abrufen ###############

my $page = 1; my $total_pages = 0;
do {
	print 'Lade Seite ', $page, "\n";

	my $obj = AWSECommerceService->new;
	$obj->ItemSearch(
		SOAP::Data->value(
			SOAP::Data->name('SubscriptionId')
				->value($susbscription_id),
			SOAP::Data->name('Request')
				->value(
					\SOAP::Data->value( # \ sorgt für korrekte Verschachtelung
						SOAP::Data->name('SearchIndex')
							->value('DVD'),
							#->value('Books'), # Für Bücher, bringt aber in Dtl wegen Preisbindung wenig
							#->value('VideoGames'), # Videospiele
						SOAP::Data->name('ItemPage')
							->value($page),
						SOAP::Data->name('BrowseNode')
							->value('508098') # Anime
							#->value('698198') # Manga
							#->value('3504091') # Manga Übersicht
							#->value('639320') # GameCube
					)
				)
		)
	);
	my $som = $obj->{_call};
	sleep 1;

	$total_pages = $som->valueof('//TotalPages');
	print 'Seiten insgesamt: ', $total_pages, "\n" unless $page > 1;

	my $node_num = 1;
	while($som->match("//Items/[$node_num]")) {
		$node_num++;
		next unless $som->match("//Items/[$node_num]/ItemAttributes");  
		my @authors = $som->valueof("//Items/[$node_num]/ItemAttributes/Author");
		my $item = $som->valueof("//Items/[$node_num]");
		push @data, {
			Title => $item->{'ItemAttributes'}->{'Title'},
			Authors => [ @authors ],
			ASIN => $item->{'ASIN'},
			Owned => 0
		};
	}
	unless ($page % 10) {
		open my $fh, '>', 'AmazonCache.pm'; print $fh Dumper(\@data); close $fh;
	}

} while ( $page++ <= $total_pages and $page < 1000 );

open my $fh, '>', 'AmazonCache.pm'; print $fh Dumper(\@data); close $fh;

