Page 1 of 2

[Update] FilmAffinity (ES) v2.50 (nov 2011)

Posted: 2011-11-10 13:46:01
by morfius
FilmAffinity (ES) v2.50 (nov 2011)

Update today. Works fine for me. For you?
Greetins from Spain

[Spanish translation]
Actualizado hoy. A mi me va de perlas, ¿y a ti?
Nos vemos


Link en Megaupload de FilmAffinity (ES) v2.50 (nov 2011)

Edit: Critics in Script don't work. I don't like other reviewers except mine ;)
Edit: Las críticas suelen ser del tipo "el asesino es el mayordomo" y claro, antes de ver la peli pues como que fastidia un poco.

Perfecto

Posted: 2011-11-10 14:56:42
by Protasio
Muchas gracias por la rapidez. Va perfecto.

Gracias de nuevo

Posted: 2011-11-10 15:07:13
by morfius
gracias a ti por probarlo ;)

Posted: 2011-11-10 15:20:45
by saintwolf
Te lo agradezco muchísimo. Para los que dependemos mucho del AMC para ordenar la colección de películas, aunque sólo fuera unos días ya era un problema que hubiera dejado de funcionar.

Un saludo

Posted: 2011-11-10 15:47:17
by z3us
Pues me alegro que ya lo tengáis solucionado. Aún así, os recomiendo probar MediaPortal y el plugin MyFilms para reproducir las películas de vuestro catálogo, es sensacional. (y gratis)
http://forum.team-mediaportal.com/my-films-164/

Posted: 2011-11-10 16:11:58
by Pegaso
Mil gracias morfius!!

Sólo una cosita...
En versiones anteriores, se importaban las "Críticas" (las oficiales que aparecen en filmaffinity, no las de los usuarios), bajo la descripción.

¿Sería posible que se sigan importando?

Gracias!

Posted: 2011-11-10 16:35:01
by morfius
Pegaso wrote:Mil gracias morfius!!

Sólo una cosita...
En versiones anteriores, se importaban las "Críticas" (las oficiales que aparecen en filmaffinity, no las de los usuarios), bajo la descripción.

¿Sería posible que se sigan importando?

Gracias!
Ya lo estudiaré, pero tendría que actualizar de versión, subir de nuevo a mega.. etc. en fin un rollo patatero para algo que, además, no me gusta.


Gracias a todos por probarlo ;)

Posted: 2011-11-10 17:36:33
by Pegaso
morfius wrote:
Ya lo estudiaré, pero tendría que actualizar de versión, subir de nuevo a mega.. etc. en fin un rollo patatero para algo que, además, no me gusta.


Gracias a todos por probarlo ;)
Bueno... si sabes el código a incluir, bastaría con que me digas dónde ponerlo, y puedo editarlo yo mismo... :-)

¿Alguna pista aunque sea?

Y gracias a ti.

campo actores

Posted: 2011-11-10 17:42:35
by crack1986
hola. alguien sabria como modificar el texto para k los actores salgan separados por comas en vez de por cmabios de lines?

Posted: 2011-11-10 17:58:10
by ertejeonline
Funcionaaa!!!

Muchas gracias.

El año no me lo cogía, lo he cambiado en el script por

Code: Select all

   // Year
   LineNr := FindLine('<th>AÑO</th>', Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 2);
// A CONTINUACIÓN LA ÚNICA LINEA QUE HE CAMBIADO
      Item := TextBetween(Line, '</div>      ', '    </td>');
      HTMLDecode(Item);
      SetField(fieldYear, Trim(Item));
   end;
Y ya funciona, Saludos!

Posted: 2011-11-10 18:46:25
by ChessPlayer
Pues a mí no :cry: . Me he bajado el rar de MU, he extraído el .ifs y he sustituído el viejo por el nuevo, he reinicializado y ¡nada!. He probado con dos películas: Destructor (1943) y Ciudad de vida y muerte (2009), una antigua y otra moderna y lo único que localiza es la URL de la película.

Posted: 2011-11-10 20:22:55
by rozy11
ChessPlayer wrote:Pues a mí no :cry: . Me he bajado el rar de MU, he extraído el .ifs y he sustituído el viejo por el nuevo, he reinicializado y ¡nada!. He probado con dos películas: Destructor (1943) y Ciudad de vida y muerte (2009), una antigua y otra moderna y lo único que localiza es la URL de la película.
Ola a mi tambien me pasaba eso!!Haz esto:
1-Abre el scrip que descargaste con el wordpad,selecciona todo el texto y copialo!
2-Abre el ANT Movie y en herramientas vas a scripping y seleccionas el scrip de filmaffinity y le das a EDITOR borras todo eso y copias el texto que descargaste
3-Guardas y ya funciona!!

Salu2!!!

Re: campo actores

Posted: 2011-11-10 21:28:11
by morfius
crack1986 wrote:hola. alguien sabria como modificar el texto para k los actores salgan separados por comas en vez de por cmabios de lines?

Code: Select all

// cambia #13#10 por  ', ' coma y espacio entre apóstrofos
// en las dos líneas del tratamiento de Actors

     Actors := TextBetween(Line, '">', '</a>') + ', ';
     while Pos('stype=cast', Line) > 0 do
        Actors := Actors + TextBetween(Line, '"> ', '</a>') + ', ';
Un saludo

Posted: 2011-11-10 21:47:48
by morfius
ertejeonline wrote:Funcionaaa!!!

Muchas gracias.

El año no me lo cogía, lo he cambiado en el script por
Efectivamente el código web es distinto si la peli tiene un link al trailer

por ejemplo

Schindler's List NO tiene trailer

Code: Select all

<td><strong>Schindler's List</strong></td>
  </tr>

  <tr>
    <th>AÑO</th>
    <td>
            1993    </td>
Avatar SI tiene trailer

Code: Select all

<td><strong>Avatar</strong></td>
  </tr>

  <tr>
    <th>AÑO</th>
    <td>
      <div style="float:right;"><a href="http://www.apple.com/trailers/fox/avatar/" target="_blank">Ver trailer externo</a></div>      2009    </td>
Seguro que habrá más errores, dado que mi capacidad de comprobación es limitada, así que en unos días corregiré todos los errores que aquí indiquéis.

OJO si se cambia el código por el que propone nuestro amigo ertejeonline, dejará de calcular el año para las que no tienen trailer. Os recomiendo esperar un par de días.

En cualquier caso gracias de nuevo por vuestra colaboración.

Posted: 2011-11-10 21:52:19
by morfius
Sin menospreciar a nadie, los problemas de ChessPlayer y rozy11 no parece que tengan que ver con este script en concreto, y sería mejor no complicar el tema inicial. Gracias de nuevo

Posted: 2011-11-10 22:13:03
by morfius
El tema del campo Año parece que se soluciona para todas las películas con este nuevo código:

Code: Select all

   // Year
   LineNr := FindLine('<th>AÑO</th>', Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 2);

      if Pos('Ver trailer', Line) > 0 then
        Item := TextBetween(Line, '</div>      ', '</td>')
      else
      begin
        Item := TextBetween(Line, '     ', '</td>')
      end;
      HTMLDecode(Item);
      SetField(fieldYear, Trim(Item));
   end;
Hasta que no pasen unos días no habrá más versiones y una solución global, pero iré posteando las soluciones locales a los problemas aquí planteados

Posted: 2011-11-10 22:35:19
by Pegaso
Otra solución posible para le problema del Año, más de andar por casa, pero es la que se me ocurrió y parece que funciona ;-)

Code: Select all

   // Year
   LineNr := FindLine('<th>AÑO</th>', Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 2);
      Item := TextBetween(Line, '</div>      ', '    </td>');
      Item := Item + TextBetween(Line, '     ', '</td>');
      HTMLDecode(Item);
      SetField(fieldYear, Trim(Item));
   end;

Por cierto, ya encontré la manera de cazar el campo de críticas que se eliminaron en esta versión :grinking:

Posted: 2011-11-10 23:07:29
by ChessPlayer
rozy11 wrote:
ChessPlayer wrote:Pues a mí no :cry: . Me he bajado el rar de MU, he extraído el .ifs y he sustituído el viejo por el nuevo, he reinicializado y ¡nada!. He probado con dos películas: Destructor (1943) y Ciudad de vida y muerte (2009), una antigua y otra moderna y lo único que localiza es la URL de la película.
Ola a mi tambien me pasaba eso!!Haz esto:
1-Abre el scrip que descargaste con el wordpad,selecciona todo el texto y copialo!
2-Abre el ANT Movie y en herramientas vas a scripping y seleccionas el scrip de filmaffinity y le das a EDITOR borras todo eso y copias el texto que descargaste
3-Guardas y ya funciona!!

Salu2!!!
¡Gracias! Ahora ya va.

Posted: 2011-11-11 00:21:04
by javienigma
Yo he actualizado a la v2.50 y de momento no he tenido problema con los años. Respecto a la separación de los actores, la verdad es que lo prefiero con cambio de renglón...
Por cierto, ya encontré la manera de cazar el campo de críticas que se eliminaron en esta versión
¿Cómo? Esto si me gustaría añadirlo al script.

No obstante, estaré pendiente por si sale una versión actualizada con todas las mejoras.

Gracias por los aportes!

Posted: 2011-11-11 07:58:36
by Pegaso
javienigma wrote: ¿Cómo? Esto si me gustaría añadirlo al script.

No obstante, estaré pendiente por si sale una versión actualizada con todas las mejoras.
Por lo que me pareció entender a morfius cuando planteé el tema, es posible que el apartado de Críticas no se incluya en la versión final...
Si así fuese, tendrás que modificarlo tú mismo a mano, pero no es demasiado difícil :)

Sobre la versión 2.50 que está en este post, lo más sencillo es añadir las críticas en la sección de Comentarios.
Para ello, sólo tienes que pegar este trozo de código:
(lo puedes poner, por ejemplo, antes de // Category)

Code: Select all

   // Critic
   LineNr := FindLine('<th>CRÍTICAS</th>', Page, LineNr);
   if LineNr <> -1 then
   begin
      Comments := Comments + 'Críticas: ' + #13#10;
      LineNr := LineNr + 3;
      Item := Page.GetString(LineNr);
      while Pos ('</tr>', Item) = 0 do
      begin
         while Pos('<br>', Item) <> 0 do
            Item := StringReplace(Item, '<br>', #13#10);
         while Pos('</br>', Item) <> 0 do
            Item := StringReplace(Item, '</br>', #13#10);
         while Pos('  ', Item) <> 0 do
            Item := StringReplace(Item, '  ', ' ');
         Comments := Comments + DeleteTags(Item);
         LineNr := LineNr + 1;
         Item := Page.GetString(LineNr);
      end;
   end;
Con eso debería ser suficiente para que aparezcan las Críticas en la zona de Comentarios.


Sin embargo, yo prefiero tener las críticas bajo la Sinopsis, en el campo de Descripción... (como estaba en las primeras versiones).

Para hacer eso, el procedimiento es un poco más complejo.


- Primero: añadir una nueva variable para el campo de Descripción.
Busca:

Code: Select all

procedure AnalyzeMoviePage(Address: string);
var
Añade bajo esas líneas:

Code: Select all

   Description: string;

-Segundo: Modifica la captura de la Sinopsis, para que se añada a esa nueva variable:

Code: Select all

   // Synopsis
   LineNr := FindLine('<th>SINOPSIS</th>', Page, LineNr);
   if LineNr <> -1 then
   begin
      Line := Page.GetString(LineNr + 1);
      Item := TextBetween(Line, '<td>', '</td>');
      Description := Description + Trim(Item) + #13#10 + #13#10 + #13#10;
   end;

-Tercero: captura las Críticas y las metes en la misma variable, pegando esto después del código anterior:

Code: Select all

   // Critic
   LineNr := FindLine('<th>CRÍTICAS</th>', Page, LineNr);
   if LineNr <> -1 then
   begin
      Description := Description + 'Críticas: ' + #13#10;
      LineNr := LineNr + 3;
      Item := Page.GetString(LineNr);
      while Pos ('</tr>', Item) = 0 do
      begin
         while Pos('<br>', Item) <> 0 do
            Item := StringReplace(Item, '<br>', #13#10);
         while Pos('</br>', Item) <> 0 do
            Item := StringReplace(Item, '</br>', #13#10);
         while Pos('  ', Item) <> 0 do
            Item := StringReplace(Item, '  ', ' ');
         Description := Description + DeleteTags(Item);
         LineNr := LineNr + 1;
         Item := Page.GetString(LineNr);
      end;
   end;

-Cuarto: Define el campo de Descripción, para que aparezcan la Sinopsis y las Críticas.
Busca:

Code: Select all

      HTMLDecode(Comments);
      SetField(fieldComments, Comments);
Pega justo debajo (y encima de "end;"):

Code: Select all

      HTMLDecode(Description);
      SetField(fieldDescription, Description);
Y con eso tienes las Críticas en el apartado de Descripción ;)