Page 1 of 1

[RESOLU] Petit souci sur le script "MovieCovers"

Posted: 2020-05-31 10:28:37
by divxdvd
Coucou et pardon, cela doit etre une erreur de ma part car sur le site de "MoviesCovers", qui est à la base un excellent site de jaquettes..., il n'y a pas de référence à ces 2 sujets: "Scénariste" & "Compositeur"...
Le débat est clôt !
bonne soirée à toutes et tous
;)
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-

bonjour à toutes et tous

J'utilise assez souvent le script "MovieCovers" un petit peu retouché...
Mais depuis quelques temps, lors d'une création de fiche, ces 2 cases restent vides ?
- Scénariste & Compositeur

Ci joint le script "ouvert"...

merci à celles et ceux qui pourront me donner un coup de main !

Bonne journée à toutes et tous

Code: Select all

program MovieCovers;

var
  MovieName: string;
  LineNr: Integer;

const
  BaseUrl = 'https://moviecovers.com';
  
uses
  StringUtils1,   BatchCommon7552;

procedure AnalyzePage(Address: string);
var
  Line, Value: string;
  LastLine, BeginPos, EndPos, TreeCount: Integer;
  Page: TStringList;
begin
  Line := UTF8Decode(GetPage(Address));
  if Pos('il n''y a pas de film correspondant &agrave; ce(s) crit&egrave;re(s) dans <B>MOVIECOVERS</B>', Line) > 0 then
  begin
    ShowMessage('Aucun film trouvé');
    Exit;
  end;
  PickTreeClear;
  BeginPos := Pos('<FONT size="+1" color="#000000"><B>', Line);
  Delete(Line, 1, BeginPos - 1);
  EndPos := Pos('</FONT>', Line);
  Value := Copy(Line, 1, EndPos - 1);
  HTMLRemoveTags(Value);
  HTMLDecode(Value);
  BeginPos := Pos(' <table border=0 cellspacing=0 cellpadding=6 align="center" width="100%">', Line) + 1;
  Delete(Line, 1, BeginPos);
  EndPos := Pos(' <table border=0 cellspacing=0 cellpadding=6 align="center" width="100%">', Line) + 1;
  Delete(Line, EndPos, Length(Line));
  Page := TStringList.Create;
  Page.Text := Line;
  Value := Trim(Value) + ' : ' + Trim(Page.GetString(2));
  PickTreeAdd(Value, '');
  TreeCount := 0;
  for LineNr := 3 to Page.Count-1 do
  begin
    Line := Page.GetString(LineNr);
    if Pos('<LI><a', Line) > 0 then
    begin
      BeginPos := Pos('/film/titre', Line);
      EndPos := Pos('">', Line);
      Value := BaseUrl + Copy(Line, BeginPos, EndPos - BeginPos);
      HTMLRemoveTags(Line);
      PickTreeAdd(Trim(Line), Value);
      TreeCount := TreeCount + 1;
    end;
  end;
  if TreeCount = 1 then
    resume(Value)
  else
  if PickTreeExec(Address) then
    resume(Address);
  Page.Free;
end;

function TwoLinesAfter(Pattern: string; Page: TStringList): string;
begin
  LineNr := FindLine(Pattern, Page, LineNr);
  Result := Page.GetString(LineNr+2);
  HTMLRemoveTags(Result);
  HTMLDecode(Result);
  Result := Trim(Result);
end;

procedure resume (Adress: string);
var
  nouvelleadr, idcm, dure, CasseTitre, data: string;
  lestx: TStringList;
  BeginPos, EndPos, IntValue, FormatTitre: Integer;
begin
	FormatTitre := GetOption('FormatTitre');
  SetField(fieldURL, Adress);
  nouvelleadr:=stringreplace(Adress, BaseUrl + '/film/titre_','');
  idcm:=stringreplace(nouvelleadr,'.html','');
  idcm := urldecode(idcm);
  Adress:= BaseUrl + '/getfilm.html' ;
  nouvelleadr:='idmc=' + idcm;
  data := postpage(Adress,nouvelleadr);
  data := StringReplace(data, '’', '’');
  data := UTF8Decode(data);
  //data := RegExprSetReplace('([a-zA-Z])\?([a-zA-Z])', data, '$1’$2' , True);
  lestx := TStringList.Create;
  lestx.text:= data;
  Adress:=lestx.getstring(5);
  CasseTitre := TranslateText(lestx.getstring(0),FormatTitre);
  SetField(fieldTranslatedTitle, CasseTitre);
  CasseTitre := TranslateText(lestx.getstring(1),4);
  SetField(fieldDirector,CasseTitre);
  SetField(fieldYear, lestx.getstring(2));
  SetField(fieldCountry, lestx.getstring(3));
  SetField(fieldCategory, lestx.getstring(4));
  dure:= lestx.getstring(5);
  BeginPos := Pos('H', dure);
  IntValue := (StrToInt(Copy(dure, 1, BeginPos - 1), 0) * 60) + (StrToInt(Copy(dure, BeginPos + 1, Length(dure)), 0));
  SetField(fieldLength, IntToStr(IntValue));
  CasseTitre := StringReplace(lestx.getstring(6), ';', ', ');
  CasseTitre := TranslateText(CasseTitre,4);
  SetField(fieldActors, CasseTitre);
  SetField(fieldDescription, lestx.getstring(7));
  CasseTitre := TranslateText(lestx.getstring(8),4);
  SetField(fieldProducer, CasseTitre);
  CasseTitre := TranslateText(lestx.getstring(9),FormatTitre);
  SetField(fieldOriginalTitle, CasseTitre);
  if GetField(fieldOriginalTitle) = '' then
      SetField(fieldOriginalTitle, GetField(fieldTranslatedTitle));
  if GetOption('GrandeImage') = 1 then
    GetLargePicture(idcm)
  else
    GetSmallPicture(idcm);
end;

procedure GetLargePicture(Address: string);
begin
  Address := URLEncode(UTF8Encode(Address));
  GetPicture(BaseUrl + '/getjpg.html/' + Address);
end;

procedure GetSmallPicture(Address: string);
begin
  Address := URLEncode(Address);
  GetPicture(BaseUrl + '/DATA/thumbs/films-' + LowerCase(Copy(Address, 1, 1)) + '/' + Address + '.jpg');
end;

begin
  if CheckVersion(4,2,2) then
  begin
    MovieName := GetField(fieldTranslatedTitle);
    if MovieName = '' then
      MovieName := GetField(fieldOriginalTitle);
    if Input('MovieCovers', 'Entrez le titre du film :', MovieName) then
    begin
      AnalyzePage(BaseUrl + '/multicrit.html?titre=' + UrlEncode(MovieName) + '&slow=1&listes=1');
    end;
  end else if ShowWarning('Ce script requiert une version plus récente de Ant Movie Catalog, au moins la version 4.2.2, pour le moment disponible en beta - voulez-vous ouvrir le lien pour la télécharger ?)') = true then
  begin
    Launch('https://forum.antp.be/phpbb3/viewtopic.php?f=6&t=6862', '');
  end;
end.