[FR] Qui peut créer un script svp

If you made a script you can offer it to the others here, or ask help to improve it. You can also report here bugs & problems with existing scripts.
sonic
Posts: 10
Joined: 2003-05-28 20:40:26

[FR] Qui peut créer un script svp

Post by sonic »

Voila, j'ai tout essayé (enfin je pense), mais j'y arrive pas.
Je dois être un idiot fini mais bon :hihi: 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
antp
Site Admin
Posts: 9629
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

Je suis en train de faire le script pour le site ;)
antp
Site Admin
Posts: 9629
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

Et voilà :
http://www.antp.be/temp/Image.be.ifs
:cool:

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.
kortex
Posts: 25
Joined: 2003-08-07 18:51:02
Location: dans ma roue, au fond de ma cage .....

Post by kortex »

coucou coucou je squatte ce post pour poser ma question :D : quand on telecharge les carateristiques d'un film avec les images ......elles se mettent ou ces images ? :hum:
antp
Site Admin
Posts: 9629
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post 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.
sonic
Posts: 10
Joined: 2003-05-28 20:40:26

Post by sonic »

Je savais que tu étais un génie, personne ne saurrait en douter, mais avoir une réponse aussi rapide, alors là, je suis sur le cul.

Merci, merci, merci, merci

:grinking: :grinking: :grinking: :grinking: :grinking: :grinking: :grinking: :grinking: :grinking: :grinking: :grinking:
antp
Site Admin
Posts: 9629
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post 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 ;)
Viper

Post 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 ;)
kortex
Posts: 25
Joined: 2003-08-07 18:51:02
Location: dans ma roue, au fond de ma cage .....

Post by kortex »

raaaaaaaaaaaaaaah il est bien ce antp :hihi:

merkiiiii beaucoup :grinking:

mais alors la question est : où ce superbe logiciel range t-il les images alors ???? :hum: :D
antp
Site Admin
Posts: 9629
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post 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).
Viper

Post 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 ;)
antp
Site Admin
Posts: 9629
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

Voilà le script pour Moviecovers :
http://www.antp.be/temp/Moviecovers%20(FR).ifs
Viper

Post by Viper »

Un énorme merci pour le script :grinking:

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 ;)
antp
Site Admin
Posts: 9629
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

Je ne l'ai pas vu dans les infos sur les fiches de films, ce titre original
Viper

Post 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 ;) =>
Viper

Post 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 ;)
antp
Site Admin
Posts: 9629
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post 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 ;)
Jelude

Post 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.
antp
Site Admin
Posts: 9629
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post 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.
Viper
Posts: 4
Joined: 2003-09-06 10:13:27

Post 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 ?
Post Reply