home *** CD-ROM | disk | FTP | other *** search
/ com!online 2005 May / com_0505_1.iso / opensource / top10 / amc_install.exe / {app} / Scripts / Amazon.de.ifs < prev    next >
Encoding:
Text File  |  2003-12-25  |  3.7 KB  |  119 lines

  1. // GETINFO SCRIPTING
  2. // AMAZON PICTURE IMPORT (large picture)
  3.  
  4. (*  Author: facts (jfacts1731@yahoo.com)
  5.     Script for the importation of pictures from amazon, FindLine code taken from
  6.     IMDB (large pic).ifs, GetToken code from SWAG archive
  7.     For use with Ant Movie Catalog 3.4.0
  8.     www.ant.be.tf/moviecatalog ╖╖╖ www.buypin.com
  9. *)
  10. program AmazonImport;
  11.  
  12. var
  13.   AmazonPage, AmazonPageNOHTML: TStringList;
  14.   TempHold, THolder, MovieName : string;
  15.   LineNr, I: Integer;
  16.  
  17. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
  18. var
  19.   i: Integer;
  20. begin
  21.   Result := -1;
  22.   if StartAt < 0 then
  23.     StartAt := 0;
  24.   for i := StartAt to List.Count-1 do
  25.     if Pos(Pattern, List.GetString(i)) <> 0 then
  26.     begin
  27.       Result := i;
  28.       Break;
  29.     end;
  30. end;
  31.  
  32. function GetToken(aString, SepChar: String; TokenNum: Integer):String;
  33. var
  34.    Token     : string;
  35.    StrLen    : Integer;
  36.    TNum      : Integer;
  37.    TEnd      : Integer;
  38.  
  39. begin
  40.      StrLen := Length(aString);
  41.      TNum   := 1;
  42.      TEnd   := StrLen;
  43.      while ((TNum <= TokenNum) and (TEnd <> 0)) do
  44.      begin
  45.           TEnd := Pos(SepChar,aString);
  46.           if TEnd <> 0 then
  47.           begin
  48.                Token := Copy(aString,1,TEnd-1);
  49.                Delete(aString,1,TEnd);
  50.                TNum := TNum + 1;
  51.           end
  52.           else
  53.           begin
  54.                Token := aString;
  55.           end;
  56.      end;
  57.      if TNum >= TokenNum then
  58.      begin
  59.           GetToken := Token;
  60.      end
  61.      else
  62.      begin
  63.           GetToken := '';
  64.      end;
  65. end;
  66.  
  67. function AsinParse(Line : string): string;
  68. begin
  69.   Result := GetToken(GetToken(Line,'.',2),Chr(34),1);
  70. end;
  71.  
  72. begin
  73.   MovieName := GetField(fieldOriginalTitle);
  74.   if Input('IMDb Import', 'Enter the title of the movie:', MovieName) = False then
  75.     MovieName := GetField(fieldOriginalTitle);
  76.   AmazonPage := TStringList.Create;
  77.   AmazonPage.Text := GetPage('http://www.amazon.de/exec/obidos/search-handle-url/index=dvd-de&field-title=' + StringReplace(UrlEncode(MovieName),'+', '%20'));
  78.   {* debugging stuff AmazonPageNOHTML := TStringList.Create;
  79.   AmazonPageNOHTML.Text := AmazonPage.Text;
  80.   TempHold := AmazonPageNOHTML.Text;
  81.   HTMLRemoveTags(TempHold);
  82.   AmazonPageNOHTML.Text := TempHold;
  83.   AmazonPageNOHTML.SaveToFile('d:\rips\nohtmlized.txt');
  84.   AmazonPage.SaveToFile('d:\rips\htmlized.txt');   *}
  85.   if FindLine('Infos zu diesem Titel',AmazonPage,1) <> -1 then
  86.     begin
  87.       LineNr := FindLine('<input type="hidden" name="asin.',AmazonPage,1);
  88.       GetPicture('http://images-eu.amazon.com/images/P/' + AsinParse(AmazonPage.Getstring(LineNr)) + '.03.LZZZZZZZ.jpg',False);
  89.       exit;
  90.     end
  91.    else
  92.    if FindLine('Wir haben keine genauen Treffer fⁿr Ihre Suche fⁿr ',AmazonPage,1) <> -1 then
  93.     begin
  94.       exit;
  95.     end
  96.    else
  97.     if (FindLine('Die besten Treffer',AmazonPage,1) <> -1) OR (FindLine('Alle Ergebnisse fⁿr',AmazonPage,1) <> -1) then
  98.         begin
  99.         I := 1;
  100.         PickTreeClear;
  101.         PickTreeAdd('Movies','');
  102.         while (i <= AmazonPage.Count-1) do
  103.         begin
  104.           THolder := AmazonPage.GetString(i);
  105.           HTMLRemoveTags(THolder);
  106.           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
  107.             PickTreeAdd(THolder,GetToken(AmazonPage.GetString(i),'/',5));
  108.           i := i + 1;
  109.         end
  110.         if PickTreeExec(THolder) then
  111.         begin
  112.           GetPicture('http://images-eu.amazon.com/images/P/' + THolder + '.03.LZZZZZZZ.jpg',False);
  113.           exit;
  114.         end
  115.         exit;
  116.       end
  117.     else
  118. end.
  119.