Depuis que j'avais fait le script pour BDland je l'utilisais régulièrement. Malheureusement BDland semble être mort, j'ai donc cherché et trouvé un autre site proposant une Base de donnée sur les BD pour remplacer
A utiliser de la même manière que mon précedent script avec la langue qui va bien pour avoir les bons intiltulés.
Au passage, merci à mistervince pour avoir adapté le fichier langage spécial BD à la nouvelle version de ant movie.
Code: Select all
(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=Rincevent
Title=adbd.aff.bdnet.com.ifs
Description=Script permetant de récupere les infos sur des BD
Site=http://adbd.aff.bdnet.com/
Language=Français
Version=
Requires=3.5.0
Comments=
License=
GetInfo=0
[Options]
***************************************************)
// GETINFO SCRIPTING
// BD land (BD FR) import with picture
(***************************************************
* Movie importation script for: *
* adbd.aff.bdnet.com, http://adbd.aff.bdnet.com/ *
* *
* (c) 2005 Rincevent *
* *
* For use with Ant Movie Catalog 3.5.0 *
* 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 adbd_aff_bdnet;
var
BDName: string;
function DelFirstBlank(line: string): string;
begin
while ( (pos(' ', line) = 1)
or (pos(#09, line) = 1)
or (pos(#13, line) = 1)
or (pos(#10, line) = 1) ) do
Delete(line, 1, 1);
result := line;
end;
function DelCRC(line: string): string;
begin
while (pos(#13, line) > 0 ) do
line := StringReplace(line,#13, '');
while (pos(#10, line) > 0 ) do
line := StringReplace(line,#10, '');
result := line;
end;
function Add_album_on_list(Address: string;Compteur: Integer): Integer;
var
Page: TStringList;
LineNr: Integer;
BDTitle,Value,Url,Tmp: string;
Line: string;
BeginPos, EndPos: Integer;
begin
Line := GetPage(Address);
if Pos('[BDnet.com]', Line) > 0 then
begin
// Recherche le premier album trouvé
BeginPos := pos('>Titre : </FONT>', Line);
//Liste chaque album trouvé
while (BeginPos > 0) do
begin
Delete(Line, 1, BeginPos);
BeginPos := pos('</FONT>', Line);
Delete(Line, 1, BeginPos+6);
Value := copy(Line, 1, pos('</FONT>', Line) - 1);
// Parse pour avoir le titre
BDTitle := Value;
HTMLRemoveTags(BDTitle);
HTMLDecode(BDTitle);
//On va voir si on trouve un nom de serie/n° de tome
BeginPos := Pos('>Série : </FONT>', Line);
if (BeginPos > 0) then
begin
delete(Line,1,BeginPos);
delete(Line,1,Pos('<A ',Line)-1);
Tmp := copy(Line, 1, pos('</A>',Line)-1);
HTMLRemoveTags(Tmp);
Tmp := DelFirstBlank(Tmp);
Tmp := DelCRC(Tmp);
BDTitle := '[' + tmp + '] ' + BDTitle;
end;
// Parse pour avoir l'url
Url := Value;
Delete(Url, 1, pos('<A HREF="', Url) + 9);
Url := copy(Url, 1, pos('"', Url) -1);
// Ajout de la ligne dans l'interface
PickTreeAdd(BDTitle, 'http://adbd.aff.bdnet.com/' + Url);
BeginPos := pos('>Titre : </FONT>', Line);
end;
// Cherche s'il y a une page suivante
BeginPos := pos('<IMG SRC="/z/bdnet/images/suivante.gif"', Line);
if (BeginPos > 0) then
begin
BeginPos := pos('> pages trouvées:<BR>', Line);
Delete(Line, 1, BeginPos);
BeginPos := pos('</A> ]<BR>', Line);
Delete(Line, 1, BeginPos-1);
// On est au debut du lien vers la page precedente/suivante
//On saute le lien precedent s'il exist.
BeginPos := pos('<IMG SRC="/z/bdnet/images/precedente.gif', Line);
Delete(Line, 1, BeginPos-1);
//On se positionne au debut de l'url vers suivant.
BeginPos := pos('/recherche.htm', Line);
Delete(Line, 1, BeginPos-1);
Value := copy(Line, 1, pos('">', Line) - 1);
if (Compteur > 5) then
begin
PickTreeMoreLink('http://adbd.aff.bdnet.com/' + Value);
PickTreeAdd('Plus', 'http://adbd.aff.bdnet.com/' + Value);
end else
// Recurence on ajoute la prochaine page à la liste
Add_album_on_list('http://adbd.aff.bdnet.com/' + Value,Compteur+1);
end;
result := 1;
end else
result := 0;
end;
procedure AnalyzePage(Address: string);
var
Res: Integer;
begin
// Init liste BD
PickTreeClear;
Res := Add_album_on_list(Address,1);
if ( Res >0) then
begin
//Affiche fenetre de selection
if PickTreeExec(Address) then
begin
if (pos('alb.htm', Address) >0) then
begin
// On a selectionner une BD
AnalyzeBDPage(Address);
end else
// On a selectioner page suvante.
AnalyzePage(Address);
end
end;
end;
procedure AnalyzeBDPage(Address:string);
var
Line, Value,PageContents: string;
LineNr, BeginPos, EndPos: Integer;
Page: TStringList;
begin
PageContents := GetPage(Address);
// url
SetField(fieldURL, Address);
// Titre
BeginPos := Pos('<A HREF="/">Bdnet</A>', PageContents);
delete(PageContents,1,BeginPos - 1);
BeginPos := Pos('<FONT', PageContents);
delete(PageContents,1,BeginPos - 1);
Value := copy(PageContents, 1, pos('</FONT>',PageContents)-1);
HTMLRemoveTags(Value);
HTMLDecode(Value);
//On va voir si on trouve un n° de tome
BeginPos := Pos('<B>Série: ', PageContents);
delete(PageContents,1,BeginPos - 1);
Line := copy(PageContents, 1, pos('</B>',PageContents)-1);
BeginPos := Pos('tome', Line);
if (BeginPos > 0) then
begin
delete(Line,1,BeginPos +4);
HTMLRemoveTags(Line);
Line := DelFirstBlank(Line);
Value := 'T' + Line + ': ' + Value;
end;
SetField(fieldOriginalTitle, Value);
//Images
BeginPos := Pos('<img src="/zi/bdweb/images/' , PageContents);
if (BeginPos > 0) then
begin
delete(PageContents,1,BeginPos - 1);
delete(PageContents,1, pos('"',PageContents));
Value := Copy(PageContents, 1, pos('"',PageContents) -1 );
GetPicture('http://adbd.aff.bdnet.com/' + Value);
end;
//Date édition
BeginPos := Pos('Ajouter au panier', PageContents);
delete(PageContents,1,BeginPos - 1);
BeginPos := Pos('Paru en:', PageContents);
delete(PageContents,1,BeginPos - 1);
Value := Copy(PageContents, pos('20',PageContents), 4);
SetField(fieldYear, Value);
//Série
BeginPos := Pos('<B>Série: </B>', PageContents);
delete(PageContents,1,BeginPos - 1);
delete(PageContents,1, pos('</B>',PageContents) +3);
Value := Copy(PageContents, 1, pos('</A>',PageContents) -1 );
HTMLRemoveTags(Value);
HTMLDecode(Value);
Value := DelFirstBlank(Value);
Value := StringReplace(Value,' ', '');
SetField(fieldSource, Value);
//Dessinateur
BeginPos := Pos('<B>Dessinateur:</B>', PageContents);
delete(PageContents,1,BeginPos - 1);
delete(PageContents,1, pos('</B>',PageContents) +3);
Value := Copy(PageContents, 1, pos('</A>',PageContents) -1 );
HTMLRemoveTags(Value);
HTMLDecode(Value);
Value := DelFirstBlank(Value);
SetField(fieldProducer, Value);
SetField(fieldActors, Value);
//Scénariste
BeginPos := Pos('<B>Scénariste:</B>', PageContents);
delete(PageContents,1,BeginPos - 1);
delete(PageContents,1, pos('</B>',PageContents) +3);
Value := Copy(PageContents, 1, pos('</A>',PageContents) -1 );
HTMLRemoveTags(Value);
HTMLDecode(Value);
Value := DelFirstBlank(Value);
SetField(fieldDirector, Value);
Value := GetField(fieldActors) + #13+#10 + Value;
SetField(fieldActors, Value);
//Genre
BeginPos := Pos('<B>Genre:</B>', PageContents);
delete(PageContents,1,BeginPos - 1);
delete(PageContents,1, pos('</B>',PageContents) +3);
Value := Copy(PageContents, 1, pos('</A>',PageContents) -1 );
HTMLRemoveTags(Value);
HTMLDecode(Value);
Value := DelFirstBlank(Value);
SetField(fieldCategory, Value);
//Editeur
BeginPos := Pos('<B>Editeur:</B>', PageContents);
delete(PageContents,1,BeginPos - 1);
delete(PageContents,1, pos('</B>',PageContents) +3);
Value := Copy(PageContents, 1, pos('</A>',PageContents) -1 );
HTMLRemoveTags(Value);
HTMLDecode(Value);
Value := DelFirstBlank(Value);
SetField(fieldCountry, Value);
//Présentation
BeginPos := Pos('<B>Public conseillé:</B>', PageContents);
delete(PageContents,1,BeginPos - 1);
BeginPos := Pos('<BR>', PageContents);
delete(PageContents,1,BeginPos - 1);
Value := Copy(PageContents, 1, pos('</FONT>',PageContents) -1 );
HTMLRemoveTags(Value);
HTMLDecode(Value);
Value := DelFirstBlank(Value);
SetField(fieldMediaType, Value);
//Résumé
BeginPos := Pos('>Commentaires:</FONT>' , PageContents);
if (BeginPos>0) then
begin
delete(PageContents,1,BeginPos);
delete(PageContents,1, pos('<BR>',PageContents) -1);
delete(PageContents,1, pos('</FONT>',PageContents)+6);
Value := Copy(PageContents, 1, pos('</FONT>',PageContents) -1 );
HTMLRemoveTags(Value);
HTMLDecode(Value);
SetField(fieldDescription, Value);
end;
end;
////////////////////////////////////////
// Main
////////////////////////////////////////
begin
if CheckVersion(3,5,0) then
begin
BDName := GetField(fieldOriginalTitle);
// Supprime le n° de tome.
delete(BDName,1, pos(':',BDName));
BDName := DelFirstBlank(BDName);
if BDName = '' then
BDName := GetField(fieldTranslatedTitle);
if Input('adbd.aff.bdnet.com Import', 'Entrez le titre de la BD/Série :', BDName) then
begin
AnalyzePage('http://adbd.aff.bdnet.com/recherche.htm?type=tout&recherche='+UrlEncode(BDName));
end;
end else
ShowMessage('Ce script requiert la version 3.5.0 ou supérieure de Ant Movie Catalog.');
end.
Rincevent.