modhack Posté(e) 13 octobre 2004 Share Posté(e) 13 octobre 2004 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 More sharing options...
Sango Posté(e) 13 octobre 2004 Share Posté(e) 13 octobre 2004 Eh ben Modhack, tu bosses pas à moitié toi !!!! Lien vers le commentaire Partager sur d'autres sites More sharing options...
uhaina Posté(e) 14 octobre 2004 Share Posté(e) 14 octobre 2004 Merci de la réactivité toujours ultra rapide sur ce forum ! Merci pour le trvail effectué ! enfin merci pour tout je vais essayé de suite ! Lien vers le commentaire Partager sur d'autres sites More sharing options...
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant