Page 1 of 1

Script Index dvd v1.2.1 by juliojs

Posted: 2013-04-25 17:39:26
by javienigma
Hola, alguien puede probar si le funciona el script Index DVD? la verdad es que es este script es muy bueno en cuanto a las carátulas, ya que te saca la mayoría en Bluray y con muy buena calidad, pero a mi no me funciona desde hace un tiempo.

Por otra parte, alguien sabe cómo arreglarlo?

Saludos y gracias por adelantado.

Posted: 2013-04-25 20:03:18
by juliojs
He modificado un par de líneas y creo que ya funciona correctamente.

Saludos!

Code: Select all

(***************************************************

Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/

[Infos]
Authors=Legrad modded by: juliojs
Title=IndexDVD caratula (ES)
Description=
Site=www.index-dvd.com
Language=ES
Version=1.2.1
Requires=3.5.0
Comments=
License=
GetInfo=1
RequiresMovies=1

[Options]

[Parameters]

***************************************************)

 program IndexDVD;
var
  MovieName: string;
  MovieURL: string;

//------------------------------------------------------------------------------------
function Comillas(var S: string): string;
var
   n,len, tag: Integer;
   c: char;
   t: String;
begin
   tag := 0;
   t := '';
   len := length(s);
   for n :=1 to len do
   begin
     c := Copy(s,n,1);
     if c = '''' then
        c := ' ';
        t := t + c;
   end
   s := t;
   result := t;
end;
//-------------------------------------------------------------------------------
                              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;
//------------------------------------------------------------------------------------
                      function TextBetween(var S: string; StartTag: string; EndTag: string): string;
var
  InitialPos: Integer;
begin
  InitialPos := Pos(StartTag, S);
  if InitialPos = 0 then
    result := ''
  else
  begin
    Delete(S, 1, InitialPos + Length(StartTag) - 1);
    InitialPos := Pos(EndTag, S);
    if InitialPos = 0 then
      result := S
    else
    begin
      result := copy(S, 1, InitialPos - 1);
      Delete(S, 1, InitialPos + 1);
    end;
  end;
end;


//---------------------------------------------------------------------
function Caracter(str1: string) :string;
begin
          str1 := StringReplace(str1, 'á' , 'à');
          str1 := StringReplace(str1, 'é' , 'é');
          str1 := StringReplace(str1, 'í',  'í');
          Str1 := StringReplace(Str1, 'ó', 'ó');
          str1 := StringReplace(str1, 'ú' , 'ú');
          str1 := StringReplace(str1, 'ñ' , 'ñ');
          str1 := StringReplace(str1, 'Ã￾', 'Á');
          str1 := StringReplace(str1, 'É', 'É');
          str1 := StringReplace(str1, 'Ã￾', 'Í');
          str1 := StringReplace(str1, 'Ó', 'Ó');
          str1 := StringReplace(str1, 'Ú', 'Ú');
          str1 := StringReplace(str1, 'Ñ', 'Ñ');
          str1 := StringReplace(str1, 'Â', '');

result := str1;
end;//------------------------------------------------------------------------------------
                               function DeleteTags(var S: string): string;
var
   n,len, tag: Integer;
   c: char;
   t: String;
begin

   tag := 0;
   t := '';
   len := length(s);

   for n :=1 to len do
   begin
      c := Copy(s,n,1);


      if c = #9 then
         c := ' ';

      if(tag=1) then
      begin
         if(c='>') then tag := 0;
         continue;
      end
      else
      begin
         if(c='<') then
         begin
            tag := 1;
            continue;
         end;
         t := t + c;
      end;
   end
   s := t;
   result := t;
end;


//------------------------------------------------------------------------------------
procedure AnalyzePage(Address: string);
var
  strPage, MovieAddr, MovieTitle, MovieDate, MovieID, Movie: string;
  BeginPos, EndPos: Integer;
  BeginPoss, EndPoss: Integer;
begin
  strPage := GetPage(Address);
  BeginPos := Pos('ficha(s) encontrada(s)', strPage);
  if(BeginPos > -1)then
    begin
      PickTreeClear;
      Delete(strPage, 1, BeginPos);
      BeginPos := Pos('class=''texto3''> <a href=''http://www.index-dvd.com/', strPage);
      EndPos := 1;
      while ((BeginPos > 0) and (EndPos > 0)) do

        begin
          Delete(strPage, 1, BeginPos);
          EndPos := Pos('html', strPage);
          MovieId := Copy(strPage,+54, EndPos-54);

          MovieAddr := 'http://www.index-dvd.com/' + MovieId+'html';
          BeginPoss := Pos('title=',strPage);
          EndPoss := Pos('</td>', strPage);
          MovieTitle := Copy(strPage,BeginPoss, EndPoss);
          MovieTitle  := TextBetween(MovieTitle , '"', '" class');
          MovieTitle  := StringReplace(MovieTitle , 'DVD Video', ' (DVD)');
          MovieTitle  := StringReplace(MovieTitle , 'Cine', ' (CINE)');
          MovieTitle  := StringReplace(MovieTitle , 'Blu-Ray', ' (BLU-RAY)');
          MovieTitle  := StringReplace(MovieTitle , 'Alquiler', ' (ALQUILER)');
          DeleteTags(MovieTitle);
          MovieTitle := Caracter(MovieTitle);
          PickTreeAdd(MovieTitle,MovieAddr);
          PickTreeSort;
          BeginPos := Pos('class=''texto3''> <a href=''http://www.index-dvd.com/', strPage);
          if(Pos('</body>', strPage) < BeginPos) then
           BeginPos := -1;
        end;

    end;
    PickTreeExec(Address)
    AnalyzeMoviePage(Address);
end;
//------------------------------------------------------------------------------------
procedure AnalyzeMoviePage(Address: string);
var
  Page: TStringList;
  LineNr: Integer;
  Line: string;
  Item: string;
  dir: string;
  Comments: string;
  Actors: string;
  Directors: string;
  Description: string;
  Busca: integer;


begin
  Description := '';

  // URL
  //SetField(fieldURL, Address);

  Page := TStringList.Create;
  Page.Text := GetPage(Address);

  // Caratula
  LineNr := FindLine('http://www.index-dvd.com/covers/300/', Page, 0);
  if LineNr > 0 then
  begin
    Item := copy(Page.Text, pos('http://www.index-dvd.com/covers/300/',Page.Text), length(Page.Text));
    Item := TextBetween (Item, 'http://www.index-dvd.com/covers/300/', '.jpg') + '.jpg';
    Item := StringReplace(Item, '300', '600');
    Item  := Trim(Item );
    GetPicture ('http://www.index-dvd.com/covers/600/'+Item);
     end;
  end;
 //-------------------------------------------------------------------------
begin
       if (CheckVersion(3,5,0)=FALSe) then
   begin
      ShowMessage('Se requiere Ant Movie Catalog versión 3.5 o superior');
      exit;
   end;

   MovieName := GetField(fieldTranslatedTitle);
   if MovieName = '' then
            MovieName := GetField(fieldOriginalTitle);
Input('IndexDVD', 'Buscar:', MovieName);

     if(GetOption('Sin resultado') = 0) then  Input('IndexDVD', 'Buscar:', MovieName);

   AnalyzePage('http://www.index-dvd.com/calendar_ult.php?tema=&order=tit&busqueda=' + UrlEncode(MovieName)+'&Submit.x=0&Submit.y=0');
end. 

Posted: 2013-04-25 21:37:44
by buitre225
Funciona perfectamente, muchas gracias

Posted: 2013-04-25 22:53:38
by javienigma
Hola!
Lo primero darte las gracias por la ayuda! Te comento, a mi sólo me saca la carátula, no saca el resto de información, esto es correcto? saludos genio!

Posted: 2013-04-26 08:13:23
by juliojs
buitre225 wrote:Funciona perfectamente, muchas gracias
Perfecto, pues a catalogar!! :D
javienigma wrote:Hola!
Lo primero darte las gracias por la ayuda! Te comento, a mi sólo me saca la carátula, no saca el resto de información, esto es correcto? saludos genio!
Sí, en teoría éste script sólo es para obtener la carátula, le echaré un ojo para ver si se puede extraer el resto de información aunque para mi gusto index-dvd se queda un poco corto para eso...

Un saludo!

Posted: 2013-04-26 17:35:17
by javienigma
Gracias Julio, es cierto que para la información está mejor Filmaffinity, pero es una lástima que este script no funcione al 100% como antes pasaba. Si puedes solucionarlo genial! sino, no te preocupes, saludos!