script pour edonkey-divx.com
Posted: 2003-01-16 09:06:45
Voilà, j'ai réalisé un script pour edonkey-divx.com
Il récupère :
- une image
- le titre
- le réalisateur
- l'année
- les acteurs
- la description
Il ne recherche pas seulement dans les divx mais aussi dans les jeux, les musiques etc ... Apparemment il y a un problème dans la fonction recherche de edonkey-divx. Ce n'est pas de ma faute ;-)
Voilà, si vous trouvez des bugs n'hésitez pas à me le faire savoir. (du genre si uniquement la description est remplie et pas le reste alors que sur la page tout est bien indiqué)
edonkey-divx.com (FR) (pic).ifs
Il récupère :
- une image
- le titre
- le réalisateur
- l'année
- les acteurs
- la description
Il ne recherche pas seulement dans les divx mais aussi dans les jeux, les musiques etc ... Apparemment il y a un problème dans la fonction recherche de edonkey-divx. Ce n'est pas de ma faute ;-)
Voilà, si vous trouvez des bugs n'hésitez pas à me le faire savoir. (du genre si uniquement la description est remplie et pas le reste alors que sur la page tout est bien indiqué)
edonkey-divx.com (FR) (pic).ifs
Code: Select all
// GETINFO SCRIPTING
// edonkey-divx.com import with picture
(**************************************************
* Movie importation script for: *
* http://www.edonkey-divx.com *
* *
* (c) 2003 Jim Ownser *
* owns@ifrance.com *
* *
* For use with Ant Movie Catalog 3.4.1 *
* *
* www.ant.be.tf/moviecatalog ··· www.buypin.com *
* *
* The source code of the script can be used in *
* another program only if full credits to *
* script author and a link to Ant Movie Catalog *
* website are given in the About box or in *
* the documentation of the program *
***************************************************)
program edonkeydivx;
var
MovieName: string; // nom du film à rechercher
// get a copy of the string from position "from" to position "to" included
function copyFromTo(theString : String; fromPos : integer; toPos : integer) : String;
begin
result := copy(theString,fromPos,toPos-fromPos+1);
end;
// copy from "fromString" to "toString". It includes "fromString" and "toString" if "exclude" is false
// if fromString is '', copy from the beginning of the string
// if toString is '', copy up to the end of the string
function copySubString(theString : String; fromString : String; toString : String; exclude : boolean;caseSensitive : boolean) : String;
var
fromPos,toPos : integer;
tmp : String;
begin
result := '';
tmp := theString;
if (caseSensitive = false) then
begin
fromString := AnsiLowerCase(fromString);
toString := AnsiLowerCase(toString);
tmp := AnsiLowerCase(tmp);
end;
if (fromString <> '') then
fromPos := Pos(fromString, tmp)
else
fromPos := 1;
if (fromPos > 0) then
begin
delete(tmp, 1,fromPos-1);
if (toString <> '') then
toPos := pos(toString,tmp)+fromPos-1
else
toPos := length(tmp)+fromPos;
if (toPos > 0) then
begin
if exclude then
result := copyFromTo(theString,fromPos+length(fromString),toPos-1)
else
result := copyFromTo(theString,fromPos,toPos+length(toString)-1);
end;
end;
end;
procedure debug(str : String);
begin
input('debug','debug message', str);
end;
function isAbsoluteURL(url : String): boolean;
begin
result := (pos('http://',url) = 1);
end;
procedure AnalyseMoviePage(PageContents : String);
var
title : String;
img : String;
descJustifiee : String;
description : String;
directeur : String;
annee : String;
acteurs : String;
posDesc : integer;
i : integer;
begin
// <td class="TitreObjets">Midnight Express</td>
title := copySubString(PageContents,'<td class="TitreObjets">','</td>',false,true);
HTMLRemoveTags(title);
HTMLDecode(title);
SetField(fieldTranslatedTitle, title);
SetField(fieldOriginalTitle, title);
delete(PageContents,1,Pos('<td class="TitreObjets">',pageContents)-1);
// <img src="main_data/B00004VXW1.jpg" width="150">
img := copySubString(PageContents,'<img src="','" width=',true,true);
if (isAbsoluteURL(img)) then
GetPicture(img,false)
else
GetPicture('http://www.edonkey-divx.com/' + img, False);
// <td class="DescJustifiee" valign="top">de Alan Parker (1978)<br>Avec Brad Davis, Randy Quaid, Bo Hopkins Plus, ...<br><br>Alan Parker met en scène sans complaisa ... </td>
descJustifiee := copySubString(PageContents,'<td class="DescJustifiee" valign="top">','</td>',true,true);
if (pos('de ',descJustifiee) = 1) or (pos('De ',descJustifiee) = 1) or
(pos('Réalisé par ',descJustifiee) = 1) or (pos('réalisé par ',descJustifiee) = 1) then
begin
// directeur et année
if (pos('de ',descJustifiee) = 1) or (pos('De ',descJustifiee) = 1) then
directeur := copySubString(descJustifiee,'de ','<br>',true,false)
else
if (pos('Réalisé par ',descJustifiee) = 1) or (pos('réalisé par ',descJustifiee) = 1) then
directeur := copySubString(descJustifiee,'réalisé par ','<br>',true,false);
annee := copySubString(directeur,'(',')',true,true);
SetField(fieldYear, annee);
if (annee <> '') then
directeur := copySubString(directeur,'','(',true,true);
SetField(fieldDirector, directeur);
delete(descJustifiee,1,pos('<br>',descJustifiee)+3);
// acteurs
acteurs := copySubString(descJustifiee,'avec ','<br>',true,false); // avec or Avec
SetField(fieldActors, acteurs);
delete(descJustifiee,1,pos('<br>',descJustifiee)+3);
delete(descJustifiee,1,pos('<br>',descJustifiee)+3);
// description
description := descJustifiee;
description := StringReplace(description,#13#10,'');
HTMLRemoveTags(description);
HTMLDecode(description);
SetField(fieldDescription, description);
end
else
begin
HTMLRemoveTags(descJustifiee);
HTMLDecode(descJustifiee);
SetField(fieldDescription, descJustifiee);
end;
end;
// returns true if movie has been found
// add movies to picktree
function AnalyzeSearchPage(PageContents : String) : boolean;
var
Page: TStringList;
MovieTitle: string;
BeginPos : Integer;
UrlPage : String;
begin
BeginPos := Pos('sultat de la recherche', PageContents);
if BeginPos > 0 then
begin
Delete(PageContents, 1, BeginPos);
PickTreeClear;
BeginPos := pos('<tr>', PageContents);
while (BeginPos > 0) do
begin
Delete(PageContents, 1, BeginPos+3);
MovieTitle := copy(PageContents, 1, pos('</tr>', PageContents)-1); // ex : <td class="ArriereListeTitre"><a href="javascript:chargementPage('../objets.php?objetsId=3789');">Aretha Franklin - Greatest hits (1980-1994)</a></td>
UrlPage := 'http://www.edonkey-divx.com' + copyFromTo(MovieTitle,pos('/objets.php',MovieTitle),pos(''');"',MovieTitle)-1);
HTMLRemoveTags(MovieTitle);
HTMLDecode(MovieTitle);
PickTreeAdd(MovieTitle, UrlPage);
BeginPos := pos('<tr>', PageContents);
end;
result := true;
end
else
result := false;
end;
// search the given movie
procedure Search(movie : String);
var
PageContents : String;
UrlPage : String;
begin
PageContents := GetPage('http://www.edonkey-divx.com/recherche.php?objetsType=DIVX&btnconnexion=Recherche&texte='+URLEncode(movie));
if (AnalyzeSearchPage(PageContents)) then
begin
if PickTreeExec(UrlPage) then
begin
PageContents := GetPage(UrlPage);
SetField(fieldURL, UrlPage);
AnalyseMoviePage(PageContents);
DisplayResults;
end;
end;
end;
begin
if CheckVersion(3,4,1) then
begin
MovieName := GetField(fieldOriginalTitle);
if MovieName = '' then
MovieName := GetField(fieldTranslatedTitle);
if Input('edonkey-divx.com Import', 'Entrez le titre du film :', MovieName) then
begin
Search(MovieName);
end;
end else
ShowMessage('Ce script requiert la version 3.4.1 ou supérieure de Ant Movie Catalog.');
end.