Page 2 of 12

Posted: 2006-11-23 09:04:55
by antp
draco31.fr wrote: PS: Et £$µ%ù !!!! (mot très grossier !), le forum modifie automatiquement les "&...".
Bah oui justement, c'est pour ça que tu vois un gros point :D

Posted: 2006-11-23 17:16:03
by draco31.fr
Bah c'est dommage parce que ça le modifie automatiquement alors que c'est entre des balise 'CODE' :ha:

N'oublie pas de mettre à jour le script sur ton FTP (si c'est pas déjà fait).

Pour ce qui est des infos DVD/Livres/BOF, Cinemotions utilise en fait les infos d'Amazon.fr, donc je ne vois pas l'interet d'implémenter la récup de ces données : il suffit de lancer le script Amazon ;)

N'hesitez pas à me faire part de vos remarques concernant l'ajout de telle option, ou la présence de tel ou tel bug. :grinking:
Et merci à tout ceux qui utilisent mon script :hihi:

Posted: 2006-11-23 19:04:36
by antp
draco31.fr wrote:Bah c'est dommage parce que ça le modifie automatiquement alors que c'est entre des balise 'CODE' :ha:
Les scripts russes risqueraient d'avoir des problèmes alors je pense, vu que ce forum est défini comme utilisant le jeu de caractères ouest-européen.
draco31.fr wrote: N'oublie pas de mettre à jour le script sur ton FTP (si c'est pas déjà fait).
Je viens de le faire ;)

Posted: 2006-11-23 23:20:46
by draco31.fr
euh Antoine ... j'ai besoin d'aide !

Avec mon script, le dernier en date, je ne récupère pas toujours le titre traduit...
Le problème vient du fait que entre le fichier source HTML que je visualise avec Firefox, et celui que récupère AMC il manque des infos (notament le titre).
J'ai pu le voir sur City Hall notament.

Le titre est normalement entre les balises :

Code: Select all

<A HREF="/modules/Films/fiche/8966/City-Hall.html" class="titre_film">
et

Code: Select all

</A>
(J'utilise "class="titre_film">" comme 'morceau' de balise)

As-tu une idée d'où peut venir cette différence dans le source ?
(je précise que cela ne le fait que pour certaines fiches de films)
Et surtout comment la contourner ?

Posted: 2006-11-23 23:56:31
by antp
Avec Firefox j'ai pas le titre non plus sur cette page :??:
Sinon pour avoir la page telle qu'AMC la reçoit, il faut changer l'user-agent de Firefox (ça se fait facilement avec l'extension suivante : https://addons.mozilla.org/firefox/59/) et mettre ceci:

Code: Select all

Mozilla/5.0 (compatible; Ant Movie Catalog using Indy Library)
(on peut passer d'un user agent à l'autre facilement avec cette extension)
L'autre possibilité c'est un problème de referer, mais on peut voir si c'est de là que vient le problème en copiant-collant l'URL du film dans une nouvelle fenêtre.

Correction

Posted: 2007-01-11 10:31:12
by bbullot
J'ai modifie le script pour qu'il marche en utilisant le moteur de cinemotions et non pas cinemoteur comme initialement. Si vous constatez des bugs n'hesitez pas a me contacter.

Code: Select all

(***************************************************

Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/

[Infos]
Authors=Draco31.fr, bbullot
Title=CinEmotions
Description=Recherche et Données CinEmotions
Site=http://www.cinemotions.com/
Language=FR
Version=0.8 du 11/01/2007
Requires=3.5
Comments=Ce script nécessite le fichier ScorEpioNCommonScript.pas|.==.| :   ' ( ( ( ( /\ |  "==()))))):     © ScorEpioN ©|       ( ( ( ( \_/
License=This program is free software; you can redistribute it and/or modify it under the  terms of the GNU General Public License as published by the Free Software Foundation;  either version 2 of the License, or (at your option) any later version. |
GetInfo=1

[Options]
Type de Lancement=0|0|0=Demande le titre avant de lancer le script|1=Ne demande pas le titre avant de lancer le script|2=Lancement automatique sur l'adresse web
Format du Titre=3|3|0=Titre en minuscule|1=Titre en majuscule|2=Première lettre du titre en majuscule|3=Première lettre de chaque mot du titre en majuscule|4=Formatage identique au site d'origine
Recherche sur le titre=1|0|0=Traduit|1=Original
Affiche=1|0|0=Prend la petite affiche|1=Prend la grande affiche
Liste des Acteurs=1|0|0=Courte|1=Longue
Note=2|2|0=Note de CinEmotions|1=Note des membres|2=Note moyenne
Liste des notes=1|0|0=Pas de détail des notes|1=Liste des notes (CinEmotions, Membres) dans le champ commentaire
Critiques=0|1|0=Oui|1=Non

***************************************************)

program CinEmotions;
uses
  ScorEpioNCommonScript;

const
  VersionScript = '0.7 du 22/11/2006';
  NomScript = 'CinEmotions';
  urlDomain = 'http://www.cinemotions.com';
  urlCESearch = 'http://www.cinemotions.com/cinema-tv-dvd/film-serie-acteur-actrice-realisateur/';
  pathCESearch = '/cinema-tv-dvd/film-serie-acteur-actrice-realisateur/';
  urlCESearchGo = '1.html';
  timetosleep = 500;

var
  MovieName, Titre, urlTitre, Resume, APage, CPage, Comments : string;
  CxNote, compteur, premiereExecution, numTemp, lien_URL, Critique : Integer;
  NoteC, NoteM, Note, NumPage: real;
  listeResultat : TStringList;


//--OK--------------------------------------------------------------------------
// ANALYSE RESULTAT DE RECHERCHE
//------------------------------------------------------------------------------

procedure AnalyzeSearchPage(urlSearch: string);
var
  Line, PageNo, temp : string;
  nbchoix : integer;
begin
  Line := GetPage(urlSearch);
  PickTreeClear;
 // Controle le nb de résultat dans la liste
  nbchoix := 0;
  urlTitre := '';
  Titre := '';
  // Supprime le haut de la page
  Delete(Line,1,Pos('<font class=smallwhite><b>Résultats sur titres et artistes</b></font>',Line));
  // Prend le numéro de la page en cours
  temp := Copy(urlSearch,Pos('.html',urlSearch)-1,1);
  NumPage := StrToFloat(temp);
 // Test si existe page suivante
  if ( Pos(pathCESearch,Line) > 0 ) Then
  PageNo := ' (Page N°'+temp+')'
  else
  begin
    if (NumPage = 1) Then
    PageNo := ''
    else
    PageNo := ' (Dernière Page)';
  end
  PickTreeAdd('Résultat trouvé pour : '+MovieName+PageNo,'');
  // Ne garde que le tableau de résultats
  Delete(Line,1,Pos('<TABLE border=0 width=100% cellspacing=0 cellpadding=0>',Line));
  // Condition pour fin de la liste de résultats
  While (Pos('<table width=100% border=0 cellspacing=0 cellpadding=1>',Line) > 1) do
  begin
    // Supprime jusqu'à la prochaine ligne du tableau
    Delete(Line,1,Pos('<table width=100% border=0 cellspacing=0 cellpadding=1>',Line));
    // Récupère titre et url
    TraiteInfo(Line);
    PickTreeAdd(Titre,urlTitre);
    nbchoix := nbchoix+1;
  end
  // Supprime jusqu'à la fin de la page
  Delete(Line,1,Pos('<font class=link6>Pages de résultats:</font>',Line));
  // Supprime jusqu'à la prochaine page
  Delete(Line,1,Pos('<font class=link6>',Line));
  // Sauve l'url de la page suivante si possible
  if ( Pos(pathCESearch,Line) > 0 ) Then
  begin
    urlTitre := urlDomain + MonFindInfo('<A HREF="','" class=link10>',Line,0);
    PickTreeMoreLink(urlTitre);
  end
 // Verifie qu'un titre est trouvé
  if nbchoix = 0 Then
  ShowInformation('Aucun titre correspondant à "'+MovieName+'" !'+#13#10+'Relancez le script en donnant un autre mot clé !');
  if ( NumPage > 1) Then
  PickTreeAdd('Page Précédente',Copy(urlSearch,1,Pos('.html',urlSearch)-2)+FloatToStr(NumPage-1)+'.html')
  else
  begin
    if (nbchoix = 1) Then
    begin
      AnalyzeMoviePage(urlTitre);
      nbchoix := 0;
    end
  end
   // Affiche la liste de choix puis verifie qu'il y a une selection
  if (nbchoix <> 0) Then
  begin
    if (PickTreeExec(urlTitre)) then
    begin
     // Si choisie, lance la recherche sur la page suivante
      if (pos(urlCESearch,urlTitre) > 0) Then
      begin
        nbchoix := 0;
        AnalyzeSearchPage(urlTitre);
      end
      else
     // Analyse la page du film selectionné
      AnalyzeMoviePage(urlTitre);
    end
  end
end;


//--OK--------------------------------------------------------------------------
// TRAITE L'INFO : SEPARE L'URL DU TITRE
//------------------------------------------------------------------------------

procedure TraiteInfo(infos: string);
var
  temp1, temp2 : string;
begin
  urlTitre := '';
  Titre := '';
  urlTitre := MonFindInfo('<A HREF="','" onMouseOver="window.status=',infos,0);
  temp1 := MonFindInfo('onMouseOver="window.status=''','''; return true;"',infos,0);
  temp2 := MonFindInfo('<font class=link4dtext>','</font>',infos,0);
  Titre := temp1+' ('+temp2+')';
  Titre := StringReplace(Titre,'\','');
end;


//------------------------------------------------------------------------------
// ANALYSE LA PAGE DU FILM
//------------------------------------------------------------------------------

procedure AnalyzeMoviePage(url : string);
var
  t1, t2, t3, min, heure, annee, temp, Line, pays, le_type, duree, prod : string;
  i, j : Real;
begin
  temp := '';
  Comments := '';
  Line := GetPage(url);
// Supprimme les parties inutiles
  Delete(Line,1,Pos('<TABLE width=100% border=0 cellspacing=0 cellpadding=0 bgcolor="#3C60F0">',Line));

//--OK--------------------------------------------------------------------------
// Stoque l'url
  Setfield(fieldURL,url);

//--OK--------------------------------------------------------------------------
// Stoque l'image si necessaire
  if CanSetPicture then
  begin
    temp := MonFindInfo('/affiches/1.html"><IMG SRC="','" border=0',Line,0);
    if GetOption('Affiche') = 0 Then
    GetPicture(temp)
    else
    begin
     temp := StringReplace(temp,'/h200/','/');
     GetPicture(temp);
    end
  temp := '';
  end

//--OK--------------------------------------------------------------------------
// Prend le titre traduit
  SetField(fieldTranslatedTitle,FormatTitre(Trim(MonFindInfo('class="titre_film">','</A>',Line,0)),GetOption('Format du Titre')));

//--OK--------------------------------------------------------------------------
// Recherche et Prend le titre original
  if (Pos('<H1 style="color: #333333; font-size:14px">',Line) > 0) Then
  SetField(fieldOriginalTitle,FormatTitre(Trim(MonFindInfo('<H1 style="color: #333333; font-size:14px">','</H1>',Line,0)),GetOption('Format du Titre')))
  else
  SetField(fieldOriginalTitle,'');

// Récupère Année + Pays + Genre + Durée
  temp := MonFindInfo('<!-- ANNEE -->','</font>',Line,0);
//  temp := StringReplace(temp,'  ','');
  temp := StringReplace(temp,#13#10,'');
  temp := StringReplace(temp,Copy(temp,1,1),'');

//--OK--------------------------------------------------------------------------
// Prend l'année
  Annee := Copy(temp,1,4);
  SetField(fieldYear,Annee);

//--OK--------------------------------------------------------------------------
// Prend le pays
  pays := MonFindInfo('- ','- ',temp,0);
  temp := Copy(temp,Pos(pays,temp)+length(pays),length(temp));
  pays := AnsiLowerCase(pays);
  pays := StringReplace(pays, 'états-unis', 'USA');
  pays := StringReplace(pays, 'etats-unis', 'USA');
  pays := StringReplace(pays, 'hong kong', 'Hong-Kong');
  pays := StringReplace(pays,' / ',', ');
  pays := StringReplace(pays,'/',', ');
  pays := transformCountry(pays);
  SetField(fieldCountry,pays);


//--OK--------------------------------------------------------------------------
// Prend le genre
  le_type := MonFindInfo('- ','- ',temp,0);
  le_type := StringReplace(le_type,'/',', ');
  SetField(fieldCategory,le_type);
  temp := Copy(temp,Pos(le_type,temp)+length(le_type),length(temp));
  
//--OK--------------------------------------------------------------------------
// Prend la durée
  duree := Copy(temp,Pos('- ',temp)+2,length(temp));
  duree := StringReplace(duree,' ','');
  duree := StringReplace(duree,#13#10,'');
  if Pos('h',duree) > 0 Then
  begin
    heure := Copy(duree,1,Pos('h',duree)-1);
    min := Copy(duree,Pos('h',duree)+1,length(duree));
    i := StrToFloat(heure);
    j := StrToFloat(min);
    Setfield(fieldLength,FloatToStr(i*60+j));
  end
  else
  begin
    duree := StringReplace(duree,'mn','');
    duree := StringReplace(duree,'min','');
    if Pos('x',duree) > 0 Then
    begin
      heure := Copy(duree,1,Pos('x',duree)-1);
      min := Copy(duree,Pos('x',duree)+1,length(duree)-2);
      i := StrToFloat(heure);
      j := StrToFloat(min);
      SetField(fieldLength,FloatToStr(j));
      if i <> 0 Then
      begin
        Comments := 'Format : '+heure+' épisode(s) de '+min+' minutes';
        SetField(fieldComments,Comments);
      end
    end
    else
    begin
      Setfield(fieldLength,duree);
    end;
  end;


//--OK--------------------------------------------------------------------------
// Prend la compagnie
  temp := MonFindInfo('Sociétés de production','</table>',Line,1);
  Prod := '';
  While (Pos('<font class=link6>',Temp) > 0) do
  begin
    Prod := Prod+', '+MonFindInfo('<font class=link6>','</font>',temp,0);
    Delete(temp,1,Pos('</font>',temp));
  end
  Setfield(fieldProducer,Copy(Prod,3,length(Prod)));

//--OK--------------------------------------------------------------------------
// Prend les notes
  CxNote := GetOption('Note');
  Note := -1;
 // Stoque chaque note
  temp := '';
  temp := MonFindInfo('<font class=smallblue>CinEmotions:</font>','<FORM name=jenote',Line,1);
 // Note CinEmotion
  t1 := MonFindInfo('ALT="','">',temp,0);
  if (t1 = 'Pas encore noté') Then
  NoteC := -1
  else
  NoteC := StrToFloat(MonFindInfo('Moyenne : ','(',t1,0));
 // Note Membre
  Delete(temp,1,Pos('<font class=smallblue> Membres:</font>',temp));
  t2 := MonFindInfo('ALT="','">',temp,0);
  if (t2 = 'Pas encore noté') Then
  NoteM := -1
  else
  NoteM := StrToFloat(MonFindInfo('Moyenne : ','(',t2,0));
// Donne le détail des notes dans le champ commentaire
  if GetOption('Liste des notes') = 1 Then
  begin
    if Comments <> '' Then
    Comments := Comments+#13#10#13#10;
    if NoteC <> -1 Then
    Comments := Comments+StringReplace(t1,'Moyenne','Note CinEmotions')+#13#10;
    if NoteM <> -1 Then
    Comments := Comments+StringReplace(t2,'Moyenne','Note Membres')+#13#10;
    Comments := Comments+#13#10;
    NoHTML(Comments);
    SetField(fieldComments,Comments);
  end

 // Rempli le champ Note suivant l'option selectionnée
 // Reteste tant qu'une note n'est pas choisie
  While CxNote <> -1 Do
  begin
    if ((NoteC = -1) and (NoteM = -1)) Then
    CxNote := -1
    else
    begin
     // Moyenne NoteC + NoteM
      if (CxNote = 2) Then
      begin
       // Test si les 2 notes existent
        if ((NoteC <> -1) and (NoteM <> -1)) Then
        begin
          Note := (NoteC+NoteM)/2;
          CxNote := -1;
        end
        else
        begin
         // Si que la note CinEmotions, la prend par défaut
          if (NoteC > NoteM) Then
          begin
            Note := NoteC;
            CxNote := -1;
          end
          else
          begin
           // Test si la note Membre existe et la prend par défaut
            if (NoteM <> -1) Then
            begin
              Note := NoteM;
              CxNote := -1;
            end
            else
           // Si pas de Note CinEmotions ou Membre : pas de note
            CxNote := -1;
          end
        end
      end
      else
      begin
     // Si Note CinEmotion voulue
        if CxNote = 0 Then
        begin
          if NoteC <> -1 Then
          Note := NoteC;
          CxNote := -1;
        end
        else
        begin
       // Si Note Membres voulue
          if CxNote = 1 Then
          begin
            if NoteM <> -1 Then
            Note := NoteM;
            CxNote := -1;
          end
        end
      end
    end
  end
  if Note <> -1 Then
 // NB: La Note du site est sur 20 !
  SetField(fieldRating,FloatToStr(Note/2));


//--OK--------------------------------------------------------------------------
// Prend les réalisateurs
  temp := '';
  t1 := '';
  temp := MonFindInfo('Réalisation :','</font>',Line,0);
  While Pos('<A HREF=',temp) > 0 Do
  begin
    t1 := t1+', '+MonFindInfo('class=link10>','</A>',temp,0);
    Delete(temp,1,Pos('</A>',temp));
  end
  SetField(fieldDirector,Copy(t1,3,length(t1)));


//--OK--------------------------------------------------------------------------
// Prend le synopsis
  temp := '';
  temp := MonFindInfo('<h2 style="color: #000080; font-size=13" >&#149; L''histoire','</font>',Line,1);
  temp := MonFindInfo('<font class=link6>','</font>',temp,0);
  NoHTML(temp);
  Setfield(fieldDescription,temp);

//--OK--------------------------------------------------------------------------
// Prend la liste des acteurs
  temp := '';
  t1 := '';
  t2 := '';
  t3 := '';
  if GetOption('Liste des Acteurs') = 1 Then
  begin
    t3 := StringReplace(url,urlDomain,'');
    t3 := StringReplace(t3,'.html','/artistique.html');
    if Pos (t3,Line) > 0 Then
    begin
      if CanSetField(fieldActors) Then
      begin
        APage := GetPage(urlDomain+t3);
        temp := MonfindInfo('<TABLE width="90%">','</TABLE>',APage,0);
        While Pos('<A HREF=',temp) > 0 do
        begin
         // Prend le nom de l'acteur
          t1 := t1+', '+MonFindInfo('onMouseOut="window.status=''''">','</A>',temp,0);
          Delete(temp,1,Pos('</A>',temp));
         // Prend son rôle si il existe
          if ((Pos('<font face="verdana,geneva,arial" size=2>',temp) < Pos('</TR>',temp)) And (Pos('<font face="verdana,geneva,arial" size=2>',temp) <> 0)) Then
          t1 := t1+' ('+MonFindInfo('<font face="verdana,geneva,arial" size=2>','</font>',temp,0)+')';
         // Supprimme les données de cet acteur dans temp
          Delete(temp,1,Pos('</TR>',temp));
        end
        t1 := Copy(t1,3,length(t1));
      end
    end
  end
  else
  begin
    Delete(Line,1,Pos('Réalisation :',Line));
    t1 := MonFindInfo('Avec ','</font>',Line,1);
{    While Pos('<A HREF=',temp) > 0 do
    begin
      t1 := t1+', '+MonFindInfo('<h2 class=link5>','</h2></A>',temp,0);
      t2 := MonFindInfo('(',')',temp,0);
      t1 := t1+' ('+t2+')';
      Delete(temp,1,Pos(t2+')',temp));
    end }
    HTMLDecode(t1);
    HTMLRemoveTags(t1);
    t1 := StringReplace(t1,'Avec ','');
    t1 := StringReplace(t1,#13,'');
    t1 := StringReplace(t1,#10,'');
    t1 := StringReplace(t1,#09,'');
  end
  NoHTML(t1);
  SetField(fieldActors,t1);
  

//--OK--------------------------------------------------------------------------
// Prend les critiques si il y en a
  if (GetOption('Critiques') = 0) and CanSetField(fieldComments) Then
  begin
    temp := '';
    t1 := '';
    t2 := '';
    t3 := '';
    t3 := StringReplace(url,urlDomain,'');
    t3 := StringReplace(t3,'.html','/critiques.html');
    if Pos (t3,Line) > 0 Then
    begin
      CPage := GetPage(urlDomain+t3);
      temp := MonFindInfo('<img src=/img/writingicon.gif border="0" align=absmiddle>','<TD width=124 align=center>',CPage,0);
      if Pos('<h1 style="color: #000000; font-size:16px">A Notre Avis ...</h1>',temp) > 0 Then
      begin
        t1 := t1+'Critique CinEmotions :'+#13#10+#13#10;
        Delete(temp,1,Pos('<TABLE width=100% cellspacing=0 cellpadding=0 border=0>',temp));
        t2 := MonFindInfo('class=journal_link2>','</A>',temp,0);
        t1 := t1+'"'+t2+'"'+' par '+MonFindInfo('<font class=link5d><b>','</b></font>',temp,0)+#13#10;
        t2 := '';
        t1 := t1+MonFindInfo('<font class=link6>','</font>',temp,0)+#13#10+#13#10;
        Delete(temp,1,Pos('</TABLE>',temp));
//        Delete(temp,1,Pos('</TABLE>',temp));
      end
      if Pos('<h1 style="color: #000000; font-size:16px">A Votre Avis ...</h1>',temp) > 0 Then
      begin
        t1 := t1+#13#10+'Critique(s) Spectateur(s):'+#13#10+#13#10;
        Delete(temp,1,Pos('<h1 style="color: #000000; font-size:16px">A Votre Avis ...</h1>',temp));
        While Pos('<TABLE width=100% cellspacing=0 cellpadding=0 border=0>',temp) > 0 Do
        begin
          if (Pos('<font class=journal_link2>',temp) < Pos('<IMG SRC="/img/line.gif" border=0>',temp)) and (Pos('<font class=journal_link2>',temp) <> 0) Then
            t2 := '"'+MonFindInfo('<font class=journal_link2>','</font>',temp,0)+'" '
          else
          // begin
            // if (Pos('<font class=link6>',temp) < Pos('class=journal_link2>',temp)) and (Pos('<font class=link6>',temp) <> 0) then
              // t2 := ''
            // else
               t2 := '"'+MonFindInfo('class=link10><b>','</b>',temp,0)+'" ';
          // end
          t1 := t1+t2+'par '+MonFindInfo('<font class=link5d>','</font>',temp,0)+#13#10;
          t2 := '';
          t1 := t1+MonFindInfo('<font class=link6>','</font>',temp,0)+#13#10+#13#10;
          Delete(temp,1,Pos('<p>',temp));
        end
      end
      t1 := Comments+t1+#13#10;
      NoHTML(t1);
      SetField(FieldComments,t1);
    end
  end

end;


//--OK--------------------------------------------------------------------------
// Supprimme les balises HTML
//------------------------------------------------------------------------------

procedure NoHTML(var page: string);
begin
  page := StringReplace(page,'<br>',#13#10);
  page := StringReplace(page,'<b>','');
  page := StringReplace(page,'</b>','');
  page := StringReplace(page,'<i>','');
  page := StringReplace(page,'</i>','');
  page := StringReplace(page,'<u>','');
  page := StringReplace(page,'</u>','');
  page := StringReplace(page,'<br />','');
  HTMLDecode(page);
end;


//--OK--------------------------------------------------------------------------
// TROUVE LA CHAINE VOULUE (Merci ScorEpioN)
// option = 1 : Garde début et fin
// option = 0 : NE garde PAS début et fin
//------------------------------------------------------------------------------

function MonFindInfo(Debut, Fin, Line : string ; option : integer) : string;
var
   infos : String;
   BeginPos, EndPos : Integer;
begin
   infos := '';
   BeginPos := pos(Debut, Line);
   if BeginPos > 0 then
   begin
    if (option = 1) then
// Garde 'Debut' et 'Fin'
    begin
      delete(Line, 1, BeginPos-1);
      EndPos := pos(Fin, Line);
      infos := copy(Line,0,EndPos+length(Fin)-1);
    end
    else
// Supprimme 'Debut' et 'Fin'
// Vérifie si paramètre 'option' n'est pas invalide
    if (option = 0) then
    begin
      delete(Line, 1, BeginPos+length(Debut)-1);
      EndPos := pos(Fin, Line);
      infos := copy(Line,0,EndPos-1);
    end
   end
   result := Trim(infos);
end;


//--OK--------------------------------------------------------------------------
// Formatte les textes (Merci ScorEpioN)
//------------------------------------------------------------------------------

procedure Format(name : string);
var
  option: integer;
begin
  option := GetOption('Format du Titre');
  name := formatTitre(name,option);
end;



//--OK--------------------------------------------------------------------------
// PROGRAMME PRINCIPAL
//------------------------------------------------------------------------------
begin
  if CheckVersion(3,5,0) then
  begin
    NumPage := 1;
    Comments := '';
    MovieName := recupTitreRecherche(GetOption('Recherche sur le titre'));
   // Choix du lancement
   // Demande du titre
    if (GetOption('Type de Lancement') = 0) then
    begin
      if Input(NomScript+' par draco31.fr', 'Entrez le titre du film :',MovieName) then
      begin
        if Pos(urlDomain, MovieName) > 0 then
        AnalyzeMoviePage(MovieName)
        else
          AnalyzeSearchPage(urlCESearch+urlEncode(MovieName)+'/'+FloatToStr(NumPage)+'.html');
      end
    end
    else
    begin
     // Ne demande pas le titre
      if (GetOption('Type de Lancement') = 1) then
      AnalyzeSearchPage(urlCESearch+urlEncode(MovieName)+'/'+FloatToStr(NumPage)+'.html')
      else
      begin
       // Directement sur l'adresse web
        if (GetOption('Type de Lancement') = 2) then
        begin
          urlTitre := GetField(fieldURL);
          if Pos(urlDomain,urlTitre) > 0 Then
          AnalyzeMoviePage(urlTitre)
          else
          ShowError('L''adresse web ne correspond pas à une page web de CinEmotions !');
        end
      end
    end
  end
  else
  ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
end.

Posted: 2007-01-11 20:08:08
by draco31.fr
Merci bbulot d'avoir mis la main à la pâte !
Je te rassure : tu n'avais pas à attendre mon approbation pour patcher le script !

J'ai testé ta version rapidement ...
... à priori pour la recherche ça passe mais j'ai pas testé "à fond".

Par contre il y des problèmes ailleurs, mais je ne sais pas si tu avais modifié le reste du script.
PArmis ce que j'ai vu :
- l'url retournée n'est pas valide (il manque http://www.cinemotions.com devant)
- le résumé n'est pas récupéré
- quelques bugs mineur dans la récupération des critiques (ils ont enfin homogénéisé les balises HTML entre les critiques du site et celle des spectateurs ... c'est pas grand chose à modifier)

J'ai pas le temps de me pencher dessus ce soir, et je ne sais si j'aurai plus de temps ce week-end ... donc si vous voulez faire les modifs vous même ce n'est absoluement pas un problème : je suis le créateur initial du script, mais je vous demanderai pas de royalties si vous le modifez !!!


Ce que je me demande par contre, c'est si le CineMoteur reviendra ou non, car au final j'aimerai savoir si il vaut mieux utiliser le CineMoteur ou CinEmotions pour les recherches (CineMoteur me semblai plus facile).
Si CineMoteur refonctionne, il faudrait tester quel script est le plus rapide !

EDIT: Pour le résumé c'était dû à la conversion automatique des &xyz en un autre caractère par le forum : donc copié-collé foireux !
mais je pense que de base ça marche.

Pour l'url, il faut changer :

Code: Select all

//--OK--------------------------------------------------------------------------
// Stoque l'url
  Setfield(fieldURL,url);
Par :

Code: Select all

//--OK--------------------------------------------------------------------------
// Stoque l'url
  Setfield(fieldURL,urlDomain+url);
Pour le bug des critiques, il faut modifier la ligne :

Code: Select all

t2 := MonFindInfo('class=journal_link2>','</A>',temp,0);
Par:

Code: Select all

t2 := MonFindInfo('class=link10><b>','</b>',temp,0);

J'ai envoyé le script de bbulot avec les modification ci-dessus sur mon FTP à cette adresse : Suppresion du lien > voir le 1er post

Posted: 2007-01-11 20:38:53
by antp
J'attends un peu avant de l'intégrer "officiellement" aux scripts je suppose ?

Posted: 2007-01-11 20:41:56
by draco31.fr
C'est comme tu veux mais chez moi il semble bien tourner ...
...enfin je pense que bbulot n'a modifié que la partie recherche donc ce n'est pas vraiment un "nouveau" script !

Posted: 2007-01-11 21:22:11
by antp
Je remplace l'autre par celui-ci donc ?

Posted: 2007-01-12 20:10:09
by draco31.fr
Oui si tu veux, mais tu peux aussi mettre les 2 scripts sur le FTP.
Normalement les infos raportées sont les mêmes, mais si l'un ou l'autre des moteurs de recherche n'est pas fonctionnel, il peut être interressant d'avoir l'autre version pour palier au problème.

Posted: 2007-01-12 21:16:52
by antp
Le mieux serait de mettre le choix du moteur en option, mais je suppose que ça serait compliqué ?

Posted: 2007-01-14 16:57:24
by draco31.fr
J'y avais pas pensé !

Effectivement ça serait sans doute le mieux à faire ... je vais voir si c'est réalisable, mais pas ce soir : trop de chose en retard plus urgentes !

Posted: 2007-01-22 21:43:31
by draco31.fr
v0.8.2 du 22/01/2007

Ajout de l'option "Moteur de Recherche" pour permettre de choisir le moteur à utiliser.

Suppression du script "CinEmotions_2" qui devient donc redondant.


Merci d'utiliser ce script, n'hesitez pas à donner votre avis pour l'améliorer ou tout simplement pour remercier les personnes qui y ont contribuées :)


@ Ant :
Je pense que tu peux maintenant mettre cette version sur le FTP du site, et même l'inclure dans le prochain pack à venir ;)

Posted: 2007-01-23 18:41:03
by antp
ok, c'est fait (c'est bien celui dans le lien dans ton 1er message à a page précédente ?)

Posted: 2007-01-24 20:34:01
by draco31.fr
Oui, je remplace toujours le même fichier sur mon FTP ... c'est plus pratique, et ça m'évite de m'embrouiller entre les différentes version :p

Posted: 2007-03-12 18:35:32
by draco31.fr
Bonjour à tous !

Papy200 m'a signalé par mail un problème sur la récupération du titre.

J'ai donc mis à jour le script en version 0.8.3 avec une petite modif pour récuperer le script.

Le script est toujours disponible au même endroit (cf le 1er message du sujet !)

@ Antoine :

Tu peux copier le script sur ton FTP, pour qu'il soit dispo avec UPDATE_SCRIPT ? (que je trouve excellent d'ailleurs !!!)

Posted: 2007-03-12 18:49:07
by antp
c'est fait ;)

Posted: 2007-03-12 19:12:39
by papy200
un grand merci a vous tous, c'est du tres bon travail et tres rapide.

Genial !!!


Bien a vous.

Posted: 2007-03-20 11:56:48
by AlainB
Merci et bravo à tous pour le boulot fait!
Après mise à jour de la nouvelle version du script,je n'arrive toujours pas à récupérer le nom du film,ni en VF ni en VO . :??: :??:
J'ai loupé une manoeuvre ??

alain