def ejecutar_Entender_un_género_cinematográfico(catalog, genre_name): movies = co.getMoviesByGenre(catalog, genre_name) print("Las peliculas de la compañia de producción son: \b") for i in range(1, lt.size(movies["movie"]) + 1): print( lt.getElement(movies["movie"], i)['title'], "\b", lt.getElement(movies["movie"], i)['vote_count']) print('estas tienen una Votacion promedio de', str(movies["vote_count"])) print('La cantidad de peliculas es de', str(lt.size(movies['movie'])))
def printMoviesByGenre(catalog, genreName): moviesByGenre = controller.getMoviesByGenre(catalog, genreName) iterator = it.newIterator(moviesByGenre["movies"]) while it.hasNext(iterator): movie = it.next(iterator) print(movie["title"]) size = controller.genreMoviesSize(catalog, genreName) promedio = controller.averageByGenre(catalog, genreName) print("\nSe encontraron "+ str(size) +" películas") print("El promedio de votos de las películas del género "+genreName+" es: "+str(round(promedio,1)))
def printGenre(catalogo1, genreName): info = controller.getMoviesByGenre(catalogo1, genreName) if info: print('genero encontrado encontrado: ' + info['name']) print('Promedio: ' + str(info['vote_average'])) print('Total de votos: ' + str(info['vote_count'])) print('Total de peliculas: ' + str(lt.size(info['movies']))) iterator = it.newIterator(info['movies']) while it.hasNext(iterator): movie = it.next(iterator) print(movie['original_title']) else: print('No se encontro el genero')
def printMenu(): ejecuta = True while ejecuta: print("\n**Explorando la magia del cine recargado**") print ("Bienvenido, las siguientes son las opciones que puede consultar:\n") print("1- Cargar Datos") print("2- Cargar información en el catálogo") print("3- Descubrir productoras de cine") #req 1 print("4- Conocer a un director") #req 2 print("5- Conocer a un actor") #req 3 print("6- Entender un género cinematográfico") #req 4 print("7- Encontrar películas por país") #req 5 print("0- Salir") inputs = input('\nSeleccione una opción para continuar\n') if int(inputs[0]) == 1: print ("cargando archivos...") tempcatalogostart = process_time() #inicia temporizador catalog = controller.IniciarCatalogo() tempcatalogostop = process_time() #Termina temporizador print("\nCatálogo vacío creado, tiempo de carga: ",tempcatalogostop-tempcatalogostart," segundos") elif int(inputs[0]) == 2: tempcargastart = process_time() controller.cargardatos(catalog,csvdetalles,csvcasting) tempcargastop = process_time() print("\nSe cargaron en total {} datos al catálogo, tiempo de carga: {} segundos" .format(lt.size(catalog["pelis"]),tempcargastop-tempcargastart)) #print (lt.size(catalog["pelis"])) elif int(inputs[0]) == 3: producername = input("Nombre de la productora de interes:\n") tempconsultstart = process_time() #inicia temporizador producerinfor = controller.getMoviesByProducer(catalog,producername) iterator = it.newIterator(producerinfor["movies"]) print ("\nLas películas que han sido creadas por {}, son:\n".format(producername)) indicepelicula = 0 while it.hasNext(iterator): element = it.next(iterator) indicepelicula += 1 print(str(indicepelicula) + ". " + element) print("\nEstas películas tuvieron un promedio de votación de: {}" .format(round(producerinfor["vote_average"], 3))) tempconsultstop = process_time() #termina temporizador print("\nEl tiempo que tardó esta consulta es de: {} segundos" .format(tempconsultstop-tempconsultstart)) elif int(inputs[0]) == 4: DirectorName = input("Ingrese el nombre del director para el cual quiera conocer sus películas:\n") ValueDirector = controller.getMoviesByDirector(catalog,DirectorName) iterator=it.newIterator(ValueDirector["movies"]) print("\n{} ha dirigido en total {} peliculas, estas son:\n" .format(DirectorName, (ValueDirector['movies']['size']))) sumatoria = 0 while it.hasNext(iterator): element=it.next(iterator) movie=controller.getMovieByid(catalog,element) print("-> "+ movie["original_title"]) sumatoria += float((movie["vote_average"])) print ("\nEstas películas tuvieron una votación promedio de {}." .format (str ( round ( (sumatoria/ValueDirector['movies']['size']) ,2)))) pass #Aki Kaurismäki elif int(inputs[0]) == 5: actorname = input("Nombre del actor de interes:\n") actorinfor = controller.getMoviesByActor(catalog,actorname) iterator=it.newIterator(actorinfor["movies"]) print("Las peliculas en las que ha actuado" + actorname + "son : ") suma= 0 while it.hasNext(iterator): element=it.next(iterator) movie=controller.getMovieByid(catalog,element) print("->"+movie["original_title"]) suma +=float((movie["vote_average"])) print("La cantidad de peliculas en las que ha actuado es "+str(lt.size(actorinfor["movies"]))) print("El promedio de votacion de todas sus peliculas es "+str(round(suma/lt.size(actorinfor["movies"]),2))) print("El director con el que más ha participado es "+actorinfor["director"]) pass elif int(inputs[0]) == 6: name = input("Nombre de el genero de interes\n") tempconsultstart = process_time() #inicia temporizador genreinfo = controller.getMoviesByGenre(catalog,name) iterator = it.newIterator(genreinfo["movies"]) print ("\nLas películas que pertenecen al genero {}, son:\n".format(name)) indicepelicula = 0 while it.hasNext(iterator): element = it.next(iterator) indicepelicula += 1 print(str(indicepelicula) + ". " + element) print("\nEstas películas tuvieron un promedio de votación de: {}" .format(round(genreinfo["vote_average"], 3))) tempconsultstop = process_time() #termina temporizador print("\nEl tiempo que tardó esta consulta es de: {} segundos" .format(tempconsultstop-tempconsultstart)) elif int(inputs[0]) == 7: CountryName = input("Ingrese el nombre del país para el cual le interese conocer las películas que allí fueron producidas:\n") ValuePerCountry = controller.getMoviesByCountry(catalog,CountryName) iterator=it.newIterator(ValuePerCountry["movies"]) print("\nEn {} se han producido en total {} peliculas, estas son:\n" .format(CountryName, (ValuePerCountry['movies']['size']))) while it.hasNext(iterator): element=it.next(iterator) movie=controller.getMovieByid(catalog,element) movie2=controller.getMovieByid2(catalog,element) date=movie["release_date"] print("-> "+ movie["original_title"]+","+ date +","+movie2["director_name"]) # Finland elif int(inputs[0]) == 0: ejecuta = False
controller.loadData(cont, smallmoviesfile, smallcastingfile, moviesfile, castingfile) t1_start = process_time() print('Peliculas (Details) cargadas: ' + str(controller.movies1Size(cont))) print('Peliculas (CastingRaw) cargadas: ' + str(controller.movies2Size(cont))) t1_stop = process_time() elif int(inputs[0]) == 3: t1_start = process_time() nombre = input("Digite el nombre de la compañia:") movies = controller.getMoviesByProductionCompanie(cont, nombre) PrintRQ1(movies) elif int(inputs[0]) == 4: nombre = input("Ingrese el nombre del director que desea conocer:\n") director = controller.getMoviesByDirector(cont, nombre) PrintRQ2(director) elif int(inputs[0]) == 5: nombre = input("Ingrese el nombre de un actor que desea conocer:\n") director = controller.getMoviesByActor(cont, nombre) PrintRQ3(director) elif int(inputs[0]) == 6: nombre = input("Ingrese el genero de película que desea conocer:\n") director = controller.getMoviesByGenre(cont, nombre) PrintRQ4(director) elif int(inputs[0]) == 7: nombre = input("Ingrese el nombre del país a filtrar:\n") director = controller.getMoviesByPais(cont, nombre) PrintRQ5(director) else: sys.exit(0) sys.exit(0)
elif int(inputs[0]) == 2: print("Cargando información de los archivos") controller.loadDataMovies(cont, moviesDetails, moviesCasting) print("Peliculas cargadas: " + str(controller.moviesSize(cont))) print("Casting cargados: " + str(controller.castingsSize(cont))) print("Actores cargados: " + str(controller.actorsSize(cont))) elif int(inputs[0]) == 3: actor = input("A al que desea conocer: ") actorinformacion = controller.getMoviesByActor(catalog, actor) print(actorinformacion) elif int(inputs[0]) == 4: director = input("Director al que busca: ") directorinfo = controller.getMoviesbyDirector(director) printDirectorData(directorinfo) elif int(intput[0]) == 5: tiempo = process_time() gen = intput("Ingrese el genero deseado") gen = controller.inputGenre(catalog, gen) for genero in gen: Movies = controller.getMoviesByGenre(cont, gen) print(Movies) print("la candidad de peliculas son ") + str( controller.genreSize(Movies)) #elif int(inputs[0]) == 6: # pais = input("País al que busca: ") # paisinfo = controller. else: sys.exit(0) sys.exit(0)
print("\n") print(director_name+" tiene "+str(size)+ " películas. \n") print("El promedio de la calificación de sus películas es "+str(vote_avarage) +"\n") printList(movies) print("\n") elif int(inputs[0]) == 5: actor_name = input("Ingrese el nombre del actor que quiere buscar\n") movies,size,vote_avarage,director = controller.getMoviesByActor(catalogo, actor_name) print("\n") print(actor_name+" tiene "+str(size)+ " películas. \n") print("El promedio de la calificación de sus películas es "+str(vote_avarage) +"\n") print("El director con quien mas ha trabajado es "+director +"\n") printList(movies) print("\n") elif int(inputs[0]) == 6: genre_name = input("Ingrese el genero que quiere buscar\n") movies,size,vote_count = controller.getMoviesByGenre(catalogo, genre_name) print("\n") print(str(size)+ " películas son del genero " + genre_name + "\n") print("El promedio de la calificación de las películas es "+str(vote_count) +"\n") printList(movies) print("\n") elif int(inputs[0]) == 7: country_name = input("ingrese el nombre del país que quiere buscar\n") country=controller.getMoviesByCountry(catalogo,country_name) print("\n") printListTuple(country) else: sys.exit(0) sys.exit(0)
controller.loadData(cont, moviesfile, castingfile) print('Películas cargadas: ' + str(controller.booksSize(cont))) print("Productoras cargados: " + str(controller.companiesSize(cont))) print("Directores cargados: " + str(controller.directorSize(cont))) print("Actores cargados: " + str(controller.actorSize(cont))) print("Géneros cargados: " + str(controller.genresSize(cont))) print("Paises cargados: " + str(controller.countrySize(cont))) elif int(inputs[0]) == 3: nombre = input("Ingrese el nombre de la productora deseada: \n" + ": ") companyinfo = controller.getMoviesByCompany(cont, nombre) printCompanyData(companyinfo) elif int(inputs[0]) == 4: name = input("Ingrese el nombre del director: \n" + ": ") movies = controller.getBooksByTag(cont, name) printDirectorData(movies) elif int(inputs[0]) == 5: actor = input("ingrese el nombre del actor: \n" + ": ") actores = controller.getMovieByActor(cont, actor) printActorData(actores) elif int(inputs[0]) == 6: genero = input("Ingrese el género a buscar: \n" + ": ") genreinfo = controller.getMoviesByGenre(cont, genero) printGenreData(genreinfo) elif int(inputs[0]) == 7: pais = input("Ingrese el país a buscar: \n" + ": ") countryinfo = controller.getMoviesByCountry(cont, pais) printCountryData(countryinfo) else: sys.exit(0) sys.exit(0)
def main(): """ Método principal del programa, se encarga de manejar todos los metodos adicionales creados Instancia una lista vacia en la cual se guardarán los datos cargados desde el archivo Args: None Return: None """ while True: printMenu() #imprimir el menu de opciones en consola inputs = input( 'Seleccione una opción para continuar\n') #leer opción ingresada if len(inputs) > 0: if int(inputs[0]) == 1: #opcion 1 tamano_catalogo = input( 'Que tamaño de catalogo desea cargar: \n1- 2000 peliculas\n2- 300000+ peliculas\n' ) #leer opción ingresada if tamano_catalogo == "1": archivo_casting = "Data\MoviesCastingRaw-small.csv" archivo_details = "Data\SmallMoviesDetailsCleaned.csv" elif tamano_catalogo == "2": archivo_casting = "Data\AllMoviesCastingRaw.csv" archivo_details = "Data\AllMoviesDetailsCleaned.csv" else: print("Opción invalida. Se cargará la versión 1.") archivo_casting = "Data\MoviesCastingRaw-small.csv" archivo_details = "Data\SmallMoviesDetailsCleaned.csv" t1 = process_time() print("Inicializando Catálogo ....") # cont es el controlador que se usará de acá en adelante cont = controller.initCatalog() print("Cargando información de los archivos ....") controller.loadData(cont, (archivo_details), (archivo_casting)) t2 = process_time() print("Tiempo de carga: {}".format(t2 - t1)) print('Numero peliculas cargadas: ' + str(controller.detailSize(cont))) #print(controller.encontrarElemento(cont,1)) #print(controller.encontrarElemento(cont,2000)) elif int(inputs[0]) == 2: #opcion 2 print("Se encontraron {} productoras".format( controller.productorasSize(cont))) productorname = input("Nombre de la productora a buscar: ") t1 = process_time() productorinfo = controller.getMoviesByProductora( cont, productorname) printProductoraData(productorinfo) t2 = process_time() print("Tiempo de carga: {}".format(t2 - t1)) elif int(inputs[0]) == 3: #opcion 3 print("Se encontraron {} directores".format( controller.directoresSize(cont))) directorname = input("Nombre de la productora a buscar: ") t1 = process_time() directorinfo = controller.getMoviesByDirector( cont, directorname) printDirectorData(directorinfo, cont) t2 = process_time() print("Tiempo de carga: {}".format(t2 - t1)) elif int(inputs[0]) == 4: #opcion 4 print("Se encontraron {} actores".format( controller.actoresSize(cont))) actorname = input("Nombre del actor a buscar: ") t1 = process_time() actorinfo = controller.getMoviesByActor(cont, actorname) printActorData(actorinfo, cont) t2 = process_time() print("Tiempo de carga: {}".format(t2 - t1)) elif int(inputs[0]) == 5: #opcion 5 print("Se encontraron {} generos".format( controller.genresSize(cont))) genrename = input("Nombre del genero a buscar: ") t1 = process_time() genreinfo = controller.getMoviesByGenre(cont, genrename) printGenreData(genreinfo, cont) t2 = process_time() print("Tiempo de carga: {}".format(t2 - t1)) elif int(inputs[0]) == 6: #opcion 6 print("Se encontraron {} paises".format( controller.countriesSize(cont))) countryname = input( "Nombre de la productora a buscar (El nombre del paíz está en ingles) : " ) t1 = process_time() countryinfo = controller.getMoviesByCountry(cont, countryname) printCountryData(countryinfo, cont) t2 = process_time() print("Tiempo de carga: {}".format(t2 - t1)) elif int(inputs[0]) == 0: sys.exit(0)