Salut à tous
Salut Alpha
J'ai constaté la même chose pour les notes et pour les secrets de tournages.
Et de plus ma modif précédente (sur la page casting) ne marche plus car Allociné à de nouveau changer son fusil d'épaule pour revenir à l'ancienne version.
Bon prenons les choses dans l'ordre.
Pour ceux qui avaient modifié la page casting ... marche arrière toute !!
On revient comme on était en conservant quand même la modif concernant "activités sociétés" qui elle marche toujours (pour l'instant)
Donc la partie à changer se nomme toujours "ANALYSE DE LA PAGE CASTING" et elle se situe toujours au alentour des lignes 1117 a 1121 selon modifs antérieur ou pas.
Code: Select all
//------------------------------------------------------------------------------
// ANALYSE DE LA PAGE CASTING
//------------------------------------------------------------------------------
procedure castingComplet(pageCasting: string);
var
Line, Role, Acteur, couple, liste, Producteur :string;
BeginPos, EndPos, OtherPos : Integer;
begin
//pour eviter les time-out
sleep(timetosleep);
SetArrayLength(listeMessagesF,3);
SetArrayLength(listeMessagesS,3);
if pos('cfilm=', pageCasting) <> 0 then
begin
listeMessagesF[0] := 'Acteurs';
listeMessagesF[1] := 'Production';
listeMessagesF[2] := 'h5>';
listeMessagesS[0] := 'Acteurs';
listeMessagesS[1] := 'Production';
listeMessagesS[2] := 'h5>';
end else if pos('cserie=', pageCasting) <> 0 then
begin
listeMessagesF[0] := '<b>Acteurs';
listeMessagesF[1] := '<h4 style=';
listeMessagesF[2] := 'h4>';
listeMessagesS[0] := '<b>Acteurs';
listeMessagesS[1] := '<h4 style=';
listeMessagesS[2] := 'h4>';
end;
//charge la page
Line := GetPage(pageCasting);
if CanSetField(fieldActors) then
begin
if Pos(retourneElement(0), Line) > 0 then
begin
//liste des acteurs
BeginPos := Pos(retourneElement(0), Line);
Delete(Line, 1, BeginPos);
BeginPos := Pos('<h5>', Line);
liste := '';
repeat
BeginPos := Pos('<h5>', Line);
delete(Line,1,BeginPos-1);
Role := '';
Acteur := '';
// le role
Role := formatTitre(findInfo('<h5>', '</h5>', Line,'0'),GetOption('Format du Titre'));
// le nom de l'acteur
Acteur := formatTitre(findInfo('class="link1">', '</'+retourneElement(2), Line,'0'),GetOption('Format du Titre'));
Acteur := StringReplace(Acteur, ')','');
// couple acteur (rôle)
if (Role <> '') and (GetOption('Acteurs') =2) then
couple := Acteur +' ('+Role+'), '
else
couple := Acteur +', ';
// ajout du couple dans la liste
liste := liste + couple;
delete(Line, 1, length('<h5>'));
if (Acteur <> '') then
delete(Line, 1, pos('<'+retourneElement(2), Line));
BeginPos := pos('<h5>', Line);
OtherPos := pos(retourneElement(1), Line);
until (BeginPos > OtherPos);
EndPos := length(liste);
liste := copy(liste,1,EndPos-2)+'.';
MonSetField(fieldActors, liste);
end;
end;
// le producteur
if CanSetField(fieldProducer) and (pos('casting_gen_cserie',pageCasting) = 0) then
begin
if (Pos('<h5>Product', Line) <> 0) then
begin
delete(Line,1,Pos('<h5>Product', Line)-1);
Producteur := findInfo('class="link1">', '"padding:5 2 0 0"', Line,'0');
Producteur := StringReplace(Producteur, ' ', ', ');
Producteur := deleteTab(Producteur);
Producteur := StringReplace(Producteur, 'Activités sociétés', '');
MonSetField(fieldProducer, formatTitre(Producteur,GetOption('Format du Titre')));
end;
end;
end;
Ca c'est fait !!
Maintenant concernant la notation.
Les notes dont se servaient ScorEpioN pour faire ses calculs apparaissent maintenant dans un cadre à part !!
Mes compétences actuelles ne me permettant pas d'écrire du code pour faire de la recherche sur un cadre, j'ai rusé et j'ai utilisé la valeur de l'adresse qui pointe vers ce cadre. Car dans l'adresse il y a la valeur des notes critiques et spectateurs. J'ai donc juste réécri le début de la portion de code concernant la notation pour les films, la partie notation des séries fonctionnant toujours. (Je pense qu'on pourrait d'ailleurs utiliser la partie de code de notation des séries pour les films)
Bref ça marche mais j'aimerais l'avis d'un expert la dessus (ScorEpioN, Antp, Sagitaz, Draco31.fr ou quelqu'un d'autre a vot' bon coeur m'sieur dame !!
)
Donc la partie à changer se nomme "// Rating" et elle se situe au alentour de la ligne 366.
[edit=17/10/06]
J'ai rechangé le code ... cette version est bonne
Pas la peine de le rechanger à partir de mon post suivant car c'est exactement le même
[\edit]
[edit=25/10/06]
correction mineur concernant l'apparition de notes public égales à 0
[/edit]
[edit=03/11/06]
- correction d'un bug lorsqu'il n'y a aucunes notes à récupérer
- correction d'un bug de l'apparition d'une date après la note presse lorsqu'il n'y a pas de notes spectateurs à récupérer et que le choix date est 1
Merci à Anton35 pour le béta test
[/edit]
Code: Select all
// Rating
aucun := Line;
Value2 := '';
if (pos('notesrecos&', Line) <> 0) then
begin
Note1 := '';
Note2 := '';
if pos('¬epresse=&', Line) <> 0 then
Avertissement := Avertissement
else begin
Note1 := findInfo('¬epresse=', '&', Line,'0');
Note1 := FloatToStr(Round(StrToFloat(StringReplace(Note1, ',', '.')))); // arrondi à la valeur supérieure sans décimale
if GetOption('Detail Note') = 1 then
Avertissement := Avertissement + 'Note de la presse : ' + Note1 + '/4 ';
end;
if pos('¬epublic="', Line) <> 0 then
Avertissement := Avertissement
else begin
Note2 := findInfo('¬epublic=', '"', Line,'0');
Note2 := FloatToStr(Round(StrToFloat(StringReplace(Note2, ',', '.')))); // arrondi à la valeur supérieure sans décimale
if GetOption('Detail Note') = 1 then
Avertissement := Avertissement + 'Note des spectateurs : ' + Note2 + '/4';
end;
if CanSetField(fieldComments) and (GetOption('Detail Note') = 1) then // Détail des notes dans les commentaires
begin
Line := aucun;
if pos('Note moyenne :', Line) > 0 then // Détail et nombre de votes des spectateurs
begin
Delete(Line, 1, pos('Note moyenne :', Line)+length('Note moyenne :'));
Line := copy(Line,1,pos('</table>', Line)-1);
Value := findInfo('pour', 'critiques', Line,'0');
Value2 := ' ('+Value+' critiques : ';
if pos('note=4.html', Line) > 0 then
Value2 := Value2 + nbCritiques(Line,'4') +' ****, ';
if pos('note=3.html', Line) > 0 then
Value2 := Value2 + nbCritiques(Line,'3') +' ***, ';
if pos('note=2.html', Line) > 0 then
Value2 := Value2 + nbCritiques(Line,'2') +' **, ';
if pos('note=1.html', Line) > 0 then
Value2 := Value2 + nbCritiques(Line,'1') +' *, ';
if pos('note=0.html', Line) > 0 then
Value2 := Value2 + nbCritiques(Line,'0') +' °';
Value2 := Value2 + ')';
Value2 := StringReplace(Value2, ', )', ')');
end;
Avertissement := Avertissement+Value2 + #13#10#13#10;
SetField(fieldComments, Avertissement);
end;
if CanSetField(fieldRating) then // Notes dans le champs note
begin
if GetOption('Note') = 1 then
begin
if Note2 <> '' then
SetField(fieldRating,calculMoyenne(Note2,4))
else if Note1 <> '' then
SetField(fieldRating,calculMoyenne(Note1,4));
end else
if GetOption('Note') = 2 then
begin
if Note1 <> '' then
SetField(fieldRating,calculMoyenne(Note1,4))
else if Note2 <> '' then
SetField(fieldRating,calculMoyenne(Note2,4));
end else
if GetOption('Note') = 0 then
begin
if (Note1 <> '') and (Note2 <> '') then
begin
Note1 := IntToStr(StrToInt(Note1,2)+StrToInt(Note2,2));
SetField(fieldRating,calculMoyenne(Note1,8));
end else
if (Note1 <> '') then
begin
Note1 := IntToStr(StrToInt(Note1,2)+StrToInt(Note1,2));
SetField(fieldRating,calculMoyenne(Note1,8));
end else
if (Note2 <> '') then
begin
Note1 := IntToStr(StrToInt(Note2,2)+StrToInt(Note2,2));
SetField(fieldRating,calculMoyenne(Note1,8));
end;
end;
end;
end;
Line := aucun;
Concernant les secrets de tournages le script ne renvoi plus que le premier secret de chaque page d'allociné car les tags des pages ont changé. Du coup, c'est sûr il manque pleins de secrets
Pour avoir tous les secrets il faut changer la partie qui se nomme "// ANALYSE DE LA PAGE SECRETS DE TOURNAGE" et qui se situe au alentour de la ligne 1204 selon modifs antérieur ou pas.
Code: Select all
//------------------------------------------------------------------------------
// 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(timetosleep);
//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('<td colspan="3" valign="top">', Line);
repeat
BeginPos := pos('<td colspan="3" valign="top">', Line);
delete(Line, 1, BeginPos-1);
// titre
Titre := findInfo('<td colspan="3" valign="top">', '</b></h4></td>', Line,'0');
Titre := formatTitre(Titre,GetOption('Casse Choisie'))+#13#10;
// secret
Texte := findInfo('<div align="justify"><h4>', '</h4></div></td>', Line,'0')+#13#10#13#10;
// couple
couple := Titre+Texte;
La_liste := La_liste+couple;
delete(Line, 1, length('<td colspan="3" valign="top">'));
BeginPos := pos('<td colspan="3" valign="top">', Line);
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 := urlAllocine+pageSuivante;
secretComplet(pageSuivante);
end;
end;
end;
Voilà, en espérant qu'Allociné ne rechange pas d'ici quelques jours !!