MaDDoGo/metadata.filmaffinity.com

algunas miniaturas de filmaffinity no se descargan

Closed this issue · 2 comments

algunas películas como Nixon o Ace Ventura parecen contener un código distinto para mostrar las miniaturas, lo que hace que el scraper no alcance a llegar a la información gráfica de la película. asumiendo que es posible que esta información gráfica no exista (al menos yo no la encuentro), y teniendo en cuenta que esto me ha ocurrido en un insignificante 2% de mi biblioteca que puedo perfectamente corregir a mano, estoy barajando 2 opciones por si pudiera dejarlo automatizado:

  1. descargar la miniatura a pelo de filmaffinity
  2. descargar primero la miniatura de IMDB y sobreescribirla en caso de encontrarla en filmaffinity después

los 2 ejemplos anteriores, por si a alguien más le interesan, son estos:
Nixon (1995): http://www.filmaffinity.com/es/film737736.html
Ace Ventura (1994): http://www.filmaffinity.com/es/film884197.html

la clave de los posters y miniaturas de filmaffinity se basa en el código del link "sección visual", pero hay películas que carecen de tal código y a pesar de eso sí tienen sección visual. ya que el scraper parsea dicha sección en cuanto se le pasa su dirección, lo único importante es extraer el ID de la película y apuntar directamente a donde debería estar tal sección. para ello el scraper actual v1.4.2 apunta a http://www.filmaffinity.com/es/filmimages.php\1, luego lo que nos hace falta es extraer el ID de otro modo que no sea el actual. sugiero pues modificar la línea 119
<a href="/es/filmimages.php([^"]+)
por una sencilla búsqueda del ID
(?movie_id[^"]+)

una vez con el ID, la función debería poder trabajar sin problemas, pero en las películas en las que no consta "sección visual" de manera explícita he comprobado que no hay código del carrusel sobre el que se apoya la búsqueda de posters, por lo que sugiero mantener el código actual y añadir dentro del RegExp de GetFilmAffinityPosters la siguiente línea 233
"http://pics.filmaffinity.com/([^"]*)
haciendo que se mantenga la búsqueda anterior de posters dentro del carrusel, y a mayores extraiga la miniatura principal de la película, sea cual sea.

bonus: el código que usa filmaffinity para describir los posters es 'Posters' o 'Poster / Imagen principal', por lo que el código de la expresión de la línea 232 debería eliminar el texto "s'," reduciéndose a
url_l: 'http://pics.filmaffinity.com/([^\']*)\', description: '', type_id: 'Poster

intentaré implementar esto en el código de github, a ver si lo consigo ;)

he modificado ligeramente el código de la expresión regular de la función GetFilmAffinityPosters corrigiendo su sintáxis, y creo haber hecho correctamente la petición de inclusión de los cambios en filmaffinity.xml y changelog.txt, así que esto es todo. saludos.