 , and it stores them internally.  It could be buggy, dunno, but it has worked so far for me, enjoy.
, and it stores them internally.  It could be buggy, dunno, but it has worked so far for me, enjoy.Amazon Large Pic Import Script
Amazon Large Pic Import Script
Hello, i'm new to the forums, and never have written anything in pascal, but here is my first go at it.  This should import pictures from amazon, the nice large ones  , and it stores them internally.  It could be buggy, dunno, but it has worked so far for me, enjoy.
, and it stores them internally.  It could be buggy, dunno, but it has worked so far for me, enjoy.
			
			
									
						
										
						 , and it stores them internally.  It could be buggy, dunno, but it has worked so far for me, enjoy.
, and it stores them internally.  It could be buggy, dunno, but it has worked so far for me, enjoy.Here is an updated, less buggy version.
			
			
													Code: Select all
//GETINFO SCRIPTING
//AMAZON PICTURE IMPORT (large picture)
(*  Author: facts (jfacts1731@yahoo.com)
    Script for the importation of pictures from amazon, FindLine code taken from
    IMDB (large pic).ifs, GetToken code from SWAG archive
    For use with Ant Movie Catalog 3.4.0
    www.ant.be.tf/moviecatalog ··· www.buypin.com
*)
program AmazonImport;
var
  AmazonPage, AmazonPageNOHTML: TStringList;
  TempHold, THolder, MovieName : string;
  LineNr, I: Integer;
function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
var
  i: Integer;
begin
  Result := -1;
  if StartAt < 0 then
    StartAt := 0;
  for i := StartAt to List.Count-1 do
    if Pos(Pattern, List.GetString(i)) <> 0 then
    begin
      Result := i;
      Break;
    end;
end;
function GetToken(aString, SepChar: String; TokenNum: Integer):String;
var
   Token     : string;
   StrLen    : Integer;
   TNum      : Integer;
   TEnd      : Integer;
begin
     StrLen := Length(aString);
     TNum   := 1;
     TEnd   := StrLen;
     while ((TNum <= TokenNum) and (TEnd <> 0)) do
     begin
          TEnd := Pos(SepChar,aString);
          if TEnd <> 0 then
          begin
               Token := Copy(aString,1,TEnd-1);
               Delete(aString,1,TEnd);
               TNum := TNum + 1;
          end
          else
          begin
               Token := aString;
          end;
     end;
     if TNum >= TokenNum then
     begin
          GetToken := Token;
     end
     else
     begin
          GetToken := '';
     end;
end;
function AsinParse(Line : string): string;
begin
  Result := GetToken(GetToken(Line,'.',2),Chr(34),1);
end;
begin
  MovieName := GetField(fieldOriginalTitle);
  if Input('IMDb Import', 'Enter the title of the movie:', MovieName) = False then
    MovieName := GetField(fieldOriginalTitle);
  AmazonPage := TStringList.Create;
  AmazonPage.Text := GetPage('http://www.amazon.com/exec/obidos/search-handle-url/index=dvd&field-title=' + StringReplace(UrlEncode(MovieName),'+', '%20'));
  {* debugging stuff AmazonPageNOHTML := TStringList.Create;
  AmazonPageNOHTML.Text := AmazonPage.Text;
  TempHold := AmazonPageNOHTML.Text;
  HTMLRemoveTags(TempHold);
  AmazonPageNOHTML.Text := TempHold;
  AmazonPageNOHTML.SaveToFile('d:\rips\nohtmlized.txt');
  AmazonPage.SaveToFile('d:\rips\htmlized.txt');   *}
  if FindLine('Amazon.com: DVD:',AmazonPage,1) <> -1 then
    begin
      LineNr := FindLine('<input type="hidden" name="asin.',AmazonPage,1);
      GetPicture('http://images.amazon.com/images/P/' + AsinParse(AmazonPage.Getstring(LineNr)) + '.01.LZZZZZZZ.jpg',False);
      exit;
    end
   else
   if FindLine('DVD Search Results: we were unable to find exact matches for your search for',AmazonPage,1) <> -1 then
    begin
      exit;
    end
   else
    if (FindLine('Below are results for',AmazonPage,1) <> -1) OR (FindLine('All results',AmazonPage,1) <> -1) OR (FindLine('Most popular results for',AmazonPage,1) <> -1) then
        begin
        I := 1;
        PickTreeClear;
        PickTreeAdd('Movies','');
        while (i <= AmazonPage.Count-1) do
        begin
          THolder := AmazonPage.GetString(i);
          HTMLRemoveTags(THolder);
          if (Pos('/exec/obidos/ASIN/',AmazonPage.GetString(i)) <> 0) and (THolder <> '') and (Pos('Buy new',AmazonPage.GetString(i)) = 0) and (Pos('Used & new from',AmazonPage.GetString(i)) = 0) and (Pos('THUMBZZZ',AmazonPage.GetString(i)) = 0) then
            PickTreeAdd(THolder,GetToken(AmazonPage.GetString(i),'/',5));
          if (Pos('/exec/obidos/tg/detail/',AmazonPage.GetString(i)) <> 0) and (THolder <> '') and (Pos('Buy new',AmazonPage.GetString(i)) = 0) and (Pos('Used & new from',AmazonPage.GetString(i)) = 0) and (Pos('THUMBZZZ',AmazonPage.GetString(i)) = 0) and (Pos('http://www.amazon.com',AmazonPage.GetString(i)) = 0) and (Pos('In-store Pickup',AmazonPage.GetString(i)) = 0) then
            PickTreeAdd(THolder,GetToken(AmazonPage.GetString(i),'/',7));
          i := i + 1;
        end
        if PickTreeExec(THolder) then
        begin
          GetPicture('http://images.amazon.com/images/P/' + THolder + '.01.LZZZZZZZ.jpg',False);
          exit;
        end
        exit;
      end
    else
end.
					Last edited by facts on 2003-04-08 20:53:27, edited 1 time in total.
									
			
						
										
						- 
				WhiteRabbit
Your Script is great!   
 
But i need the Big Pics from the german Site www.amazon.de
I've tried to change your script, but i failed.
It seems to me that the index part of the search url don't work on the german site.
How can i explorer the syntax of the search url from amazon.de?
If i use the web "frontend", i can't see the syntax.
I hope someone can help me.
WhitRabbit
PS: Sorry about my evil englich but i'm only a kraut
			
			
									
						
										
						 
 But i need the Big Pics from the german Site www.amazon.de
I've tried to change your script, but i failed.
It seems to me that the index part of the search url don't work on the german site.
How can i explorer the syntax of the search url from amazon.de?
If i use the web "frontend", i can't see the syntax.
I hope someone can help me.
WhitRabbit
PS: Sorry about my evil englich but i'm only a kraut

- 
				WhiteRabbit
I got it. Pics from Amazon.de
Here it is:
			
			
									
						
										
						Here it is:
Code: Select all
//GETINFO SCRIPTING
//AMAZON PICTURE IMPORT (large picture)
(*  Author: facts (jfacts1731@yahoo.com)
    Script for the importation of pictures from amazon, FindLine code taken from
    IMDB (large pic).ifs, GetToken code from SWAG archive
    For use with Ant Movie Catalog 3.4.0
    www.ant.be.tf/moviecatalog ··· www.buypin.com
*)
program AmazonImport;
var
  AmazonPage, AmazonPageNOHTML: TStringList;
  TempHold, THolder, MovieName : string;
  LineNr, I: Integer;
function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
var
  i: Integer;
begin
  Result := -1;
  if StartAt < 0 then
    StartAt := 0;
  for i := StartAt to List.Count-1 do
    if Pos(Pattern, List.GetString(i)) <> 0 then
    begin
      Result := i;
      Break;
    end;
end;
function GetToken(aString, SepChar: String; TokenNum: Integer):String;
var
   Token     : string;
   StrLen    : Integer;
   TNum      : Integer;
   TEnd      : Integer;
begin
     StrLen := Length(aString);
     TNum   := 1;
     TEnd   := StrLen;
     while ((TNum <= TokenNum) and (TEnd <> 0)) do
     begin
          TEnd := Pos(SepChar,aString);
          if TEnd <> 0 then
          begin
               Token := Copy(aString,1,TEnd-1);
               Delete(aString,1,TEnd);
               TNum := TNum + 1;
          end
          else
          begin
               Token := aString;
          end;
     end;
     if TNum >= TokenNum then
     begin
          GetToken := Token;
     end
     else
     begin
          GetToken := '';
     end;
end;
function AsinParse(Line : string): string;
begin
  Result := GetToken(GetToken(Line,'.',2),Chr(34),1);
end;
begin
  MovieName := GetField(fieldOriginalTitle);
  if Input('IMDb Import', 'Enter the title of the movie:', MovieName) = False then
    MovieName := GetField(fieldOriginalTitle);
  AmazonPage := TStringList.Create;
  AmazonPage.Text := GetPage('http://www.amazon.de/exec/obidos/search-handle-url/index=dvd-de&field-title=' + StringReplace(UrlEncode(MovieName),'+', '%20'));
  {* debugging stuff AmazonPageNOHTML := TStringList.Create;
  AmazonPageNOHTML.Text := AmazonPage.Text;
  TempHold := AmazonPageNOHTML.Text;
  HTMLRemoveTags(TempHold);
  AmazonPageNOHTML.Text := TempHold;
  AmazonPageNOHTML.SaveToFile('d:\rips\nohtmlized.txt');
  AmazonPage.SaveToFile('d:\rips\htmlized.txt');   *}
  if FindLine('Infos zu diesem Titel',AmazonPage,1) <> -1 then
    begin
      LineNr := FindLine('<input type="hidden" name="asin.',AmazonPage,1);
      GetPicture('http://images-eu.amazon.com/images/P/' + AsinParse(AmazonPage.Getstring(LineNr)) + '.03.LZZZZZZZ.jpg',False);
      exit;
    end
   else
   if FindLine('Wir haben keine genauen Treffer für Ihre Suche für ',AmazonPage,1) <> -1 then
    begin
      exit;
    end
   else
    if (FindLine('Die besten Treffer',AmazonPage,1) <> -1) OR (FindLine('Alle Ergebnisse für',AmazonPage,1) <> -1) then
        begin
        I := 1;
        PickTreeClear;
        PickTreeAdd('Movies','');
        while (i <= AmazonPage.Count-1) do
        begin
          THolder := AmazonPage.GetString(i);
          HTMLRemoveTags(THolder);
          if (Pos('/exec/obidos/ASIN/',AmazonPage.GetString(i)) <> 0) and (THolder <> '') and (Pos('Preis: EUR',AmazonPage.GetString(i)) = 0) and (Pos('THUMBZZZ',AmazonPage.GetString(i)) = 0) then
            PickTreeAdd(THolder,GetToken(AmazonPage.GetString(i),'/',5));
          i := i + 1;
        end
        if PickTreeExec(THolder) then
        begin
          GetPicture('http://images-eu.amazon.com/images/P/' + THolder + '.03.LZZZZZZZ.jpg',False);
          exit;
        end
        exit;
      end
    else
end.
I added "
			
			
									
						
										
						Code: Select all
" tags to make it more readable, try to not forget them next time ;)