Page 1 of 2
[FR] Qui peut créer un script svp
Posted: 2003-09-01 23:43:02
by sonic
Voila, j'ai tout essayé (enfin je pense), mais j'y arrive pas.
Je dois être un idiot fini mais bon
On ne sait pas être le meilleur dans tous les domaines.
Alors je sollicite l'aide d'une âme charitable pour créer un script, si c'est possible, à partir de ce site :
http://www.image.be
Ce serait vraiment super si quelqu'un pourrait le créer
Merci d'avance
PS : Ce programme (AnteMovieCatalog) est le meilleur programme de gestion d'une DVDThèque, que j'ai pu trouver depuis des lustres.
Encore bravo à son créateur
Posted: 2003-09-02 15:39:53
by antp
Je suis en train de faire le script pour le site
Posted: 2003-09-02 17:03:47
by antp
Et voilà :
http://www.antp.be/temp/Image.be.ifs
Il y a un paramètre "LargePicture" au début du script que l'on peut mettre à True si on veut une plus grande affiche.
Posted: 2003-09-02 18:38:56
by kortex
coucou coucou je squatte ce post pour poser ma question
: quand on telecharge les carateristiques d'un film avec les images ......elles se mettent ou ces images ?
Posted: 2003-09-02 19:49:53
by antp
Si tu sauve ta base au format .amc , la plupart des scripts sauvent les images dans la base.
Si c'est au format .xml, les images sont stockées séparément (dans le même dossier que le .xml)
Si tu veux que les scripts mettent les images en tant que fichier séparé, il suffit de trouver les GetPicture(...) dans les scripts, et là y a deux paramètres, le second était False. Il suffit de mettre à la place True, et les images seront stockées en tant que fichiers externes.
L'avantage des fichiers externes c'est que le catalogue ne grossit pas trop, donc il est plus rapide à charger/sauver.
Posted: 2003-09-02 21:50:20
by sonic
Posted: 2003-09-02 22:45:34
by antp
En fait j'ai fait le script parce qu'on dirait que ce site a pas mal d'images d'assez bonne qualité, d'habitude je ne fais pas les scripts sur demande
Posted: 2003-09-03 05:19:12
by Viper
Et tu pourrais faire le script pour MovieCovers maintenant qu'il est de nouveau en service ?
La qualité des infos qu'on y trouve est assez rare sur les autres sites, et les affiches sont très bonnes.
Au passage, merci pour ce programme qui est vraiment le meilleur de tout ceux que j'ai pu tester en ce moment
Posted: 2003-09-03 07:40:01
by kortex
raaaaaaaaaaaaaaah il est bien ce antp
merkiiiii beaucoup
mais alors la question est : où ce superbe logiciel range t-il les images alors ????
Posted: 2003-09-03 11:39:02
by antp
Viper » ouais il faudra que je fasse ça, j'essaierai de le faire avant ce week-end
kortex » elles peuvent être soit stockées en tant que fichiers dans le même dossier que le catalogue, soit dans le catalogue (format .amc uniquement).
Posted: 2003-09-03 16:41:11
by Viper
antp wrote:Viper » ouais il faudra que je fasse ça, j'essaierai de le faire avant ce week-end
Ce serait super sympa, d'autant que je ne pense pas etre le seul à attendre un script pour ça
Merci beaucoup
Posted: 2003-09-05 13:42:55
by antp
Posted: 2003-09-06 05:44:39
by Viper
Un énorme merci pour le script
Reste juste le pb du "titre original" qui n'est pas récupéré, mais je vais tâcher d'ausculter le script pour voir si je n'y arrive pas moi-même
Encore merci pour ce boulot rapide
Posted: 2003-09-06 08:53:15
by antp
Je ne l'ai pas vu dans les infos sur les fiches de films, ce titre original
Posted: 2003-09-06 10:06:16
by Viper
Ben y'en a pas pour tous les films
En fait, il y a 2 pb sur ton script :
- quand titre original + titre traduit sur le site, il ne récupère que le traduit
- quand juste le titre traduit, il n'est pas recopié dans le titre original
Après une heure de suée, je viens de réussir à "corriger" çà, je me permets de copier dans ce post le script modifié que j'ai fait
=>
Posted: 2003-09-06 10:09:53
by Viper
Zut, le forum n'a pas gardé les alinéas
Je reposte car je ne peux pas éditer, toutes mes excuses pour la longueur :
Code: Select all
// GETINFO SCRIPTING
// Moviecovers (FR) import
(***************************************************
* Movie importation script for: *
* Moviecovers, http://www.moviecovers.com *
* *
* (c) 2003 Antoine Potten software@antp.be *
* *
* For use with Ant Movie Catalog 3.4.2 *
* www.antp.be/software/moviecatalog *
* *
* 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 MovieCovers;
const
LargePicture = True; // set it to True to import large picture
var
MovieName: string;
LineNr: 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;
procedure AnalyzePage(Address: string);
var
Line, Value: string;
LastLine, BeginPos, EndPos: Integer;
Page: TStringList;
begin
Line := GetPage(Address);
if Pos('il n''y a pas de film correspondant à ce(s) critère(s) dans <B>MOVIECOVERS</B>', Line) > 0 then
begin
ShowMessage('No movie found');
Exit;
end;
PickTreeClear;
BeginPos := Pos('<FONT size="+1" color="#000000"><B>', Line);
Delete(Line, 1, BeginPos - 1);
EndPos := Pos('</FONT>', Line);
Value := Copy(Line, 1, EndPos - 1);
HTMLRemoveTags(Value);
HTMLDecode(Value);
BeginPos := Pos(' <TABLE border=0 cellspacing=0 cellpadding=6 align="center" width="100%">', Line) + 1;
Delete(Line, 1, BeginPos);
EndPos := Pos(' <TABLE border=0 cellspacing=0 cellpadding=6 align="center" width="100%">', Line) + 1;
Delete(Line, EndPos, Length(Line));
Page := TStringList.Create;
Page.Text := Line;
Value := Trim(Value) + ' : ' + Trim(Page.GetString(2));
PickTreeAdd(Value, '');
for LineNr := 3 to Page.Count-1 do
begin
Line := Page.GetString(LineNr);
if Pos('<LI><A', Line) > 0 then
begin
BeginPos := Pos('/film/titre', Line);
EndPos := Pos('">', Line);
Value := 'http://www.moviecovers.com' + Copy(Line, BeginPos, EndPos - BeginPos);
HTMLRemoveTags(Line);
PickTreeAdd(Trim(Line), Value);
end;
end;
if PickTreeExec(Address) then
AnalyzeMoviePage(Address);
Page.Free;
end;
function TwoLinesAfter(Pattern: string; Page: TStringList): string;
begin
LineNr := FindLine(Pattern, Page, LineNr);
Result := Page.GetString(LineNr+2);
HTMLRemoveTags(Result);
HTMLDecode(Result);
Result := Trim(Result);
end;
procedure AnalyzeMoviePage(Address: string);
var
Line, Value: string;
BeginPos, EndPos, IntValue: Integer;
Page: TStringList;
begin
SetField(fieldURL, Address);
Page := TStringList.Create;
Page.Text := GetPage(Address);
LineNr := FindLine('<FONT color="#000000" size="+2">', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
HTMLRemoveTags(Line);
SetField(fieldTranslatedTitle, Line);
end;
SetField(fieldOriginalTitle, TwoLinesAfter('<TH align="right" valign="top">Titre original</TH>', Page));
if GetField(fieldOriginalTitle) = '' then
SetField(fieldOriginalTitle, GetField(fieldTranslatedTitle));
SetField(fieldDirector, TwoLinesAfter('<TH align="right" valign="top">Réalisateur</TH>', Page));
SetField(fieldYear, TwoLinesAfter('<TH align="right" valign="top">Année</TH>', Page));
SetField(fieldCountry, TwoLinesAfter('<TH align="right" valign="top">Nationalité</TH>', Page));
SetField(fieldCategory, TwoLinesAfter('<TH align="right" valign="top">Genre</TH>', Page));
Value := TwoLinesAfter('<TH align="right" valign="top">Durée</TH>', Page);
BeginPos := Pos('H', Value);
IntValue := (StrToInt(Copy(Value, 1, BeginPos - 1), 0) * 60) + (StrToInt(Copy(Value, BeginPos + 1, Length(Value)), 0));
SetField(fieldLength, IntToStr(IntValue));
SetField(fieldActors, TwoLinesAfter('<TH align="right" valign="top">Acteurs principaux</TH>', Page));
SetField(fieldProducer, TwoLinesAfter('<TH align="right" valign="top">Distribution</TH>', Page));
if LargePicture then
begin
LineNr := FindLine('<A href="/getjpg.html/', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
BeginPos := Pos('/getjpg.html/', Line)+13;
Value := Copy(Line, BeginPos, Length(Line));
Delete(Value, Length(Value)-1, 1);
GetPicture('http://data.moviecovers.com/DATA/zipcache/' + Value, False);
end;
end
else
begin
LineNr := FindLine('hspace=20 vspace=4 src="http://www.moviecovers.com/DATA/thumbs', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
BeginPos := Pos('http://', Line);
EndPos := Pos('"></A>', Line);
Value := Copy(Line, BeginPos, EndPos - BeginPos);
GetPicture(Value, False);
end;
end;
Page.Free;
DisplayResults;
end;
begin
if CheckVersion(3,4,2) then
begin
MovieName := GetField(fieldTranslatedTitle);
if MovieName = '' then
MovieName := GetField(fieldOriginalTitle);
if Input('MovieCovers import', 'Entrez le titre du film :', MovieName) then
begin
AnalyzePage('http://www.moviecovers.com/multicrit.html?titre=' + UrlEncode(MovieName) + '&slow=1&listes=1');
end;
end else
ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.4.2)');
end.
//begin
// MovieName := GetField(fieldOriginalTitle);
// if MovieName = '' then
// MovieName := GetField(fieldTranslatedTitle);
//end.
Voilà, c'est mieux
Posted: 2003-09-06 10:56:30
by antp
J'ai édité le post précédent pour virer le script mal indenté ; tu devrais t'enregistrer sur le forum comme ça tu pourrais éditer tes messages
Posted: 2003-09-06 11:45:07
by Jelude
Merci pour ce script.
Il reste un petit problème au niveau de la récupération de la "LargePicture" car en fait le site se sert de la référence "IDMC" qui est en majuscule pour afficher l'image et non du titre original. J'ai chaque fois une erreur de page actuellement.
Posted: 2003-09-06 12:40:09
by antp
non, ça n'a rien à voir.
En fait on dirait que seules les affiches demandées récemment sont dans le dossier dans lequel on va les chercher. Du coup il faudrait que le script télécharge aussi la page getjpg.html, je suppose que ça force la création de l'affiche.
Posted: 2003-09-06 13:20:43
by Viper
Ayé je suis enregistré
J'ai vu ça moi aussi pour les larges photos
Effectivement, tant que la page n'a pas été affichée, il n'est pas possible d'importer la photo
Tu sais ce qu'il faut faire antp ?