FilmAffinity (ES): version 2.82.Compatible con Ant Movie 4.2

If you made a script you can offer it to the others here, or ask help to improve it. You can also report here bugs & problems with existing scripts.
Arturo
Posts: 52
Joined: 2013-04-11 16:28:52

FilmAffinity (ES): version 2.82.Compatible con Ant Movie 4.2

Post by Arturo »

Nueva version del script: 2.82 Actualizada por raulsara

- Se modifica la funcion TextBetween(...) por errores al recoger la página Web de la pelicula.
- Esta version del script es compatible con los catálogos 4.1 y 4.2: reconoce la versión de catalogo y coloca los campos Guionista(Writer) y Compositor (Composer) en la nueva posicion de la versión 4.2
- Se añade la opción Force350, por defecto a 0, Si se pone a 1 colocara los campos Guionista y Compositor en el apartado Comentarios, como en versiones anteriores aunque ejecutemos la versio 4.2

Code: Select all

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

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

[Infos]
Authors=aviloria (aviloria@yahoo.com) modded by: rodpedja (rodpedja@gmail.com), kreti (bisoft@hotmail.com), MrK, gilistico, juliojs, Albher, Arturo, jacqlittle
Title=FilmAffinity (ES)
Description=Movie importation script for FilmAffinity Spain
Site=http://www.filmaffinity.com
Language=ES
Version=2.82
Requires=4.1.2
Comments=adaptation for compatibility with 4.2 version. Added Extras capture. Changed Charset ISO-> utf8
License=The source code of the script can be used in another program only if full credits to script author and a link to Ant Movie Catalog website are given in the About box or in the documentation of the program.|
GetInfo=1
RequiresMovies=1

[Options]
DontAsk=0|0|1=Método rápido: No te pregunta el titulo al principio, ni te pide confirmar si sólo hay un resultado|0=Método lento: Confirmas la información manualmente
ActorsInALine=0|0|1=Actores separados por comas|0=Actores en lineas independientes
Force350=0|0|1=force the behavior of 3.5.0 version|0=Version auto
DontWantExtras=1|1|1=No se recopilan extras|0=Se recopilan extras: enlaces, imágenes
GroupImages=1|1|1=Agrupa todas las imagenes en una misnma categoría 'Imagenes'|0=Divide las imágenes por categorias

[Parameters]
ExtraCriticsLimit=|99|Límite de criticas en Extras
ExtraImagesLimit=|99|Límite de imágenes en Extras
ExtraTrailersLimit=|99|Límite de Trailers en Extras

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

program FilmAffinity;
const
   BaseURL = 'http://www.filmaffinity.com';
var
   MovieName: string;
   MovieURL: string;
   
//------------------------------------------------------------------------------------

function LineDecode(S: string):string;
begin
   S:= UTF8Decode(S);
   HTMLDecode(S);
   Result := S;
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;

//------------------------------------------------------------------------------------

//
//  ConvertAlphaNum: Quita todo menos letras (mayusculas y minusculas) y numeros
//

Function ConvertAlphaNum(s: string) : string;
var
  i: Integer;
  s2, ch: string;
begin
  s2 := '';
  For i := 1 To Length(s) do
    begin
      ch := copy(s, i, 1);
      if ((ch >= 'a') and (ch <= 'z')) or ((ch >= '0') and (ch <= '9')) or ((ch >= 'A') and (ch <= 'Z'))  then
      s2 := s2 + ch;
    end;
  result := s2;
end;

//--------------------------------------

function TextBetween(S: string; StartTag: string; EndTag: string): string;
var
   ini, fin, lenS: Integer;
begin
   Result := '';
   lenS := Length(S);
   ini := Pos(StartTag, S);
   if ini <> 0 then
   begin
      ini := ini + Length(StartTag);
      S:= Copy(S,ini,lenS-ini+1);
      ini:=1;
      fin := Pos(EndTag, S);
      if (fin <> 0) and (fin > ini) then
          Result := Copy(S, ini, fin - ini);
   end;
end;

//------------------------------------------------------------------------------------

function TextAfter(S: string; StartTag: string): string;
var
  ini: Integer;
begin
  ini := Pos(StartTag, S);
  if ini <> 0 then
     Result := Copy(S, ini + Length(StartTag), Length(S)-ini+1)
  else
     Result := '';
end;

//------------------------------------------------------------------------------------

function DeleteTags(S: string): string;
var
   n, len, tag: Integer;
   c, p: char;
begin
   len    := Length(S);
   tag    := 0;
   p      := ' ';
   Result := '';
   for n := 1 to len do
   begin
      c := Copy(S,n,1);

      // Eliminamos los tabuladores
      if c = #9 then c := ' ';

      // Los espacios redundantes no se procesan
      if (c <> ' ') or (p <> ' ') then
      begin
         // Eliminamos los tags de HTML
         if tag = 0 then
         begin
            if c <> '<' then
            begin
               Result := Result + c;
               p := c;
            end
            else tag := 1;
         end
         else if c = '>' then tag := 0;
      end;
   end
   if p = ' ' then Result := Copy(Result, 1, Length(Result) - 1);
end;

//------------------------------------------------------------------------------------

procedure AnalyzePage(Address: string);
var
   Page: TStringList;
   LineNr: Integer;
   Line: string;
   Count: Integer;
   MovieTitle, MovieAddress: string;

begin
   Count := 0;
   Page  := TStringList.Create;
   Page.Text := GetPage(Address);
   PickTreeClear;

   // Get how much search results have been found
   
   // No encuentra las palabras "Resultados por título"¿?, busco la
   // linea anterior, y cojo la siguiente linea, le quito los espacios
   // y me quedo con el numerode peliculas.
   
   LineNr := FindLine('<div class="sub-header-search">', Page, 0);
   if LineNr <> -1 then
   begin
      LineNr := LineNr + 1;
      Line   := Page.GetString(LineNr);
      Line:= DeleteTags(Line);
      Line:= ConvertAlphaNum(Line);
      Count := StrToInt(Line,0);
   end;

   // Add the results to the PickTree
   if Count = 0 then
      ShowMessage('No se ha encontrado ningún registro')
   else
   begin
      LineNr := 0;
      while true do
      begin
         LineNr := FindLine('<div class="mc-title"><a href="', Page, LineNr + 1);
         if LineNr = -1 then
         begin
            LineNr := FindLine('siguientes >>', Page, 0);
            if LineNr = -1 then
               break;
            Line      := Page.GetString(LineNr);
            Page.Text := GetPage('http://www.filmaffinity.com/es/search.php' + TextBetween(Line, '<a href="search.php', '"><div class="'));
            LineNr    := 0;
            continue;
         end;

         Line         := Page.GetString(LineNr);
         MovieAddress := TextBetween(Line, '<div class="mc-title"><a href="', '.html">') + '.html';
         MovieTitle:= TextBetween(Line, '.html">', '<img src="');
         MovieTitle:= DeleteTags(MovieTitle);
         MovieTitle:= LineDecode(MovieTitle);
         if (Length(MovieAddress) <> 0) and (Length(MovieTitle) <> 0) then
            PickTreeAdd(MovieTitle, BaseURL + MovieAddress);
      end;

      if ((Count = 1) and (GetOption('DontAsk') = 1)) then
         AnalyzeMoviePage(BaseURL + MovieAddress)
      else
      begin
     
//
//         PickTreeSort;      // Si se quiere clasificar por orden alfabetico hay que activar el PickTreeSort, quitar las 2
//                            // las 2 barras "//" que hay a la izquierda la instrucción PickTreeSort y ya esta.
//
         PickTreeExec(Address);
         AnalyzeMoviePage(Address)
      end
   end;
   Page.Free;
end;

//------------------------------------------------------------------------------------

procedure AnalyzeMoviePage(Address: string);
var
   Page: TStringList;
   LineNr, LineInc: Integer;
   Line: string;
   Item: string;
   Comments: string;
   CharStar: string;
begin
   Comments := '';

   // URL
   SetField(fieldURL, Address);

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

   // Translated Title
   LineNr := FindLine('<h1 id="main-title">', Page, 0);
   Line := Page.GetString(LineNr);
   Item := DeleteTags(TextBetween(Line, '<h1 id="main-title">', '</h1>'));
   Item:= LineDecode(Item);
   SetField(fieldTranslatedTitle, Item);

   // Picture
   LineNr := FindLine('http://pics.filmaffinity.com/', Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr);
      Item := TextBetween(Line, '<a class="lightbox" href="', '" title="');
      if Length(Item) = 0 then
         Item := TextBetween(Line, '" src="', '"></a>');
      GetPicture(Item);
   end;

   // Rating
   LineNr := FindLine('<div id="movie-rat-avg" itemprop="ratingValue">', Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      Item := DeleteTags(Line);
      Item:= LineDecode(Item);
      SetField(fieldRating, StringReplace(Item, ',', '.'));
   end;

   // Original Title
   LineNr := FindLine(UTF8Encode('<dt>Título original</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      Item := DeleteTags(TextBetween(Line, '<dd>', '</dd>'));
      Item:= LineDecode(Item);
      SetField(fieldOriginalTitle, Item);
   end;

   // Year
   LineNr := FindLine(UTF8Encode('<dt>Año</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      Item := DeleteTags(TextBetween(Line, '<dd>', '</dd>'));
      Item:= LineDecode(Item);
      SetField(fieldYear, Item);
   end;

   // Length
   LineNr := FindLine(UTF8Encode('<dt>Duración</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      Item := DeleteTags(TextBetween(Line, '<dd>', 'min.</dd>'));
      Item:= LineDecode(Item);
      SetField(fieldLength, Item);
   end;

   // Country
   LineNr := FindLine(UTF8Encode('<dt>País</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      Item := DeleteTags(TextBetween(Line, 'title="', '"></span'));
      Item:= LineDecode(Item);
      SetField(fieldCountry, Item);
   end;
 
   // Director
   LineNr := FindLine(UTF8Encode('<dt>Director</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      Item := DeleteTags(TextBetween(Line, '<dd>', '</dd>'));
      Item:= LineDecode(Item);
      SetField(fieldDirector, Item);
   end;

   // Script writer
   LineNr := FindLine(UTF8Encode('<dt>Guión</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      Item := TextBetween(Line, '<dd>', '</dd>');
      Item:= LineDecode(Item);
      if ((CheckVersion(4,2,0) = true) and (GetOption('Force350') = 0)) then SetField(fieldWriter, Item)
      else   Comments := Comments + 'Guión: ' + Item + #13#10 + #13#10;
   end;

   // Composer
   LineNr := FindLine(UTF8Encode('Música'), Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      Item := TextBetween(Line, '<dd>', '</dd>');
      Item:= LineDecode(Item);
      if ((CheckVersion(4,2,0) = true) and (GetOption('Force350') = 0)) then SetField(fieldComposer, Item)
      else Comments := Comments + 'Música: ' + Item + #13#10 + #13#10;
   end;

   // Photography
   LineNr := FindLine(UTF8Encode('<dt>Fotografía</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      Item := TextBetween(Line, '<dd>', '</dd>');
      Item:= LineDecode(Item);
      Comments := Comments + 'Fotografía: ' + Item + #13#10 + #13#10;
   end;

   // Actors
   LineNr := FindLine(UTF8Encode('<dt>Reparto</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      if Length(TextBetween(Line, '<dd>', '</dd>')) = 0 then
         Item := DeleteTags(Line)
      else
          Item := DeleteTags(TextBetween(Line, '<dd>', '</dd>'));
          if GetOption('ActorsInALine') = 0 then
            Item := StringReplace(Item, ', ', #13#10);
      Item:= LineDecode(Item);
      SetField(fieldActors, Item);
   end;

   // Productor
   LineNr := FindLine(UTF8Encode('<dt>Productora</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      Item := DeleteTags(TextBetween(Line, '<dd>', '</dd>'));
      Item:= LineDecode(Item);
      SetField(fieldProducer, Item);
   end;

   // Category
   LineNr := FindLine(UTF8Encode('<dt>Género</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 2);
      Item := DeleteTags(Line);
      Item:= LineDecode(Item);
      Item := StringReplace(Item, ' | ', ', ');
      Item := StringReplace(Item, '. ', ', ');
      SetField(fieldCategory, Item);
   end;

   // Official Webpage
   LineNr := FindLine(UTF8Encode('<dt>Web oficial</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      Item := DeleteTags(TextBetween(Line, ' href="', '">'));
      Item:= LineDecode(Item);
      Comments := Comments + 'Web oficial: ' + Item + #13#10 + #13#10;
   end;

   // Synopsis
   LineNr := FindLine(UTF8Encode('<dt>Sinopsis</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      Item := DeleteTags(Line);
      Item:= LineDecode(Item);
      SetField(fieldDescription, Item);
   end;

   // Awards
   LineNr := FindLine(UTF8Encode('<dt>Premios</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      LineNr   := LineNr + 1;
      Line     := Page.GetString(LineNr);
      Comments := Comments + 'Premios: ' + #13#10;
      while Pos ('</dd>', Line) = 0 do
      begin
         if Pos ('<span id="show-all-awards">', Line) = 0 then
         begin
            Item := DeleteTags(Line);
            Item:= LineDecode(Item);
            if (Length(Item) <> 0) then
            begin
               Comments := Comments + '  - ' + Item + #13#10;
            end;
         end;
         LineNr := LineNr + 1;
         Line   := Page.GetString(LineNr);
      end;
      Comments := Comments + #13#10;
   end;

   // Critic
   LineNr := FindLine(UTF8Encode('<dt>Críticas</dt>'), Page, LineNr);
   if LineNr <> -1 then
   begin
      // El unico objeto de esta linea es poder presentar en el foro el listado
      // del script sin que se produzca la conversión del caracter estrella
     
      CharStar       := '&'+'#9733;' ;
      Comments := Comments + 'Críticas: ' + #13#10 + #13#10;
      LineNr := FindLine('<div class="pro-review">', Page, LineNr + 1);
      while LineNr <> -1 do
      begin
         LineNr := LineNr + 1;
         Line := Page.GetString(LineNr);
         if Pos (UTF8Encode('<a title="Leer crítica completa" href='), Line) <> 0 then
         begin
            LineNr := LineNr + 1;
            Line := Page.GetString(LineNr);
         end;
         Line:= StringReplace(Line, CharStar, '*');
         Item := DeleteTags(Line);
         Item:= LineDecode(Item);
         if (Length(Item) <> 0) then
         begin
            Comments := Comments + Item + #13#10;
            LineNr := FindLine('<div class="pro-crit-med">', Page, LineNr + 1);
            Line := Page.GetString(LineNr);
            Item := DeleteTags(Line);
            Item:= LineDecode(Item);
            if (Length(Item) <> 0) then
            begin
               Comments := Comments + Item + #13#10;
            end;
            Comments := Comments + '________________________________________' + #13#10 + #13#10;
         end;
         LineNr := FindLine('<div class="pro-review">', Page, LineNr + 1);
      end;
   end;

   HTMLDecode(Comments);
   SetField(fieldComments, Comments);
   if GetOption('DontWantExtras') = 0 then
      AnalyzeExtras(Page,Address);
end;

//------------------------------------------------------------------------------------
// Extras
procedure AnalyzeExtras(Page: TStringList; Address: string);
var
   LineNr,NumImages,NumTrailers, i,CountC: Integer;
   Line: string;
   TrailersAddress: string;
   ImagesAddress: string;
   ImageTitle: string;
   ExtraIndex: Integer;
   ExtraString: string;
   ExtraURL: string;
   ExtraTagBase: string;
   LimitImages,LimitTrailers,LimitCritics: Integer;

begin
   ExtraTagBase :=  'FA'+TextBetween(Address, '/film', '.html');
   ClearExtrasOfScript;
   LimitImages := StrtoInt (GetParam('ExtraImagesLimit'),0);
   if LimitImages < 0 then LimitImages := 0;
   LimitTrailers := StrtoInt (GetParam('ExtraTrailersLimit'),0);
   if LimitTrailers < 0 then LimitTrailers := 0;
   LimitCritics := StrtoInt (GetParam('ExtraCriticsLimit'),0);
   if LimitCritics < 0 then LimitCritics := 0;



// Enlaces a Criticas
   LineNr := FindLine(UTF8Encode('<dt>Críticas</dt>'), Page, LineNr);
   CountC := 0;
   if LineNr <> -1 then
   begin
      LineNr := FindLine('<div class="pro-review">', Page, LineNr + 1);
      while LineNr <> -1 do
      begin
         LineNr := LineNr + 1;
         Line := Page.GetString(LineNr);
         if Pos (UTF8Encode('<a title="Leer crítica completa" href='), Line) <> 0 then
         begin
            Line := Page.GetString(LineNr);
            ExtraURL:= TextBetween(Line, 'href="', '" ');
            if (Length(ExtraURL))>0 then
            begin
                 ExtraIndex := AddExtra();
                 SetExtraField(ExtraIndex, extraFieldURL, ExtraURL);
                 SetExtraField(ExtraIndex, extraFieldCategory, 'Críticas');
                 SetExtraField(ExtraIndex, extraFieldTitle, TextBetween(ExtraURL, '//', '/'));
                 SetExtraField(ExtraIndex, extraFieldTag, ExtraTagBase+'C'+IntToStr(ExtraIndex));
            end;
            LineNr := LineNr + 1;
            Line := Page.GetString(LineNr);
         end;
         LineNr := FindLine('<div class="pro-review">', Page, LineNr + 1);
         CountC := CountC+1;
         if CountC = LimitCritics then
             break;
      end;
   end;

   // Imágenes  y Trailers
   NumTrailers := 0;
   NumImages := 0;

   LineNr := FindLine(UTF8Encode('>Trailers <em>'), Page, 0);
   if LineNr <> -1 then
   begin
       Line := Page.GetString(LineNr);
       NumTrailers := StrToInt(TextBetween(Line, '<em>[', ']</em>'),0);
       TrailersAddress :=  'http://www.filmaffinity.com'+TextBetween(Line, 'href="', '"');
   end

   LineNr := FindLine(UTF8Encode('>Imágenes <em>'), Page, LineNr+1);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr);
      NumImages := StrToInt(TextBetween(Line, '<em>[', ']</em>'),0);
      ImagesAddress :=  'http://www.filmaffinity.com'+TextBetween(Line, 'href="', '"');
   end

   // Imágenes
   

   If NumImages > LimitImages then NumImages := LimitImages;
   if NumImages >0 then
   begin
      Page.Text := GetPage(ImagesAddress);
      LineNr := FindLine(UTF8Encode('<span>Posters</span>'), Page,0);
      if LineNr = -1 then
         LineNr := FindLine(UTF8Encode('<span>Movie Posters</span>'), Page,0);
      if LineNr =-1 then
         LineNr := FindLine(UTF8Encode('<span>Fotogramas</span>'), Page,0);
      if LineNr =-1 then
         LineNr := FindLine(UTF8Encode('span>Otros</span>'), Page,0);
      if LineNr <> -1 then
      begin
         Line := Page.GetString(LineNr);
         for i := 1 to NumImages do
         begin
             LineNr := FindLine('<a href="', Page, LineNr + 1);
             if LineNr <> -1 then
             begin
                Line := Page.GetString(LineNr);
                ExtraString := TextBetween(Line, 'href="', '"');
                ImageTitle := TextBetween(Line, 'Tipo: </strong>', '</div>');
                ExtraIndex := AddExtra();
                if GetOption('GroupImages') = 1 then
                begin
                   SetExtraField(ExtraIndex, extraFieldCategory, 'Imágenes');
                   SetExtraField(ExtraIndex, extraFieldTitle, ImageTitle);
                end
                else
                   begin
                      SetExtraField(ExtraIndex, extraFieldCategory, ImageTitle);
                      SetExtraField(ExtraIndex, extraFieldTitle, 'Imágenes')
                end;

               
                SetExtraField(ExtraIndex, extraFieldTag, ExtraTagBase+'I'+IntToStr(ExtraIndex));
                GetExtraPicture(ExtraIndex, ExtraString);
             end;
         end;
      end;
   end;

   If NumTrailers > LimitTrailers then NumTrailers := LimitTrailers;
   if NumTrailers > 0 then
   begin
      Page.Text := GetPage(TrailersAddress);
      LineNr := FindLine(UTF8Encode('>Mostrar video<'),Page,0);
      if LineNr <> -1 then
      begin
         Line := Page.GetString(LineNr);
         for i:= 1 to NumTrailers do
         begin
            LineNr := FindLine('src="', Page,LineNr + 1);
            if LineNr <> -1 then
            begin
               Line := Page.GetString(LineNr);
               ExtraString := TextBetween(Line, 'src="', '"');
               ExtraURL := TextAfter(ExtraString, '//');
               ExtraIndex := AddExtra();
               SetExtraField(ExtraIndex, extraFieldURL, ExtraURL);
               SetExtraField(ExtraIndex, extraFieldCategory, 'Trailers');
               SetExtraField(ExtraIndex, extraFieldTitle, TextBetween(ExtraString, '//', '/'))
               SetExtraField(ExtraIndex, extraFieldTag, ExtraTagBase+'T'+IntToStr(ExtraIndex));
               LineNr := FindLine(UTF8Encode('Mostrar video'), Page,LineNr + 1);
            end;
         end;
      end;
  end;
end;


//------------------------------------------------------------------------------------

begin
   if (CheckVersion(4,1,2) = false) then
   begin
      ShowMessage('Se requiere Ant Movie Catalog versión 4.1.2 o superior');
      exit;
   end;

   if (CheckVersion(4,2,0) = false) then
      SetOption('DontWantExtras', 1);

   MovieName := GetField(fieldOriginalTitle);
   if Length(MovieName) = 0 then
      MovieName := GetField(fieldTranslatedTitle);

   if GetOption('DontAsk') = 0 then
      Input('FilmAffinity', 'Pelicula:', MovieName);

   MovieName := UTF8Encode(MovieName);
   if Pos('filmaffinity.com', MovieName) > 0 then
      AnalyzeMoviePage(MovieName)
   else
      AnalyzePage(BaseURL +'/es/search.php?stext=' + UrlEncode(MovieName) + '&stype=Title');
end.
Probadla y comentar errores en este Post

Edito:
- Actualizo en este post la versión 2.71 para que no haya errores si alguien la copia del Post
- 20/05/2014 Actualizo a versión 2.72. Cambios en la Web
- 21/05/2014 Version 2.73 corregida Web Oficial
- 24/05/2014 Version 2.74 modificada captura de críticas se elimina seleccion de autor mediante variable LineInc
- 03/06/2014 Posibilidad de capturar extras si se usa versión 4.2
- 12/06/2014 Posiblilidad de limitar el numero de Extras
- 19/07/2014 Modificacion por cambios de codificación de carácter en la página han pasado de ISO a utf8
- 17/08/2014 Versión 2.81. Correcciones por el cambio a UTF8 se corrige el orden de decodificación UTF8 - HTML
- 22/11/2014 Coregido por raulsara los cambios en la página de busqueda de la página de FilmAffinity
Last edited by Arturo on 2014-11-29 11:24:40, edited 20 times in total.
antp
Site Admin
Posts: 9630
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

Thanks.
A ")" was missing in the script title, I added it in the file I updated on the server.
jacqlittle
Posts: 26
Joined: 2013-04-11 07:13:02

Post by jacqlittle »

Hola, pues curiosamente hasta esta misma mañana me iba bien el script anterior (versión 2.69) que no lo tenía actualizado, y hace un rato intenté actualizar los datos de una película y no me la encontraba.

Entonces me dispuse a actualizar el script ya que ví que estaba tu nueva versión, pero nada, me sigue sin localizar la película, así que comprobé varias películas por si fuera algo de ésta en concreto, pero nada, que no actualiza ninguna...

Si lo pudieras comprobar y revisar te lo agradecería muchísimo, ya que de momento estoy actualizando manualmente no a través del script, supongo que será por algo que posiblemente hayan cambiado en la web filmaffinity.es

Gracias de antemano y un cordial saludo.

Edit: por si te sirve de referencia, comentarte que el fallo creo que está a la hora de localizar las películas, si les pongo en vez del nombre la url de la película en Filmaffinity, funcionan tanto la versión 2.69 como la 2.70 del script...

Edit2: acabo de ver que has subido otra versión al servidor, la he probado y funciona!!! Muchas gracias ;)
malex-7
Posts: 2
Joined: 2014-05-16 03:25:14
Location: Vigo (Galicia)

Post by malex-7 »

Funciona la opción My rating?
Arturo
Posts: 52
Joined: 2013-04-11 16:28:52

Post by Arturo »

No entiendo bien la pregunta malex-7.
[My Rating] es un nuevo campo (no una opción) introducido en la versión 4.2 Hay que entender que es un campo para que el usuario intruduzca su valoración personal. Por tanto es ajeno al script, el cual si que captura el campo [Calificación] de la página de FIlmaffinity.
Hay que decir que este y otros campos no están todavia traducidos al español en la versión 4.2.0.2 actual. [My Rating] deberia ser [Mi calificación] asi como donde dice [Writer] deberia decir [Guionista]...
malex-7
Posts: 2
Joined: 2014-05-16 03:25:14
Location: Vigo (Galicia)

Post by malex-7 »

Vale. Lo que quería saber es si había opción de que el script leyera mis votaciones de FilmAffinity para que las actualizara directamente. Había visto en el Script de IMDb algo de User Ratings y pensaba que igual se podía pasar de manera automática, pero no controlo mucho de programación y supongo que no es viable debido a que tiene que entrar en la cuenta propia de FilmAffinity.
Gracias por la respuesta
Arturo
Posts: 52
Joined: 2013-04-11 16:28:52

Post by Arturo »

Ya entiendo lo que qerías decir. Y no, el script como está ahora no permite esa posibilidad. Como poder podria hacerse, pero personalmente creo que seria complicarlo en exceso, y su utilidad no sería para uso general.
PinkFloyd
Posts: 11
Joined: 2014-05-20 13:41:12

Post by PinkFloyd »

Hola Arturo:

Hasta ayer me funcionaba muy bien el script 2.71 de FilmAffinity, pero hoy no me aparecen defeterminados campos como: titulo original, país, año, duración y categoría.

¿A que podría deberse?

Gracias por tu inestimable ayuda.
Arturo
Posts: 52
Joined: 2013-04-11 16:28:52

Post by Arturo »

PinkFloyd wrote:Hola Arturo:

Hasta ayer me funcionaba muy bien el script 2.71 de FilmAffinity, pero hoy no me aparecen defeterminados campos como: titulo original, país, año, duración y categoría.

¿A que podría deberse?

Gracias por tu inestimable ayuda.
Se debe a que están cambiando la Web. Dejo en la primera entrada del post una nueva versión. Probadla, espero que funcione.
Pero pueden seguir los cambios en los próximos dias
jacqlittle
Posts: 26
Joined: 2013-04-11 07:13:02

Post by jacqlittle »

Comprobada la última versión 2.72 del script con varias películas, y parece que funciona todo correcto.

Muchas gracias, un cordial saludo. ;)

P.D.: si le parece bien a antp la podría subir al server

Edit: no sé si habrán hecho algún cambio más, pero algo que observo es que ahora la web oficial la han puesto arriba de la sinopsis en un campo independiente y antes estaba en los comentarios, supongo que modificar el script para ponerlo como estaba antes será muy lioso, y bueno tampoco es un campo crucial para la mayoría supongo...
PinkFloyd
Posts: 11
Joined: 2014-05-20 13:41:12

Post by PinkFloyd »

Muchas gracias por tu gentileza. Es increible la labor que desarrollas altruistamente.

Probado el script 2.72 y funciona a la perfección.

Un cordial saludo.
fotja
Posts: 4
Joined: 2013-04-13 08:14:39

Post by fotja »

Muchas gracias por tu trabajo Arturo al igual que los que han opinado arriba tambien te lo agradezco, he notado una cosa al catalogar una peli y es que el campo de "web oficial" no lo traspasa si sirve de algo para posteriores modificaciones, me ha pasado en concreto con esta peli:

http://www.filmaffinity.com/es/film419883.html

Gracias una vez mas. Salut.... Dewww...
Arturo
Posts: 52
Joined: 2013-04-11 16:28:52

Post by Arturo »

Arreglado lo de la Web Oficial.
Versión 2.73 en el primer post.

Saludos a todos
jacqlittle
Posts: 26
Joined: 2013-04-11 07:13:02

Post by jacqlittle »

¡Comprobado y funcionando a la perfección!

A ver si se están quietecitos estos de Filmaffinity una temporadita...

Un cordial saludo. :grinking:
corydora
Posts: 3
Joined: 2013-04-26 08:38:57

Post by corydora »

Muchas gracias.... :hihi:
m2s
Posts: 16
Joined: 2010-02-27 17:46:48

Post by m2s »

Hola,

En este momento importa correctamente las críticas, pero no importa el autor de las mismas.

Parece que funciona cambiando en la línea 354, donde dice "LineInc := 3;" por "LineInc := 2;"

Saludos
Arturo
Posts: 52
Joined: 2013-04-11 16:28:52

Post by Arturo »

Vale pues quitamos el LineInc a ver si funciona mejor o por mas tiempo
Saludos
jacqlittle
Posts: 26
Joined: 2013-04-11 07:13:02

Post by jacqlittle »

Pues no me había fijado la verdad, las últimas películas que importé con el script efectivamente no tenían el autor de las críticas, ahora solucionado del todo, a ver si lo ve antp y lo sube al servidor, de todos modos hay una pequeña errata sin importancia en el script del primer post, al final sobra una sentencia "end." creo...

Muchísimas gracias de nuevo, haces una labor increíble Arturo, un cordial saludo.
Arturo
Posts: 52
Joined: 2013-04-11 16:28:52

Post by Arturo »

Pues si, al pegar sobre el post se habia quedado, al final, un end de la antigua versión. Corregido
Arturo
Posts: 52
Joined: 2013-04-11 16:28:52

Post by Arturo »

Versión 2.75.
Se añade la posibilidad de capturar extras de la página como:
- Enlaces a las páginas de críticas
- Imágenes
- Trailers
Esto solo funciona a partir de la version 4.2.0.2. En versiones anteriores funciona como hasta ahora.
Aún en la versión 4.2.0.2, si no se desea la captura de extras, basta con tener la opción DontWantExtras con valor = 1. (Valor por defecto)
Post Reply