[REL] [EN] [FR] Centralisation ScorEpioN [-SEN-]
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
+ 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
[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 )
+ Je récupére tous les genres pour un anime
+ Le champs durée est maintenant rempli
+ 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 )
+ Je récupére tous les genres pour un anime
+ Le champs durée est maintenant rempli
Script de traitement par lot sur Allociné
Bonjour à tous,
Premier point AMC c'est excellent !
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)
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.
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
Premier point AMC c'est excellent !
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)
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.
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
[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
+ 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
[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.
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.
Modif. du script Allociné pour récuperer la grande affiche.
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. )
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
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!
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. )
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.
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!
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
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
[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
+ 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
[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
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
+ 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
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.
[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
+ 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