#! /usr/Bin/env gbs3 '########################################## '# '# '# 9 '# 27/09/2011 '# 19/02/2012 '# Ángel Romero Astorga '# ARomeroAstorga@gmail.com '# titulo,trailer,tituloOriginal,año,paises,generos,formato,duracion,direccion,guion,musica,fotografia,produccion,reparto,sinopsis,valoracion,caratula,url '# thumbs,series '# '# '########################################## Public salida As String Public Sub main() Dim opcion As String ' Opcion opcion = Application.Args[1] ' Busqueda If opcion = "busqueda" Then If Exist(User.Home &/ ".omediamanager/temp/salida_busqueda.tmp") Then Kill User.Home &/ ".omediamanager/temp/salida_busqueda.tmp" busqueda(Application.Args[2], Application.Args[3], Application.Args[4]) End If ' Ficha If opcion = "ficha" Then If Exist(User.Home &/ ".omediamanager/temp/salida_ficha.tmp") Then Kill User.Home &/ ".omediamanager/temp/salida_ficha.tmp" If Application.Args[3] = 0 Or Application.Args[3] = 3 Then fichaPelicula(Application.Args[2]) If Application.Args[3] = 1 Or Application.Args[3] = 2 Then fichaSerie(Application.Args[2]) End If ' Episodio If opcion = "episodio" Then If Exist(User.Home &/ ".omediamanager/temp/salida_episodio.tmp") Then Kill User.Home &/ ".omediamanager/temp/salida_episodio.tmp" episodio(Application.Args[2], Application.Args[3], Application.Args[4], Application.Args[5]) File.Save(User.Home &/ ".omediamanager/temp/salida_episodio.tmp", salida) End If ' Prueba del episodio If opcion = "episodioPrueba" Then If Exist(User.Home &/ ".omediamanager/temp/salida_episodio.tmp") Then Kill User.Home &/ ".omediamanager/temp/salida_episodio.tmp" episodio(Application.Args[2], -1, -1, False) File.Save(User.Home &/ ".omediamanager/temp/salida_episodio.tmp", salida) End If End Public Sub busqueda(titulo As String, pagina As Integer, medio As Integer) If medio = 0 Or medio = 3 Then busquedaPelicula(titulo, pagina) If medio = 1 Or medio = 2 Then busquedaSerie(titulo, pagina) End Public Sub busquedaPelicula(titulo As String, pagina As Integer) Dim url As String, path As String ' URL y path url = "http://www.cineol.net/api/busquedapeliculas.php?apiKey=cfdvkFD&search=" & html_word(titulo) path = User.Home &/ ".omediamanager/temp/busqueda.tmp" ' Obtengo el resultado descargarArchivo(url, path) ' Compruebo que se descargó correctamente If Len(file.load(path)) > 0 Then ' Llamo al parseo del resultado resultadosBusquedaPelicula End If End Public Sub busquedaSerie(titulo As String, pagina As Integer) Dim url As String, path As String ' URL y path url = "http://www.cineol.net/search.php?search=" & html_word(titulo) & "&select=4&button=Buscar" path = User.Home &/ ".omediamanager/temp/busqueda.tmp" ' Obtengo el resultado descargarArchivo(url, path) ' Compruebo que se descargó correctamente If Len(file.load(path)) > 0 Then ' Llamo al parseo del resultado resultadosBusquedaSerie End If End Public Sub resultadosBusquedaPelicula() Dim texto As String Dim i As Integer, j As Integer, final As Integer, pos As Integer Dim codigo As String, titulo As String, anho As String, director As String, reparto As String, imagen As String Dim contenido As String Dim archivo As File ' El archivo existe (lo comprobe antes): lo abro y lo leo archivo = Open user.home &/ ".omediamanager/temp/busqueda.tmp" For Read Read #archivo, contenido, Lof(archivo) ' Cierro el archivo archivo.Close ' Sustituyo las comillas por asteriscos (cuestion practica) texto = Replace$(contenido, Chr$(34), "$") ' Compruebo que es el tipo de archivo que quiero (resultados de busqueda) If InStr(contenido, "") > 0 Then ' Busqueda de peliculas pos = InStr(texto, "") Do While pos > 0 ' Calculo el final del bloque final = InStr(texto, "", pos + 1) ' Inicializo los valores (los demas siempre se machacan) reparto = "" director = "" ' Codigo i = InStr(texto, "http://www.cineol.net/api/peliculaxml.php?id=", pos) + Len("http://www.cineol.net/api/peliculaxml.php?id=") j = InStr(texto, "<", i) codigo = Mid$(texto, i, j - i) ' Imagen imagen = "http://www.cineol.net/galeria/carteles/" & codigo & ".jpg" ' Titulo i = InStr(texto, "", pos) + 8 j = InStr(texto, "<", i) titulo = Mid$(texto, i, j - i) titulo = eliminar_parentesis(titulo) titulo = Trim(titulo) If Right(titulo, 4) = ", El" Then titulo = "El " & Left(titulo, Len(titulo) - 4) If Right(titulo, 4) = ", La" Then titulo = "La " & Left(titulo, Len(titulo) - 4) If Right(titulo, 5) = ", Las" Then titulo = "Las " & Left(titulo, Len(titulo) - 5) If Right(titulo, 5) = ", Los" Then titulo = "Los " & Left(titulo, Len(titulo) - 5) If Right(titulo, 5) = ", Una" Then titulo = "Una " & Left(titulo, Len(titulo) - 5) If Right(titulo, 4) = ", Un" Then titulo = "Un " & Left(titulo, Len(titulo) - 4) ' Año i = InStr(texto, "", pos) + 6 anho = Mid$(texto, i, 4) ' Agrego el elemento a la lista add_search_list(codigo, titulo, anho, director, reparto, imagen) ' Avanzo hasta el siguiente elemento (hacen falta 2 saltos) pos = InStr(texto, "", pos + 1) Loop Else salida = "" End If If Exist(User.Home &/ ".omediamanager/temp/salida_busqueda.tmp") Then Kill User.Home &/ ".omediamanager/temp/salida_busqueda.tmp" File.Save(User.Home &/ ".omediamanager/temp/salida_busqueda.tmp", salida) End Public Sub resultadosBusquedaSerie() Dim texto As String Dim i As Integer, j As Integer, final As Integer, pos As Integer Dim codigo As String, titulo As String, anho As String, director As String, reparto As String, imagen As String Dim contenido As String Dim archivo As File ' El archivo existe (lo comprobe antes): lo abro y lo leo archivo = Open user.home &/ ".omediamanager/temp/busqueda.tmp" For Read Read #archivo, contenido, Lof(archivo) ' Cierro el archivo archivo.Close ' Sustituyo las comillas por asteriscos (cuestion practica) texto = Replace$(contenido, Chr$(34), "$") ' Compruebo que es el tipo de archivo que quiero (resultados de busqueda) If InStr(contenido, "no hemos encontrado") = 0 Then ' Busqueda de peliculas pos = InStr(texto, "
") Do While pos > 0 ' Calculo el final del bloque final = InStr(texto, "", pos + 1) ' Inicializo los valores (los demas siempre se machacan) director = "" anho = "" ' Codigo i = InStr(texto, "serie/", pos) + Len("serie/") j = InStr(texto, "$", i) codigo = Mid$(texto, i, j - i) ' Imagen imagen = Left(codigo, InStr(codigo, "_") - 1) imagen = "http://www.cineol.net/galeria/series/" & imagen & ".jpg" ' Titulo i = InStr(texto, "

", pos) + 4 j = InStr(texto, "", i) titulo = Mid$(texto, i, j - i) titulo = eliminar_etiquetas(titulo) titulo = eliminar_parentesis(titulo) titulo = Trim(titulo) ' Reparto reparto = "" ' Agrego el elemento a la lista add_search_list(codigo, titulo, anho, director, reparto, imagen) ' Avanzo hasta el siguiente elemento (hacen falta 2 saltos) pos = InStr(texto, "
", pos + 1) Loop Else salida = "" End If If Exist(User.Home &/ ".omediamanager/temp/salida_busqueda.tmp") Then Kill User.Home &/ ".omediamanager/temp/salida_busqueda.tmp" File.Save(User.Home &/ ".omediamanager/temp/salida_busqueda.tmp", salida) End Public Sub fichaPelicula(codigo As String) Dim proceso As Process Dim texto As String Dim fichero As File Dim i As Integer, j As Integer Dim titulo As String, titulo_original As String, duracion As String, trailer As String, anho As String, generos As String, paises As String, direccion As String, guion As String, fotografia As String, musica As String, produccion As String, reparto As String, sinopsis As String, strValoracion As String, caratula As String, url As String, Formato As String ' Descargo el archivo descargarArchivo("http://www.cineol.net/api/peliculaxml.php?apiKey=cfdvkFD&id=" & codigo, User.Home &/ ".omediamanager/temp/ficha.tmp") ' Abro y leo el archivo fichero = Open User.Home &/ ".omediamanager/temp/ficha.tmp" For Read Read #fichero, texto, Lof(fichero) fichero.Close ' Me aseguro de que la descarga no falló If Len(texto) = 0 Then Return End If ' Sustituyo las comillas por asteriscos texto = Replace$(texto, Chr$(34), "$") ' Titulo titulo = textoEntre(texto, "", "") ' Titulo original titulo_original = textoEntre(texto, "", "") ' Duracion duracion = textoEntre(texto, "", "") & " min." ' Año anho = textoEntre(texto, "", "") ' Género generos = textoEntre(texto, "", "") generos = Replace(generos, " / ", ", ") generos = Replace(generos, " /", ", ") generos = Replace(generos, "/ ", ", ") generos = Replace(generos, "/", ", ") ' Pais paises = textoEntre(texto, "", "") paises = Replace(paises, " / ", ", ") paises = Replace(paises, " /", ", ") paises = Replace(paises, "/ ", ", ") paises = Replace(paises, "/", ", ") ' Formato formato = textoEntre(texto, "", "") ' Director Direccion = textoEntre(texto, "", "") Direccion = Replace(Direccion, Chr(10), "") Direccion = Replace(Direccion, "", "", "(") Direccion = Replace(Direccion, "", ")") Direccion = Replace(Direccion, "", ", ") Direccion = eliminar_etiquetas(Direccion) Direccion = eliminar_espacios_dobles(Direccion) Direccion = Trim(Left(Direccion, Len(Direccion) - 2)) Direccion = Replace(Direccion, " , ", ", ") ' Guion Guion = textoEntre(texto, "", "") Guion = Replace(Guion, Chr(10), "") Guion = Replace(Guion, "", "", "(") Guion = Replace(Guion, "", ")") Guion = Replace(Guion, "", ", ") Guion = eliminar_etiquetas(Guion) Guion = eliminar_espacios_dobles(Guion) Guion = Trim(Left(Guion, Len(Guion) - 2)) Guion = Replace(guion, " , ", ", ") ' Música musica = textoEntre(texto, "", "") musica = Replace(musica, Chr(10), "") musica = Replace(musica, "", "", "(") musica = Replace(musica, "", ")") musica = Replace(musica, "", ", ") musica = eliminar_etiquetas(musica) musica = eliminar_espacios_dobles(musica) musica = Trim(Left(musica, Len(musica) - 2)) musica = Replace(musica, " , ", ", ") ' Fotografia fotografia = textoEntre(texto, "", "") fotografia = Replace(fotografia, Chr(10), "") fotografia = Replace(fotografia, "", "", "(") fotografia = Replace(fotografia, "", ")") fotografia = Replace(fotografia, "", ", ") fotografia = eliminar_etiquetas(fotografia) fotografia = eliminar_espacios_dobles(fotografia) fotografia = Trim(Left(fotografia, Len(fotografia) - 2)) fotografia = Replace(fotografia, " , ", ", ") ' Produccion produccion = textoEntre(texto, "", "") produccion = Replace(produccion, Chr(10), "") produccion = Replace(produccion, "", "", "(") produccion = Replace(produccion, "", ")") produccion = Replace(produccion, "", ", ") produccion = eliminar_etiquetas(produccion) produccion = eliminar_espacios_dobles(produccion) produccion = Trim(Left(produccion, Len(produccion) - 2)) produccion = Replace(produccion, " , ", ", ") ' Reparto reparto = textoEntre(texto, "", "") reparto = Replace(reparto, Chr(10), "") reparto = Replace(reparto, "", "", ", ") reparto = Replace(reparto, "", "(") reparto = Replace(reparto, "", ")") reparto = eliminar_etiquetas(reparto) reparto = eliminar_espacios_dobles(reparto) reparto = Trim(Left(reparto, Len(reparto) - 2)) reparto = Replace(reparto, " , ", ", ") ' Trailer trailer = textoEntre(texto, "", "") If trailer <> "" Then trailer = "http://www.dailymotion.com/video/" & trailer End If ' Sinopsis sinopsis = textoEntre(texto, "", "") Sinopsis = Replace(Sinopsis, Chr(10), "") ' Valoracion StrValoracion = Left(textoEntre(texto, "", ""), 3) ' Caratula caratula = textoEntre(texto, "", "") If caratula = "" Then caratula = textoEntre(texto, "", "") End If ' URL url = textoEntre(texto, "", "") ' SALIDA salida = "" salida = salida & "" & titulo & "\n" salida = salida & "" & titulo_original & "\n" salida = salida & "" & duracion & "\n" salida = salida & "" & generos & "\n" salida = salida & "" & paises & "\n" salida = salida & "" & anho & "\n" salida = salida & "" & Formato & "\n" salida = salida & "" & direccion & "\n" salida = salida & "" & guion & "\n" salida = salida & "" & musica & "\n" salida = salida & "" & fotografia & "\n" salida = salida & "" & produccion & "" salida = salida & "" & reparto & "\n" salida = salida & "" & sinopsis & "\n" salida = salida & "" & strValoracion & "\n" salida = salida & "" & caratula & "\n" salida = salida & "" & trailer & "\n" salida = salida & "" & url & "\n" ' Guardo la salida If Exist(User.home &/ ".omediamanager/temp/salida_ficha.tmp", salida) Then Kill User.home &/ ".omediamanager/temp/salida_ficha.tmp" File.save(User.home &/ ".omediamanager/temp/salida_ficha.tmp", salida) End Public Sub fichaSerie(codigo As String) Dim proceso As Process Dim texto As String Dim fichero As File Dim i As Integer, j As Integer Dim titulo As String, titulo_original As String, duracion As String, trailer As String, anho As String, generos As String, paises As String, direccion As String, guion As String, fotografia As String, musica As String, produccion As String, reparto As String, sinopsis As String, strValoracion As String, caratula As String, url As String, Formato As String ' Descargo el archivo descargarArchivo("http://www.cineol.net/serie/" & codigo, User.Home &/ ".omediamanager/temp/ficha.tmp") ' Abro y leo el archivo fichero = Open User.Home &/ ".omediamanager/temp/ficha.tmp" For Read Read #fichero, texto, Lof(fichero) fichero.Close ' Me aseguro de que la descarga no falló If Len(texto) = 0 Then Return End If ' Sustituyo las comillas por asteriscos texto = Replace$(texto, Chr$(34), "$") ' Titulo titulo = textoEntre(texto, "
  • Titulo: ", "
  • ") ' Titulo original titulo_original = textoEntre(texto, "
  • Titulo original: ", "
  • ") ' Anho anho = textoEntre(texto, "
  • Año: ", " -") ' Formato anho = textoEntre(texto, "
  • Formato: ", "
  • ") ' Duracion duracion = textoEntre(texto, "
  • Duración media: ", "
  • ") ' Género generos = textoEntre(texto, "
  • Género: ", "
  • ") generos = eliminar_etiquetas(generos) generos = Replace(generos, " / ", ", ") generos = Trim(generos) ' Paises paises = textoEntre(texto, "
  • País: ", "
  • ") ' Director direccion = textoEntre(texto, "
  • Creador: ", "
  • ") If direccion <> "" Then direccion = eliminar_etiquetas(direccion) direccion = Trim(Replace(direccion, " / ", ", ")) End If ' Musica musica = textoEntre(texto, "
  • Música: ", "
  • ") If musica <> "" Then musica = eliminar_etiquetas(musica) musica = Trim(Replace(musica, " / ", ", ")) End If ' Productor produccion = textoEntre(texto, "
  • Canal: ", "
  • ") ' Reparto reparto = textoEntre(texto, "Personaje", "
    ") reparto = eliminar_parentesis(reparto) reparto = Replace(reparto, "", " (") reparto = Replace(reparto, "Personaje", "), ") reparto = Replace(reparto, "Actor", "") reparto = Replace(reparto, Chr(9), "") reparto = Replace(reparto, Chr(10), "") reparto = Replace(reparto, Chr(13), "") Do While InStr(reparto, " ") > 0 reparto = Replace(reparto, " ", " ") Loop reparto = eliminar_etiquetas(reparto) reparto = Replace(reparto, " )", ")") reparto = Trim(reparto) & ")" ' Caratula caratula = Left(codigo, InStr(codigo, "_") - 1) caratula = "http://www.cineol.net/galeria/series/" & caratula & ".jpg" If InStr(texto, " 0 Then i = InStr(texto, "Sinopsis

    ", "
    ")) sinopsis = Replace(sinopsis, "
    ", Chr(10)) sinopsis = eliminar_etiquetas(sinopsis) sinopsis = Trim(sinopsis) ' Valoracion If InStr(texto, "Puntuación de") > 0 Then strValoracion = textoEntre(texto, "Puntuación de", "") strValoracion = Left(strValoracion, 3) End If ' URL url = "http://www.cineol.net/serie/" & codigo ' SALIDA salida = "" salida = salida & "" & titulo & "\n" salida = salida & "" & titulo_original & "\n" salida = salida & "" & duracion & "\n" salida = salida & "" & generos & "\n" salida = salida & "" & paises & "\n" salida = salida & "" & anho & "\n" salida = salida & "" & Formato & "\n" salida = salida & "" & direccion & "\n" salida = salida & "" & guion & "\n" salida = salida & "" & musica & "\n" salida = salida & "" & fotografia & "\n" salida = salida & "" & produccion & "" salida = salida & "" & reparto & "\n" salida = salida & "" & sinopsis & "\n" salida = salida & "" & strValoracion & "\n" salida = salida & "" & caratula & "\n" salida = salida & "" & trailer & "\n" salida = salida & "" & url & "\n" ' Guardo la salida If Exist(User.home &/ ".omediamanager/temp/salida_ficha.tmp", salida) Then Kill User.home &/ ".omediamanager/temp/salida_ficha.tmp" File.save(User.home &/ ".omediamanager/temp/salida_ficha.tmp", salida) End '######################################################## '##Episodio '######################################################## ' PASO 1 - ¿Es una web válida? Y el script? Es válido? Public Sub episodio(web As String, temporada As Integer, capitulo As Integer, especial As Boolean) Dim codigo As String ' Tengo que detectar si la web es válida If Left(web, Len("http://www.cineol.net/serie/")) = "http://www.cineol.net/serie/" Then If temporada = -1 And capitulo = -1 Then salida = "