[REL] [EN] [FR] Centralisation ScorEpioN [-SEN-]

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

Vous trouvez ces scripts :

Excellents
87
97%
A améliorer
3
3%
Nuls
0
No votes
 
Total votes: 90

ScorEpioN
Posts: 264
Joined: 2004-08-17 11:02:02

Post by ScorEpioN »

tu peux déjà desactiver avec le script d'admin :
+ les acteurs et le producteur (pas d'acteurs)
+ les scenes (pas de scenes)
+ l'image (pas d'image)

tu active
+ la note (champs note)

Il ne recupérera ainsi que les titres, l'url, la note dans rating, le pays, le genre, le réalisateur, et le synopsis.

Cela ne sera pas plus rapide.

Je ferai peut être une nouvelle version pour mettre tous les champs en ON/OFF
ScorEpioN
Posts: 264
Joined: 2004-08-17 11:02:02

Post by ScorEpioN »

[UPDATE] AlloCiné v9 et Admin Allocine v6 du 13/10/2004

+ constantes pour ne pas remplir les différents champs d'AMC (titre, réalisateur, @ web...)

[UPDATE] Installeur AlloCine.exe v3 comprenant AlloCiné v9 et Admin Allocine v6 du 13/10/2004

[UPDATE] Animeka v14 du 13/10/2004 (je n'aimai pas le chiffre 13 :D )

+ Je récupére tous les genres pour un anime
+ Le champs durée est maintenant rempli
Faded

Post by Faded »

merci pr le script allociné, très simple a installer et a utiliser, tout est clair...du bon taff :grinking:
AirForce1
Posts: 1
Joined: 2004-10-13 15:00:46

Script de traitement par lot sur Allociné

Post by AirForce1 »

Bonjour à tous,

Premier point AMC c'est excellent ! :hihi:
Deuxième point : je l’ai découvert il y a peu et j’ai 350 films à intégrer dans la base. Allociné à les infos qui m’intéresse. Pb les messages de confirmations freinent le chargement des infos (que se soit l’indication qu’un film n’est pas trouvé ou qu’il y en ait plusieurs avec des titres similaires) :hum:
J’ai donc pris le dernier script Allociné en date (Script Allociné v8 du 13/10/2004 par ScorEpioN) que j’ai adapté : lorsqu’un film n’est pas trouvé, la valeur ‘non trouvé' s’inscrit dans le champs ‘Label du support’ (i.e. fieldMedia) et lorsqu’il y a plusieurs films aux titres similaires c’est la valeur ’multi référence’ qui vient renseigner ce même champs.
:p
Toute notion d’interactivité est donc inhibée.

Une fois cette première passe effectuée avec ce script, il ne me reste plus qu’a affiner les manques en sélectionnant les films ‘non trouvé' et ’multi référence’ au moyen de outils/affichage groupé/Label du support.

Je tiens à disposition de qui veut pour en faire bon usage !!!!

AirForce1

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

Post by antp »

Je sens que ScorEpioN va intégrer ça dans son script, en option :hihi:
Galvin

merci !

Post by Galvin »

Merci pour le boulot !
C'est très sympa de votre part ! :grinking:
ScorEpioN
Posts: 264
Joined: 2004-08-17 11:02:02

Post by ScorEpioN »

[UPDATE] AlloCiné v10 et Admin Allocine v7 du 14/10/2004

+ modification de la constante ConfirmTitre :
> 1 : demande le titre de chaque fims
> 2 : ne demande pas le titre de chaque fim
> 0 : ne demande aucune interaction, si pas de films marque "Allo-ciné : aucun résultat" dans le champs adresse web, si il y a de multiples résultats marque "Allo-ciné : résultats multiples" dans le champs adresse web.

Il ne suffit plus que de regrouper les films au moyen de outils/affichage groupé/adresse web relancer le script "en mode 2" pour avoir les films proposant plusieurs choix.

AirForce1 : Merci de m'en avoir donné l'idée.

[UPDATE] Installeur AlloCine.exe v4 comprenant AlloCiné v10 et Admin Allocine v7 du 14/10/2004
ScorEpioN
Posts: 264
Joined: 2004-08-17 11:02:02

Post by ScorEpioN »

[HELP] Script Allociné

Voilà sur le script allociné on ne récupére pour le pays non pas le nom mais la nationnalité.

Cela me génait et explique en partie pourquoi j'ai fait le script Update Fields. Je pense faire une fonction pour remplacer la nationnalité par le nom mais pour ca je dois lister toutes les nationalités du site allociné.

N'ayant pas le temps est ce qu'une personne pourrai me donner cette liste ? même par screenshot ;) sinon tant pis je ne le ferai pas.
Rajah

Modif. du script Allociné pour récuperer la grande affiche.

Post by Rajah »

Bonjour à tous.

Tout d'abord merci à ScorEpioN pour son script pour Allociné,
qui a changé sa mise en page (les pauvres ils ne se doutent pas qu'on est en train de pomper les précieux infos qu'ils publient sur leur site. :lol: )

Merci à Ant pour son excelent logiciel (mais ça c'est une évidence)
mais surtout merci à lui pour l'avoir laissé en version Freeware car les develloppeurs dès que leurs programmes commencent à bien marché (où plutot dès que ça commence à interesser beacoup de gens essayent de se faire du pogon dessus). L'argent c'est pas tout dans le monde il y a aussi le plaisir de rendre service au gens et ça ANT l'a très bien compris.

Bon passons au scipt de Allociné. J'ai remarqué que le Script de ScorEpioN dès qu'il s'agissait de ramener l'affiche au grand format ne ramené pas toujours l'affiche mais une photo film.
J'ai remarqué aussi que sur Allociné dans la majorité des cas l'affiche se trouvé sur la dernière page.
Du coup j'ai modifier le script de ScorEpioN pour aller chercher directement la dernière photo. Dans le pire des cas s'il ramène une photo du film (que l'on peut verifier facilement en selectionnant la ligne <image>) on décoche la case image avant importation des données de Allociné et puis ensuite en va le chercher sur le site via le menu de AntMovie <[FR]Allociné>
(à ce propos l'URL de recherche sur Allociné n'est plus bonne il faut la remplacer par
http://www.allocine.fr/recherche/?motcle=%s&rub=1)
Ensuite on parcour la gallerie photo et on raméne l'affiche dans la base manuellement.

Le script se trouve ainsi optimisé puisque qu'il n'y a plus de boucle de parcour de la galerie photo.

Assez discuté voici le Script

Code: Select all


// 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 = 2;
    { 2: Prend la grande image
      1: Prend l'affiche 0: Pas d'image }
  PlusdActeurs = True;
    { 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,' -');
  Value := StringReplace(Value,'é','É');
  Value := StringReplace(Value,'è','È');
  Value := StringReplace(Value,'ê','Ê');
  Value := StringReplace(Value,'à','À');
  Value := StringReplace(Value,'ù','Ù');
  Value := StringReplace(Value,'ë','Ë');
  SetField(fieldTranslatedTitle, UpperCase(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, UpperCase(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, StringReplace(Trim(Value),', ',#13#10));
    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, StringReplace(Trim(Liste),', ',#13#10));
  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,FilmID : string;
  BeginPos, EndPos, taille, nPage, nPrevPage : Integer;
begin
//pour eviter les time-out
  sleep(1500);
//charge la page
  Line := GetPage(pageGalerie);


  BeginPos := pos('/film/galerie_gen_cfilm=',Line);
  delete(Line,1, BeginPos);
  BeginPos := pos('=',Line);
  delete(Line,1, BeginPos);
  EndPos := pos('.',Line);
  FilmID := copy(Line, 1, EndPos - 1); // on récupere le ID du film

  nPage:=0;
  nPrevPage:=0;

  while nPage >= nPrevPage do
  begin
    BeginPos := pos('/film/galerie_gen_cfilm='+FilmID+'&page=',Line);
    delete(Line,1, BeginPos);
    BeginPos := pos('=',Line);
    delete(Line,1, BeginPos);
    BeginPos := pos('=',Line);
    delete(Line,1, BeginPos);
    EndPos := pos('.',Line);
    Value := copy(Line, 1, EndPos-1);
    nPrevPage:=nPage;
    nPage:=StrToInt(Value,0);
  end;

  Value:= 'http://www.allocine.fr/film/galerie_gen_cfilm='+FilmID+'&page='+IntToStr(nPrevPage)+'.html';
  Line := GetPage(Value);

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

  GetPicture(Value, 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.

Juste une dernière chose, j'ai une question pour Ant ou un autre developpeur toujours dans un souci d'optimisation du script.
J'aimerais savoir s'il est possible de trier l'arborescence du resulat de recherche sur internet par ordre alphabétique car sur Allociné le résultalt n'est pas trié et c'est pas pratique.

Voilà j'ai termnié.
Continuez vous faites du bon boulôt!
antp
Site Admin
Posts: 9636
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

C'est vrai qu'il faudrait que je rajoute une fonction pour trier cette liste :D

Pour ce qui est de l'image, je pense que la meilleure chose à faire est de récupérer la 1e et dernière page, et de garder la plus grande des deux images. Je suppose que c'est ce qui sera le plus fiable comme solution.
Guest

Post by Guest »

Merci Rajah, je vais regarder ca pour faire la solution proposée par ANTP, je prend la premiere et la derniere, et je garde al plus grosse.

Là je suis sur le script update fields pour rajouter 2 fonctions :

+ nettoie titre : enleve tag fichier et team...
+ couper titre pour supprimer un mot d'un titre
ScorEpioN
Posts: 264
Joined: 2004-08-17 11:02:02

Post by ScorEpioN »

[UPDATE] Update Fields v2 du 16/10/2004

+ Nettoie les titres (Clean Title) : Nettoie les titres des tags fichiers et team
+ Coupe les titres (Cut Title) : Supprime un mot d'un titre
+ Corrige un bug pour les mass update (les fonctions casse et copie titre, ne fonctionnaient que sur le premier film, maintenant c'est bon)

En Cours

Je sortirai une nouvelle version allociné ce soir ou demain pour appliquer l'ID d'antp (inspiré de Rajah) car ce WE je ne serai pas trop chez moi ;)
antp
Site Admin
Posts: 9636
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

OK, j'attends ta nouvelle version pour enfin mettre à jour l'install du programme :D
ScorEpioN
Posts: 264
Joined: 2004-08-17 11:02:02

Post by ScorEpioN »

[UPDATE] AlloCiné v11 du 16/10/2004

+ modification de la récupération de la grande image :
je prends celle qui a le poids important en Ko, donc on a soit la première soit la dernière de la galerie :D

antp & Rajah : Merci de m'en avoir donné l'idée.

[UPDATE] Installeur AlloCine.exe v5 comprenant AlloCiné v11 et Admin Allocine v7 du 16/10/2004
Last edited by ScorEpioN on 2004-10-16 16:56:04, edited 1 time in total.
antp
Site Admin
Posts: 9636
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

exellent :) demains je l'inclus dans l'install d'AMC
ScorEpioN
Posts: 264
Joined: 2004-08-17 11:02:02

Post by ScorEpioN »

you're welcome :D tu inclus le script d'admin et update fields aussi ?
antp
Site Admin
Posts: 9636
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

Update fields oui, mais l'admin je pense pas : je vais attendre la version 3.5 pour ajouter un support d'options ça sera plus simple
Guest

Post by Guest »

[UPDATE] Update Fields v3 du 17/10/2004[/b]

+ Ajout d'une fonction pour modifier le champs Origine (Source)

// Je l'utilise pour savoir si j'ai vu ou non le film
ScorEpioN
Posts: 264
Joined: 2004-08-17 11:02:02

Post by ScorEpioN »

[UPDATE] Update Fields v3 du 17/10/2004

+ Ajout d'une fonction pour modifier le champs Origine (Source)

// Je l'utilise pour savoir si j'ai vu ou non le film

[UPDATE] Cinemasie v6 du 18/10/2004

+ Amélioration de la fonction de recherche
+ Amélioration récupération du genre

[UPDATE] Animeka v15 du 18/10/2004

+ Corrige un bug s'il y a plusieurs studio
+ Corrige un bug s'il y a un seul genre
antp
Site Admin
Posts: 9636
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

Tu ne t'arrêtes jamais ? :D
Post Reply