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

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.
Danone-KiD

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

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

Post by antp »

Merci, je vais inclure le script dans la prochaine mise à jour ;)
Dedej
Posts: 161
Joined: 2007-03-25 16:30:07
Location: Toulon

Mise à jour de la V4

Post 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
Last edited by Dedej on 2009-02-05 19:10:49, edited 1 time in total.
antp
Site Admin
Posts: 9629
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

merci ;)
Dedej
Posts: 161
Joined: 2007-03-25 16:30:07
Location: Toulon

Correction

Post 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 ;)
Dedej
Posts: 161
Joined: 2007-03-25 16:30:07
Location: Toulon

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

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

Post by antp »

Merci, c'est mis à jour ;)
Dedej
Posts: 161
Joined: 2007-03-25 16:30:07
Location: Toulon

[REL][FR] mise à jour

Post 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:
Last edited by Dedej on 2009-12-24 13:56:21, edited 1 time in total.
antp
Site Admin
Posts: 9629
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post 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.
Dedej
Posts: 161
Joined: 2007-03-25 16:30:07
Location: Toulon

Vérif

Post by Dedej »

Ok ça à l'air bon maintenant j'ai des accès sur mon site.
antp
Site Admin
Posts: 9629
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

Merci ;)
Dedej
Posts: 161
Joined: 2007-03-25 16:30:07
Location: Toulon

Mise à jour

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

Post by antp »

merci ;)
Dedej
Posts: 161
Joined: 2007-03-25 16:30:07
Location: Toulon

[REL][FR] mise à jour

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

Post by antp »

Merci ;)
Dedej
Posts: 161
Joined: 2007-03-25 16:30:07
Location: Toulon

[FR] Mise à jour avec 4.0.0

Post 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:
Dedej
Posts: 161
Joined: 2007-03-25 16:30:07
Location: Toulon

[FR] Mise à jour

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

Post by antp »

merci ;)
Dedej
Posts: 161
Joined: 2007-03-25 16:30:07
Location: Toulon

Mise à jour script [FR]

Post 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:
Dedej
Posts: 161
Joined: 2007-03-25 16:30:07
Location: Toulon

Mise à jour [FR]

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