J'ai modifié un script pour amazon.fr pour récupérer des informations à partir d'un code EAN
Code: Select all
program Amazon_FR;
uses
ScorEpioNCommonScript;
const
VersionScript = '1 du 20/01/2013';
urlDomain = 'amazon.fr';
NomScript = 'AMAZON2.FR';
AmazonUrl = 'http://www.amazon.fr/exec/obidos/ASIN/';
AmazonSearch = 'http://www.amazon.fr/exec/obidos/search-handle-url/index=dvd-fr&field-keywords=';
timetosleep = 500;
var
MovieName, Address : string;
i, premiereExecution: Integer;
listeResultat: TStringList;
//------------------------------------------------------------------------------
// RECUPERE LES RESULTATS AMAZON.FR
//------------------------------------------------------------------------------
procedure imageAmazon(title : String);
var
adresseRecherche, Line : String;
StartPos: Integer;
begin
PickTreeClear;
adresseRecherche := AmazonSearch+UrlEncode(title);
Line := GetPage(adresseRecherche);
if (pos('result_0', Line) > 0) then
begin
StartPos := pos('result_0', Line);
delete(Line, 1, StartPos+47);
delete(Line, 11, 1000000);
recupInfo(AmazonUrl+Line);
end else
begin
showmessage('EAN non trouvé');
end;
//recupInfo('http://www.amazon.fr/Inception-Blu-ray-Leonardo-DiCaprio/dp/B003WJREA0/ref=sr_1_1?s=dvd&ie=UTF8&qid=1358672797&sr=1-1');
end;
//------------------------------------------------------------------------------
// RECUPERE LES INFOS
//------------------------------------------------------------------------------
procedure recupInfo(Adresse : String);
var
Value, Value2, Line, Line2: String;
StartPos: Integer;
begin
Line := GetPage(Adresse);
StartPos := pos('class="productImageGrid"', Line);
delete(Line, 1, StartPos-1);
Line2 := Line;
// Jaquette DVD
if CanSetPicture then
GetPicture(recupImage(Line));
// Titre Traduit
if CanSetField(fieldTranslatedTitle) then
begin
Value := formatTitre(findInfo('<span id="btAsinTitle">', '</span>', Line,'0'),GetOption('Casse Choisie'));
MonSetField(fieldTranslatedTitle, Value);
end;
// Acteurs
if CanSetField(fieldActors) then
MonSetField(fieldActors, formatTitre(findInfo('<b>Acteurs :</b>', '</li>', Line,'0'),GetOption('Casse Choisie')));
// Réalisateur
if CanSetField(fieldDirector) then
MonSetField(fieldDirector, formatTitre(findInfo('<b>Réalisateurs :</b>', '</li>', Line,'0'),GetOption('Casse Choisie')));
// Date de parution
if CanSetField(fieldYear) then
begin
Value := findInfo('<b>Date de sortie du DVD :</b>', '</li>', Line,'0');
MonSetField(fieldYear, copy(Value,length(Value)-4,length(Value)));
end;
// Editeur
if CanSetField(fieldProducer) then
MonSetField(fieldProducer, findInfo('<b>Studio :</b>', '</li>', Line,'0'));
// Langue
if CanSetField(fieldLanguages) then
MonSetField(fieldLanguages, findInfo('<b>Langue :</b>', '</li>', Line,'0'));
// Sous-titre
if CanSetField(fieldSubtitles) then
MonSetField(fieldSubtitles, findInfo('<b>Sous-titres :</b>', '</li>', Line,'0'));
// Nombre de Disques
if CanSetField(fieldDisks) then
MonSetField(fieldDisks, findInfo('<b>Nombre de disques :</b>', '</li>', Line,'0'));
// Durée
if CanSetField(fieldLength) then
MonSetField(fieldLength, findInfo('<b>Durée :</b> ', 'minutes', Line,'0'));
if CanSetField(fieldMediaType) then
MonSetField(fieldMediaType, findInfo('<span class="byLinePipe">Format :</span>', '<br />', Line,'0'));
// Synopsis
if CanSetField(fieldDescription) then
begin
Value := findInfo('<div class="productDescriptionWrapper" >', '<div class="emptyClear">', Line, '4');
MonSetField(fieldDescription, DecodeUTF(Value));
end;
// Adresse Web
if CanSetField(fieldURL) then
SetField(fieldURL, Adresse);
// Affichage des titres si original et traduit identique
titreDouble(GetOption('Titre en double'));
end;
//------------------------------------------------------------------------------
// RECUPERE L'ADRESSE DE L'IMAGE
//------------------------------------------------------------------------------
function recupImage(Line : String) : String;
var
ImageAddress : String;
StartPos: Integer;
begin
StartPos := pos('http://ecx.images-amazon.com/images/I/', Line);
delete(Line, 1, StartPos-1);
ImageAddress := copy(Line, 0, pos('"', Line) - 1);
ImageAddress := StringReplace(ImageAddress, 'THUMBZZZ', 'LZZZZZZZ');
result := ImageAddress;
end;
//------------------------------------------------------------------------------
// RECUPERE LE TITRE
//------------------------------------------------------------------------------
function recupTitle(Line : String) : String;
var
title : String;
StartPos: Integer;
begin
StartPos := pos('<b>', Line);
delete(Line, 1, StartPos-1);
title := copy(Line, 1, pos('</b></a>', Line)-1);
HTMLRemoveTags(title);
title := StringReplace(title, #13#10, '');
result := title;
end;
//------------------------------------------------------------------------------
// SUPPRIME LES ACCENTS
//------------------------------------------------------------------------------
function supprimeAccents(NomFilm : String) : String;
begin
NomFilm := supprimeLesAccents(NomFilm);
delete(NomFilm, pos(' - ',NomFilm), length(NomFilm));
if (pos(', ',NomFilm) > 0) then
delete(NomFilm, 1, pos(', ',NomFilm)+1);
if (pos('(',NomFilm) > 0) then
delete(NomFilm, pos('(',NomFilm), length(NomFilm));
if (pos(':',NomFilm) > 0) then
delete(NomFilm, pos(':',NomFilm), length(NomFilm));
result := trim(NomFilm);
end;
Function DecodeUTF(Description : String) : String;
var
Value2 : string;
begin
Value2 := StringReplace2(Description, 'à','à', false, true);
Value2 := StringReplace2(Value2, 'ç','ç', false, true);
Value2 := StringReplace2(Value2, 'è','è', false, true);
Value2 := StringReplace2(Value2, 'é','é', false, true);
Value2 := StringReplace2(Value2, 'ê','ê', false, true);
Value2 := StringReplace2(Value2, RC, '', false, true);
result := trim(Value2);
end;
//------------------------------------------------------------------------------
// PROGRAMME PRINCIPAL
//------------------------------------------------------------------------------
begin
if CheckVersion(3,5,0) then
begin
if Input(NomScript+' by ScorEpioN', 'Entrez le code-barre (EAN) du DVD :', MovieName) then
begin
imageAmazon(MovieName);
//if MovieName <> '' then
// recupInfo(MovieName)
//else
// exit;
end;
end else
ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
end.