Correction Script Allociné Pour Amc


modhack
 Share

Messages recommandés

Dus au changement du site AlloCiné, vous devez changer le script d'importation depuis internet sous Ant Movie Catalogue.

Appuyez sur F6 et editez le "script Allociné small pic" par exemple

remplacez tout le script par celui ci dessous.

// GETINFO SCRIPTING// Allociné (FR) - Recherche de films (Option à modifier avec "Admin Allociné") - by ScorEpioN(*************************************************** *  Movie importation script for:                  * *      Allociné France, http://www.allocine.fr    * *                                                 * *  Script Allociné v7 du 11/10/2004 by ScorEpioN  * *                                                 * *  Ancienne version :                             * *  faite par Antoine Potten                       * *  améliorations par Soltan                       * *                                                 * *  For use with Ant Movie Catalog 3.4.0           * *  www.antp.be/software/moviecatalog              * *                                                 * *  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.                     * ***************************************************)program Allocine_FR;const  GrandeImage = 1;    { 2: Prend la grande image      1: Prend l'affiche 0: Pas d'image }  PlusdActeurs = False;    { True: Prend la liste complète des acteurs      False: Prend les noms des acteurs de la page principale }  PlusdeScene = 1;    { 2 : Prend la liste complète des scenes de tournage      1 : Prend les scenes de tournage de la page principale      0 : Ne prend pas les secrets de tournage }  Note = 2;    { 2 : Prend les notes dans le champs rating et dans le champs commentaire      1 : Prend les notes dans le champs rating avec une preference pour la note des spectateurs      0 : Ne prend pas les notes ni dans le champs commentaire ni dans le champs rating }  ConfirmTitre = True;    { True: Demande le titre avant de lancer le script      False: Ne demande pas le titre avant de lancer le script }var  MovieName, NomFilm, Adresse, AdressePlus, La_liste, LaGrandeImage : string;  numPage, numPageG, grandeTaille, compteur : Integer;//------------------------------------------------------------------------------// TROUVE UNE SOUS-CHAINE DE CARACTERE DANS UNE CHAINE//------------------------------------------------------------------------------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;//------------------------------------------------------------------------------// ANALYSE DE LA PAGE DE RECHERCHES//------------------------------------------------------------------------------procedure AnalyzePage(Address: string);var  Page: TStringList;  LineNr: Integer;  Line: string;  BeginPos, EndPos : Integer;begin  Page := TStringList.Create;  Page.Text := GetPage(Address);  if pos('Pas de résultats',Page.Text) <> 0 then  begin    showmessage('Aucun film trouvé pour : '+NomFilm);    exit;  end;  if pos('Recherche :', Page.Text) = 0 then  begin    Adresse := Address;    AnalyzeMoviePage();  end else  begin    PickTreeClear;    LineNr := FindLine('<h3><b>Films <h4>', Page, 0);    if LineNr > -1 then    begin      EndPos := length(Page.Text);      Line := copy(Page.Text,1,EndPos);      BeginPos := Pos('<td colspan="2" valign="top">', Line);      Delete(Line, 1, BeginPos);      EndPos := length(Line);      Line := copy(Line,1,EndPos);      PickTreeAdd('Films trouvés pour ' + NomFilm + ' :', '');      AddMoviesTitles(Line);    end;    if compteur = 1 then    begin      compteur := 0;      AnalyzeMoviePage();      exit;    end else    begin      begin        if PickTreeExec(Address) then        begin          Adresse := Address;          if (Adresse = AdressePlus) then          begin            AnalyzePage(AdressePlus);          end else          begin            AnalyzeMoviePage();          end;        end;      end;    end;  end;  Page.Free;end;//------------------------------------------------------------------------------// ANALYSE DE LA PAGE DU FILM//------------------------------------------------------------------------------procedure AnalyzeMoviePage();var  Line, Value, AdresseCasting, AdresseSecret, AdresseGalerie, aucun, Avertissement: string;  LineNr, IntValue: Integer;  BeginPos, EndPos, FinPos: Integer;begin//charge la page  Line := GetPage(Adresse);  Avertissement := '';// URL  SetField(fieldURL, URLEncode(Adresse));//translated title  BeginPos := pos('<title>', Line);  delete(Line,1, BeginPos+6);  EndPos := pos('</title>', Line);  Value := copy(Line, 1, EndPos - 1);  Value := AnsiUpFirstLetter(Value);  Value := AnsiMixedCase(Value,' -');  SetField(fieldTranslatedTitle, Value);// Picture  if (GrandeImage = 1) then  begin  BeginPos := pos('<td valign="top" style="padding:0 10 5 0">', Line);  delete(Line,1, BeginPos);  BeginPos := pos('width="100%"><img src=', Line);  delete(Line,1, BeginPos+22);  EndPos := pos('" border', Line);  Value := copy(Line, 1, EndPos - 1);  GetPicture(Value, False);  end else  if (GrandeImage = 2) then  begin // Adresse Galerie de photo    if pos('Toute la Galerie Photos', Line) > 0 then    begin      aucun := Adresse;      delete(aucun,1,pos('.fr', aucun)+3);      AdresseGalerie := 'http://www.allocine.fr/'+copy(aucun, 1, pos('/', aucun))+'galerie_gen_cfilm=';      delete(aucun,1,pos('=', aucun));      AdresseGalerie := AdresseGalerie +aucun;      grandeTaille := 0;      numPageG := 1;      galerieImage(AdresseGalerie);    end else    begin      BeginPos := pos('<td valign="top" style="padding:0 10 5 0">', Line);      delete(Line,1, BeginPos);      BeginPos := pos('width="100%"><img src=', Line);      delete(Line,1, BeginPos+22);      EndPos := pos('" border', Line);      Value := copy(Line, 1, EndPos - 1);      GetPicture(Value, False);    end;  end;// Original Title  BeginPos := pos('<h4>Titre original : ', Line);  if BeginPos <> 0 then  begin    delete(Line,1, BeginPos+20);    EndPos := pos('</h4>', Line);    Value := copy(Line, 1, EndPos - 1);    Value := AnsiUpFirstLetter(Value);    Value := AnsiMixedCase(Value,' -');    HTMLRemoveTags(Value);    SetField(fieldOriginalTitle, Value);  end else  begin    SetField(fieldOriginalTitle, GetField(fieldTranslatedTitle));  end;//Country    if pos('<h4>Film ', Line) > 0 then    begin      Delete(Line, 1, pos('<h4>Film ', Line) + 8);      EndPos := pos('</h4>', Line);      Value := copy(Line, 1, EndPos - 2);      Value := AnsiUpFirstLetter(Value);      Value := AnsiMixedCase(Value,' -');      SetField(fieldCountry, Value);    end;// Category    BeginPos := pos('<h4>Genre : ', Line);    if (BeginPos > 0) then    begin      Delete(Line, 1, pos('<h4>Genre : ', Line) + 11);      EndPos := pos('</h4>', Line);      Value := copy(Line, 1, EndPos - 1);      Value := AnsiUpFirstLetter(Value);      SetField(fieldCategory, Value);    end;// Length    if pos('Durée : ', Line) > 0 then    begin      Delete(Line, 1, pos('Durée : ', Line) + 7);      IntValue := StrToInt(copy(Line, 1, 1), 0) * 60;      if pos('min.', Line) > 0 then      begin        delete(Line,1,pos('h', Line) + 1);        Value := copy(Line, 1, pos('min.',Line)-1);        Value := StringReplace(Value, ' ', '');	IntValue := IntValue + StrToInt(Value, 0);      end;      SetField(fieldLength, IntToStr(IntValue));    end;// Year    if pos('<h4>Année de production : ', Line) > 0 then    begin      Delete(Line, 1, pos('<h4>Année de production : ', Line)+24);      EndPos := pos('</h4>', Line);      Value := copy(Line, 1, EndPos -1);      SetField(fieldYear, Value);    end;// Avertissement   BeginPos := pos('Interdit', Line);   if (BeginPos > 0) then   begin     Delete(Line, 1, BeginPos-1);     EndPos := pos('</h4>', Line);     Avertissement := copy(Line, 1, EndPos - 1)+#13#10#13#10;     SetField(fieldComments, Trim(Avertissement));   end;// Actors    if pos('<h4>Avec ', Line) > 0 then    begin      Delete(Line, 1, pos('<h4>Avec ', Line) + 8);      EndPos := pos('</h4><br />', Line);      Value := copy(Line, 1, EndPos - 1);      HTMLRemoveTags(Value);      HTMLDecode(Value);      SetField(fieldActors, Trim(Value));    end;// Director    if pos('<h4>Réalisé par ', Line) > 0 then    begin      Delete(Line, 1, pos('<h4>Réalisé par ', Line) + 15);      EndPos := pos('</a></h4>', Line);      Value := copy(Line, 1, EndPos - 1);      HTMLRemoveTags(Value);      HTMLDecode(Value);      SetField(fieldDirector, Value);    end;// Adresse casting complet    if pos('Voir tout le casting', Line) > 0 then    begin      Delete(Line, 1, pos('<h4><a href=', Line) + 12);      EndPos := pos('.html"', Line);      AdresseCasting := 'http://www.allocine.fr'+copy(Line, 1, EndPos + 4);    end;// Productor + More actors    if (PlusdActeurs = True) then    begin    castingComplet(AdresseCasting);    end;// Rating    if (pos('<h4>Critiques :', Line) > 0) and (Note <> 0)then    begin      Delete(Line, 1, pos('<h4>Critiques :', Line) + 14);      if pos('Presse', Line) > 0 then      begin      EndPos := pos('.gif', Line);      Delete(Line, 1, EndPos-2);      Value := copy(Line, 1, 1);      Delete(Line, 1, EndPos+3);      if Note = 2 then      begin        Avertissement := Avertissement + 'Note de la presse : ' + Value + '/4 ';      end;      if (Value = '0') then      begin        Value := '0';      end else      if (Value = '1') then      begin        Value := '2';      end else      if (Value = '2') then      begin        Value := '4';      end else      if (Value = '3') then      begin        Value := '6';      end else      if (Value = '4') then      begin        Value := '8';      end;      SetField(fieldRating,Value);      end;      if pos('Spectateurs', Line) > 0 then      begin      EndPos := pos('.gif', Line);      Delete(Line, 1, EndPos-2);      Value := copy(Line, 1, 1);      Delete(Line, 1, EndPos+3);      if Note = 2 then      begin        Avertissement := Avertissement + 'Note des spectateurs : ' + Value + '/4';      end;      if (Value = '0') then      begin        Value := '0';      end else      if (Value = '1') then      begin        Value := '2';      end else      if (Value = '2') then      begin        Value := '4';      end else      if (Value = '3') then      begin        Value := '6';      end else      if (Value = '4') then      begin        Value := '8';      end;      SetField(fieldRating,Value);      end;      if Note = 2 then      begin        Avertissement := Avertissement + #13#10#13#10;        SetField(fieldComments, Avertissement);      end;    end;// Description  if pos('<h3><b>Synopsis', Line) > 0 then  begin   Delete(Line, 1, pos('<h3><b>Synopsis', Line));   Delete(Line, 1, pos('<h4>', Line) + 3);   EndPos := pos('</h4>', Line);   Value := copy(Line, 1, EndPos - 1);   HTMLRemoveTags(Value);   HTMLDecode(Value);   SetField(fieldDescription, Trim(Value));  end;// Adresse tous les secrets de tournage    if pos('Tous les secrets de tournage', Line) > 0 then    begin      aucun := Adresse;      delete(aucun,1,pos('.fr', aucun)+3);      AdresseSecret := 'http://www.allocine.fr/'+copy(aucun, 1, pos('/', aucun))+'anecdote_gen_cfilm=';      delete(aucun,1,pos('=', aucun));      AdresseSecret := AdresseSecret +aucun;    end;// Commments  if (pos('<h3><b>Secrets de tournage', Line) > 0) and (PlusdeScene = 1) then  begin   Delete(Line, 1, pos('<h3><b>Secrets de tournage', Line));   Delete(Line, 1, pos('</table>', Line)+7);   Value := Avertissement+'Secrets de tournage :'+#13#10#13#10;   BeginPos := pos('<h4><b>', Line);   FinPos := pos('</table>',Line);   repeat     Delete(Line, 1, BeginPos+6);     EndPos := pos('</b></h4>', Line);     Value := Value + Trim(copy(Line, 1, EndPos - 1))+' :'+#13#10;     BeginPos := pos('<h4>', Line);     Delete(Line, 1, BeginPos-1);     FinPos := FinPos - BeginPos+1;     EndPos := pos('</h4>', Line);     Value := Value + Trim(copy(Line, 1, EndPos - 1))+#13#10#13#10;     Delete(Line, 1, EndPos-1);     FinPos := FinPos - EndPos+1;     BeginPos := pos('<h4><b>', Line);     delete(Line, 1, BeginPos-8);     FinPos := FinPos - BeginPos+8;     aucun := copy(Line, 1, 5);     BeginPos := pos('<h4><b>', Line);   until ((BeginPos = 0) or (aucun = 'link1') or (BeginPos > FinPos));   HTMLRemoveTags(Value);   HTMLDecode(Value);   SetField(fieldComments, Trim(Value));  end else  if (pos('<h3><b>Secrets de tournage', Line) > 0) and (PlusdeScene = 2) then  begin   La_liste := Avertissement+'Secrets de tournage :'+#13#10#13#10;   numPage := 1;   secretComplet(AdresseSecret);  end;  DisplayResults;end;//------------------------------------------------------------------------------// ANALYSE DE LA PAGE CASTING//------------------------------------------------------------------------------procedure castingComplet(pageCasting: string);var  Line, Role, Acteur, couple, liste, Producteur :string;  BeginPos, EndPos : Integer;begin//pour eviter les time-out  sleep(1500);//charge la page  Line := GetPage(pageCasting);  if (PlusdActeurs = True) then  begin  if Pos('<b>Acteur(s)</b>', Line) > 0 then  begin//liste des acteurs  BeginPos := Pos('<b>Acteur(s)</b>', Line);  Delete(Line, 1, BeginPos);  BeginPos := Pos('<h5>', Line);  liste := '';  repeat// le role  delete(Line,1,BeginPos-1);  EndPos := Pos('</h5>', Line);  Role := copy(Line,1,EndPos);  HTMLRemoveTags(Role);  delete(Line,1,EndPos);// le nom de l'acteur  BeginPos := Pos('<h4><a href', Line);  delete(Line,1,BeginPos+3);  BeginPos := Pos('<h4>', Line);  delete(Line,1,BeginPos-1);  EndPos := Pos('</h4>', Line);  Acteur := copy(Line,1,EndPos);  HTMLRemoveTags(Acteur);  delete(Line,1,EndPos);// couple acteur (rôle)  couple := Acteur +' ('+Role+'), ';// ajout du couple dans la liste  if (Role <> 'Scénariste') then  begin   liste := liste + couple;// pour un nouvel ajout   BeginPos := Pos('<h5>', Line);  end else  begin   BeginPos := 0;  end;  until (BeginPos = 0);  EndPos := length(liste);  liste := copy(liste,1,EndPos-2)+'.';  SetField(fieldActors, liste);  end;// le producteur  if Pos('<h5>Producteur', Line) > 0 then  begin    BeginPos := Pos('<h5>Producteur', Line);    Delete(Line, 1, BeginPos);    BeginPos := Pos('<h4><a href', Line);    delete(Line,1,BeginPos+3);    BeginPos := Pos('<h4>', Line);    delete(Line,1,BeginPos+3);    EndPos := Pos('</h4>', Line);    Producteur := copy(Line,1,EndPos-1);    SetField(fieldProducer, Producteur);  end;  end;end;//------------------------------------------------------------------------------// ANALYSE DE LA PAGE SECRETS DE TOURNAGE//------------------------------------------------------------------------------procedure secretComplet(pageSecret: string);var  Line, LineSuivant, Titre, Texte, couple, pageSuivante :string;  BeginPos, EndPos : Integer;begin//pour eviter les time-out  sleep(1500);//charge la page  Line := GetPage(pageSecret);  LineSuivant := Line;  numPage := numPage + 1;  if Pos('Secrets de tournage</h2>', Line) > 0 then  begin//liste des secrets  BeginPos := Pos('Secrets de tournage</h2>', Line);  Delete(Line, 1, BeginPos);  BeginPos := Pos('<h4><b>', Line);  repeat// le titre     Delete(Line, 1, BeginPos+6);     EndPos := pos('</b></h4>', Line);     Titre := Trim(copy(Line, 1, EndPos - 1));     BeginPos := pos('<h4>', Line);     HTMLRemoveTags(Titre);// le texte     Delete(Line, 1, BeginPos-1);     EndPos := pos('</h4>', Line);     Texte := Trim(copy(Line, 1, EndPos - 1));     HTMLRemoveTags(Texte);     Texte := StringReplace(Texte, #13#10, '');// le couple titre : texte     couple := Titre+' :'+#13#10+Texte+#13#10#13#10;     Delete(Line, 1, EndPos-1);     if (Titre <> 'Toutes les offres spéciales') then     begin// ajout du couple dans la liste       La_liste := La_liste + couple;// pour un nouvel ajout       BeginPos := pos('<h4><b>', Line);       delete(Line, 1, BeginPos-8);       BeginPos := pos('<h4><b>', Line);     end else     begin       BeginPos := 0;     end;  until (BeginPos = 0);  SetField(fieldComments, La_liste);// si on a plusieurs pages  pageSuivante := pageSecret;  delete(pageSuivante,1,pos('.fr', pageSuivante)+2);  pageSuivante := copy(pageSuivante, 1, pos('.html', pageSuivante)-1);  if pos('page',pageSuivante) = 0 then  begin    pageSuivante := pageSuivante+'&page='+IntToStr(numPage)+'.html';  end else  begin    pageSuivante := copy(pageSuivante, 1, pos('&page=', pageSuivante)-1)+'&page='+IntToStr(numPage)+'.html';  end;  BeginPos := pos(pageSuivante,LineSuivant);  if BeginPos <> 0 then  begin    pageSuivante := 'http://www.allocine.fr'+pageSuivante;    secretComplet(pageSuivante);  end;  end;end;//------------------------------------------------------------------------------// ANALYSE DE LA PAGE GALERIE//------------------------------------------------------------------------------procedure galerieImage(pageGalerie: string);var  Line, Value, LineSuivant, pageSuivante :string;  BeginPos, EndPos, taille : Integer;begin//pour eviter les time-out  sleep(1500);//charge la page  Line := GetPage(pageGalerie);  LineSuivant := Line;  numPageG := numPageG + 1;  BeginPos := pos('<td  align="center" colspan="2">', Line);  delete(Line,1, BeginPos);  BeginPos := pos('<img src="', Line);  delete(Line,1, BeginPos+9);  EndPos := pos('" border', Line);  Value := copy(Line, 1, EndPos - 1);  delete(Line,1, EndPos);  BeginPos := pos('alt="', Line);  delete(Line,1, BeginPos+4);  EndPos := pos('Ko"', Line);  taille := StrToInt(Trim(copy(Line, 1, EndPos - 1)),0);  if (taille > grandeTaille) then  begin    grandeTaille := taille;    LaGrandeImage := Value;  end;// si on a plusieurs pages  pageSuivante := pageGalerie;  delete(pageSuivante,1,pos('.fr', pageSuivante)+2);  pageSuivante := copy(pageSuivante, 1, pos('.html', pageSuivante)-1);  if pos('page',pageSuivante) = 0 then  begin    pageSuivante := pageSuivante+'&page='+IntToStr(numPageG)+'.html';  end else  begin    pageSuivante := copy(pageSuivante, 1, pos('&page=', pageSuivante)-1)+'&page='+IntToStr(numPageG)+'.html';  end;  BeginPos := pos(pageSuivante,LineSuivant);  if BeginPos <> 0 then  begin    pageSuivante := 'http://www.allocine.fr'+pageSuivante;    galerieImage(pageSuivante);  end;  GetPicture(LaGrandeImage, False);end;//------------------------------------------------------------------------------// AJOUTE UN COUPLE FILM / ADRESSE A LA LISTE DE RESULTAT//------------------------------------------------------------------------------procedure AddMoviesTitles(var Line: string);var  MovieTitle, MovieAddress, aucun: string;  StartPos, EndPos : Integer;begin//compte les résultats  compteur := 0;  repeat    StartPos := pos('<h4><a href=', Line);    if StartPos > 0 then    begin      Delete(Line, 1, StartPos + 12);      EndPos := pos('.html"', Line);      MovieAddress := copy(Line, 1, EndPos+4);      StartPos := pos('>', Line)+1;      MovieTitle := copy(Line, StartPos, pos('</h4>', Line) - StartPos);      MovieTitle := StringReplace(MovieTitle, ' ', ' ');      HTMLRemoveTags(MovieTitle);      delete(Line,1,pos('</h4>',Line)-1);      aucun := copy(Line, 1, pos('</td>',Line)-1);      aucun := StringReplace(aucun, ' ', ' ');      aucun := StringReplace(aucun, #13#10, '');      aucun := StringReplace(aucun, '	', '');      HTMLRemoveTags(aucun);// si on a des informations complémentaires      if (aucun <> '') then      begin        MovieTitle := MovieTitle +' '+aucun;      end;      PickTreeAdd(MovieTitle, 'http://www.allocine.fr' + MovieAddress);      adresse := 'http://www.allocine.fr' + MovieAddress;      compteur := compteur+1;    end;  until (StartPos < 1);// si on a plus de résultats  StartPos := pos('Films précédents',Line);  if StartPos <> 0 then  begin    delete(Line,1,StartPos);    if (pos('rub=1&page=',Line) > 0) then    begin      StartPos := pos('<h4><b><a href=', Line);      if StartPos <> 0 then      begin        delete(Line,1,StartPos+15);        EndPos := pos('" class=',Line);        AdressePlus := 'http://www.allocine.fr' + copy(Line, 1, EndPos-1);        PickTreeAdd('Plus de résultats',AdressePlus);      end;    end;  end;end;//------------------------------------------------------------------------------// PROGRAMME PRINCIPAL//------------------------------------------------------------------------------begin  if CheckVersion(3,4,0) then  begin    MovieName := GetField(fieldTranslatedTitle);    if MovieName = '' then      MovieName := GetField(fieldOriginalTitle);    if (ConfirmTitre = True) then    begin      if Input('Allociné.fr by ScorEpioN', 'Entrez le titre du film :', MovieName) then      begin        if Pos('allocine.', MovieName) > 0 then        begin          adresse := MovieName;          AnalyzeMoviePage();        end else        begin//remplace les caractères accentués          NomFilm := MovieName;          AnalyzePage('http://www.allocine.fr/recherche/?motcle='+UrlEncode(MovieName)+'&rub=1');        end;      end;    end else    begin      AnalyzePage('http://www.allocine.fr/recherche/?motcle='+UrlEncode(MovieName)+'&rub=1');    end;  end else    ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.4.0)');end.

Lien vers le commentaire
Partager sur d'autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share