Page 1 of 2

Script d'importation pour le site www.cinefil.com

Posted: 2003-05-21 23:55:09
by Danone-KiD
Voilà j'ai vu sur le forum que des personnes voulaient un script pour ce site, et moi-même cela m'intéressait beaucoup.
Je ne suis pas du tout expert dans le language Pascal donc mon code ne doit pas être très accadémique. Je me suis inspiré de mes lointain souvenirs et des script déjà présents.
N'hésitez pas à le corriger !!!

Un grand merci bien sûr à Antp pour ce superbe logiciel qui m'a éviter de longues heures de prog.

Voici donc le script (désolé pour la longueur).


Code: Select all

// GETINFO SCRIPTING
// Cinefil (FR) import avec grande Image

(***************************************************
 *  Script d'importation de film pour :            *
 *  Cinéfil.com , http://www.cinefil.com           *
 *                                                 *
 *  (c) 2003 Danone-KiD                            *
 *                                                 *
 *  A utiliser avec Ant Movie Catalog 3.4.2        *
 *  www.ant.be.tf/moviecatalog                     *
 *                                                 *
 ***************************************************)

program cinefil;
var
  MovieName: string;

procedure AnalyzePage(Address: string);
var
  Page: TStringList;
  LineNr: Integer;
  Line,page_film,titre_film, realisateur_film, annee_film: string;
  BeginPos, EndPos: Integer;
  begin
  //vide la liste des films
  PickTreeClear;
  //charge la page
  Line := GetPage(Address);
  //teste si il y a des films trouvés
  BeginPos := Pos('Aucun film trouvé', Line);
  if BeginPos <> 0 then
  begin
    showmessage('Aucun film trouvé !');
    exit;
  end;
  //teste si il n'y a pas qu'un seul film
  BeginPos := Pos('FILMS TROUVÉS', Line);
  if BeginPos = 0 then
  begin
     AnalysePageFilm(Address);
     exit;
  end;
  //supprime tout le code avant la liste des films
  BeginPos := Pos('<B>ANNÉE</B>', Line);
  Delete(Line, 1, BeginPos-1);
  repeat
  //cherche le lien de la page du film
  BeginPos := Pos('HREF=''FicheFilm.cfm?ref=',Line);
  Delete(Line, 1, BeginPos+5);
  EndPos := Pos(' ',Line);
  page_film := 'http://www.cinefil.com/newsiteweb/' + Copy(Line, 1, EndPos-2 );
  //cherche le nom du film
  BeginPos := Pos('TITLE=''Fiche Film Cinéfil''>',Line);
  Delete(Line, 1, BeginPos+26);
  EndPos := Pos('</a>',Line)-1;
  titre_film := Copy(Line, 1, EndPos );
  HTMLdecode(titre_film);
  HTMLremovetags(titre_film);
  titre_film := StringReplace(titre_film, #13#10, '');
  titre_film := StringReplace(titre_film, '   ', '');
  titre_film := Trim(titre_film);
  titre_film := AnsiLowerCase(titre_film);
  titre_film := AnsiUpFirstLetter(titre_film);
  //cherche le réalisateur
  BeginPos := Pos('size=2>',Line);
  Delete(Line, 1, BeginPos+6);
  EndPos := Pos('</TD><TD',Line)-1;
  realisateur_film := Copy(Line, 1, EndPos );
  HTMLdecode(realisateur_film);
  HTMLremovetags(realisateur_film);
  realisateur_film := StringReplace(realisateur_film, #13#10, '');
  realisateur_film := StringReplace(realisateur_film, '   ', '');
  realisateur_film := Trim(realisateur_film);
  realisateur_film := AnsiLowerCase(realisateur_film);
  realisateur_film := AnsiUpFirstLetter(realisateur_film);
  //cherche l'année
  BeginPos := Pos('size=2>',Line);
  Delete(Line, 1, BeginPos+6);
  EndPos := Pos('</TD>',Line)-1;
  annee_film := Copy(Line, 1, EndPos );
  HTMLdecode(annee_film);
  HTMLremovetags(annee_film);
  annee_film := StringReplace(annee_film, #13#10, '');
  annee_film := StringReplace(annee_film, '   ', '');
  annee_film := Trim(annee_film);
  //ajoute les films
    PickTreeAdd(titre_film + ' (' + realisateur_film + '), '+ annee_film , page_film);
  //cherche le lien de la page du film
    BeginPos := Pos('HREF=''FicheFilm.cfm?ref=',Line);
  until BeginPos = 0;
  begin
    if PickTreeExec(Address)=true then
    AnalysePageFilm(Address);
  end;
end;
//------------------------------------------------------------------------------
// ANALYSE DE LA PAGE DU FILM
//------------------------------------------------------------------------------
procedure AnalysePageFilm(Address: string);
var
  Line,page_film,titre_film,titre_original, categorie_film, realisateur_film, annee_film: string;
  pays_film, duree_film, acteurs_film, liste_acteurs, description_film, reference_film,fichier_image:string;
  BeginPos, EndPos: Integer;
begin
  //charge la page
  Line := GetPage(Address);
  //cherche le nom du film
  BeginPos := Pos('CLASS=titrefilm>', Line);
  Delete(Line, 1, BeginPos+15);
  EndPos := Pos('</FONT>',Line)-1;
  titre_film := Copy(Line, 1, EndPos );
  HTMLdecode(titre_film);
  titre_film := StringReplace(titre_film, #13#10, '');
  titre_film := StringReplace(titre_film, '   ', '');
  titre_film := Trim(titre_film);
  titre_film := AnsiLowerCase(titre_film);
  titre_film := AnsiMixedCase(titre_film, ' ');
  titre_film := AnsiMixedCase(titre_film, '-');
  //cherche le titre original
  BeginPos := Pos('Titre Original : "', Line);
  Delete(Line, 1, BeginPos+17);
  EndPos := Pos('"</FONT>',Line)-1;
  titre_original := Copy(Line, 1, EndPos );
  HTMLdecode(titre_original);
  titre_original := StringReplace(titre_original, #13#10, '');
  titre_original := StringReplace(titre_original, '   ', '');
  titre_original := Trim(titre_original);
  titre_original := AnsiLowerCase(titre_original);
  titre_original := AnsiMixedCase(titre_original, ' ');
  titre_original := AnsiMixedCase(titre_original, '-');
  //cherche la catégorie
  BeginPos := Pos('class=autrefilm> -', Line);
  Delete(Line, 1, BeginPos+17);
  EndPos := Pos('</font>',Line)-1;
  categorie_film := Copy(Line, 1, EndPos );
  HTMLdecode(categorie_film);
  categorie_film := StringReplace(categorie_film, #13#10, '');
  categorie_film := StringReplace(categorie_film, '   ', '');
  categorie_film := Trim(categorie_film);
  categorie_film := AnsiLowerCase(categorie_film);
  categorie_film := AnsiMixedCase(categorie_film, ' ');
  categorie_film := AnsiMixedCase(categorie_film, '-');
  //cherche le pays
  BeginPos := Pos('BORDER=1>', Line);
  Delete(Line, 1, BeginPos+8);
  EndPos := Pos('</font>',Line)-1;
  pays_film := Copy(Line, 1, EndPos );
  HTMLdecode(pays_film);
  pays_film := StringReplace(pays_film, #13#10, '');
  pays_film := StringReplace(pays_film, '   ', '');
  pays_film := Trim(pays_film);
  HTMLremovetags(pays_film);
  pays_film := AnsiLowerCase(pays_film);
  pays_film := AnsiMixedCase(pays_film, ' ');
  pays_film := AnsiMixedCase(pays_film, '-');
  //cherche l'année
  BeginPos := Pos('class=autrefilm> -', Line);
  Delete(Line, 1, BeginPos+17);
  EndPos := Pos('</font>',Line)-1;
  annee_film := Copy(Line, 1, EndPos );
  HTMLdecode(annee_film);
  annee_film := StringReplace(annee_film, #13#10, '');
  annee_film := StringReplace(annee_film, '   ', '');
  annee_film := Trim(annee_film);
  //cherche la durée
  BeginPos := Pos('class=autrefilm> -', Line);
  Delete(Line, 1, BeginPos+17);
  EndPos := Pos('</font>',Line)-1;
  duree_film := Copy(Line, 1, EndPos );
  HTMLdecode(duree_film);
  duree_film := StringReplace(duree_film, #13#10, '');
  duree_film := StringReplace(duree_film, '   ', '');
  duree_film := StringReplace(duree_film, 'H', '');
  duree_film := Trim(duree_film);
  duree_film := IntToStr( (StrToInt(copy(duree_film,1,1),0) * 60)+ (StrToInt(copy(duree_film,2,2),0)));
  
  //chargement des jaquettes
    //on teste si il y a un grang format
      BeginPos := Pos('<A HREF="AfficheGF.cfm?ref=', Line);
    if BeginPos <> 0 then
      begin
        Delete(Line, 1, BeginPos+26);
        EndPos := Pos('" target="_blank" TITLE="ZOOM">',Line)-1;
        fichier_image := 'http://www.cinefil.com/ImagesCinefil/AfficheGrandFormat/a' + Copy(Line, 1, EndPos )+'.jpeg';
        GetPicture(fichier_image, false);
      end;
    if BeginPos = 0 then
        begin
        //sinon on teste si il y a un petit format
        BeginPos := Pos('AffichePetitFormat/', Line);
        if BeginPos <> 0 then
          Begin
            Delete(Line,1, BeginPos +18);
            EndPos := Pos(' border=1 ALIGN=left hspace=10 >',Line)-1;
            fichier_image := 'http://www.cinefil.com/ImagesCinefil/AffichePetitFormat/' + Copy(Line, 1, EndPos );
            GetPicture(fichier_image, false);
          end;
         end;
  //cherche le réalisateur
  BeginPos := Pos('TITLE=''Fiche Personnalité Cinéfil''><b>', Line);
  Delete(Line, 1, BeginPos+37);
  EndPos := Pos('</b></A>',Line)-1;
  realisateur_film := Copy(Line, 1, EndPos );
  HTMLdecode(realisateur_film);
  realisateur_film := StringReplace(realisateur_film, #13#10, '');
  realisateur_film := StringReplace(realisateur_film, '   ', '');
  realisateur_film := Trim(realisateur_film);
  realisateur_film := AnsiLowerCase(realisateur_film);
  realisateur_film := AnsiMixedCase(realisateur_film, ' ');
  realisateur_film := AnsiMixedCase(realisateur_film, '-');
  repeat
  //cherche les acteurs
  BeginPos := Pos('TITLE=''Fiche Personnalité Cinéfil''><b>', Line);
  Delete(Line, 1, BeginPos+37);
  EndPos := Pos('</b></A>',Line)-1;
  acteurs_film := Copy(Line, 1, EndPos );
  HTMLdecode(acteurs_film);
  acteurs_film := StringReplace(acteurs_film, #13#10, '');
  acteurs_film := StringReplace(acteurs_film, '   ', '');
  acteurs_film := Trim(acteurs_film);
  acteurs_film := AnsiLowerCase(acteurs_film);
  acteurs_film := AnsiMixedCase(acteurs_film, ' ');
  acteurs_film := AnsiMixedCase(acteurs_film, '-');
  BeginPos := Pos('TITLE=''Fiche Personnalité Cinéfil''><b>', Line);
  if BeginPos = 0 then liste_acteurs := liste_acteurs + acteurs_film;
  if BeginPos <> 0 then liste_acteurs := liste_acteurs + acteurs_film + ', ';
  until BeginPos = 0;
  //cherche la description
  BeginPos := Pos('CLEAR="all"><font>', Line);
  Delete(Line, 1, BeginPos+17);
  EndPos := Pos('</font>',Line)-1;
  description_film := Copy(Line, 1, EndPos );
  HTMLdecode(description_film);
  description_film := StringReplace(description_film, #13#10, '');
  description_film := StringReplace(description_film, '   ', '');
  //charge les résultats dans la fenêtre
  SetField( fieldTranslatedTitle,titre_film);
  SetField( fieldOriginalTitle,titre_original);
  if titre_original = '' then
  begin
  SetField( fieldOriginalTitle,titre_film);
  end;
  SetField( fieldCategory,categorie_film );
  SetField( fieldDirector,realisateur_film);
  SetField( fieldYear,annee_film);
  SetField( fieldCountry,pays_film);
  SetField( fieldLength,duree_film);
  SetField( fieldActors,liste_acteurs);
  SetField( fieldDescription,description_film);
  SetField( fieldURL,address);
  DisplayResults;

end;


begin
  if CheckVersion(3,4,0) then
  begin
    MovieName := GetField(fieldOriginalTitle);
    if MovieName = '' then
      MovieName := GetField(fieldTranslatedTitle);
    if Input('cinefile.com Import avec image', 'Entrez le titre du film :', MovieName) then
    begin
      //remplace les caractères accentués
      MovieName:= AnsiLowerCase(MovieName);
      MovieName:= StringReplace(MovieName, 'é', 'e');
      MovieName:= StringReplace(MovieName, 'è', 'e');
      MovieName:= StringReplace(MovieName, 'à', 'a');
      MovieName:= StringReplace(MovieName, 'ç', 'c');
      MovieName:= StringReplace(MovieName, 'ù', 'u');
      MovieName := 'http://www.cinefil.com/newsiteweb/ListeFilms.cfm?titre='+ UrlEncode(MovieName);
      AnalyzePage(MovieName);
    end;
  end else
    ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.4.0)');
end.
@+ :wink:

Posted: 2003-05-22 13:50:57
by antp
Merci, je vais inclure le script dans la prochaine mise à jour ;)

Mise à jour de la V4

Posted: 2009-01-17 14:36:29
by Dedej
Modification du script pour le rendre à nouveau fonctionel. :lol:

A récupérer ici

Pour récupérer sur le FTP utiliser IE car Firefox ne passe pas ou alors il faut le plug-in "FTP".

:p Bon catalog

Posted: 2009-01-17 20:55:35
by antp
merci ;)

Correction

Posted: 2009-02-12 10:39:07
by Dedej
Il y avait un bug sur l'import image petit format :ha: , c'est corrigé.

A récupérer par Internet explorer ici ftp://dedejftp.no-ip.org/

Bon catalog ;)

[REL][FR] Légère correction du script Cinefil.com

Posted: 2009-04-21 22:32:03
by Dedej
Le script renvoyait une erreur de page c'est corrigé et après quelques essais tout à l'air correct. :/
Si vous trouvez des erreurs n'hésitez pas à le signaler.

C'est toujours copier le fichier dans le répertoire Cinefil en ouvrant l'adresse par Internet Explorer et collé le dans votre répertoire script d'AMC ou attendez que antp le mette dans ses mises à jours.

Bon catalog :grinking:

Posted: 2009-04-22 08:02:24
by antp
Merci, c'est mis à jour ;)

[REL][FR] mise à jour

Posted: 2009-10-09 13:35:49
by Dedej
Mise à jour du script suite à modification du site :hum:

A récupérer ici http://joel.desseaux.free.fr/ :grinking:

A essayer et me signaler les erreurs rencontrées.

Merci :lol:

Bon catalog :hihi:

Posted: 2009-10-12 17:07:10
by antp
Je n'arrive pas à m'y connecter, déjà l'autre jour, et là tj pas, que ce soit avec un navigateur web ou un vrai client ftp.

Vérif

Posted: 2009-10-14 08:07:18
by Dedej
Ok ça à l'air bon maintenant j'ai des accès sur mon site.

Posted: 2009-10-14 11:59:34
by antp
Merci ;)

Mise à jour

Posted: 2010-01-28 07:30:31
by Dedej
Mise à jour du script version 4.6 qui ne fonctionnait plus :cry:

A essayer et me signaler les erreurs rencontrées. :/
Il y a une version pour Movie Cat 4.0.6 aussi

A récupérer ici http://joel.desseaux.free.fr/


Merci

Bon catalog :grinking:

Posted: 2010-01-28 16:21:28
by antp
merci ;)

[REL][FR] mise à jour

Posted: 2010-02-16 15:42:06
by Dedej
Quelques infos n'étaient plus récupérées , corrections faites après essais ça à l'air Ok me dire s'il y a encore des problèmes.

A récupérer au même endroit http://joel.desseaux.free.fr/

Il y a aussi la version Movie Cat 4.0.6.

Bon catalog :grinking:

Posted: 2010-02-16 20:10:29
by antp
Merci ;)

[FR] Mise à jour avec 4.0.0

Posted: 2012-03-09 15:08:38
by Dedej
Mise à jour pour prise en compte des champs personnalisés pour lui aussi.

Sélection pour les champs, Bande annonce et avis CSA, suivant les options.

A récupérer ici ou par "update script" dès que Antp l'aura pris en compte. :lol:

Bon catalog. :grinking:

[FR] Mise à jour

Posted: 2012-07-14 16:40:15
by Dedej
Correction des champs modifiables en champs personnalisés.

Il faut apppeler un chat, un chat miaou :lol:

Correction pour récupération du titre.

A récupérer ici ou par "update script" dès que Antp l'aura pris en compte. :hihi:

Bon catalog. :grinking:

Posted: 2012-07-16 12:04:05
by antp
merci ;)

Mise à jour script [FR]

Posted: 2013-01-24 23:52:00
by Dedej
Quelques mises à jour d'info qui n'étaient plus récupérées.

A récupérer ici ou par "update script" dès que Antp l'aura pris en compte. ;)

Bon catalog. :grinking:

Mise à jour [FR]

Posted: 2013-08-23 13:26:28
by Dedej
Reprise du script après modification du site.
Je n'avais pas utilisé Ant Movie Catalog depuis un moment.
Le site semble moins intéressant qu'avant surtout pour l'image du moins qui était l'atout principal pendant pas mal de temps mais bon on fait avec. :/

Prise en compte de la version 4.2 pour la classification l'on avait pas déjà un champs perso ou si l'on veut changer.
Par contre je n'ai pas pris en compte l'ajout des images en extra je verrai cela un peu plus tard car ce week-end je n'aurai pas le temps.
Ce sera peut être le futur atout du site après tout car il y a pas mal d'images pour chaque film et acteurs mais les dossiers vont gonfler en fonction dans ce cas mais les passionnés ne s'arrêteront certainement pas à ça :lol:

A récupérer automatiquement en lançant le script avec l'option mise à jour ou ici ou par "update script" dès que Antp l'aura pris en compte.

Bon catalog :grinking: