def printMoviesByDirector(catalog, directorName): moviesByDirector = controller.getMoviesByDirector(catalog, directorName) iterator = it.newIterator(moviesByDirector["movies"]) while it.hasNext(iterator): movieId = it.next(iterator) movie = controller.linkIdToMovieDetail(catalog, movieId) print(movie["title"]) print("El promedio es de: ", round(controller.averageByDirector(catalog, directorName),1)) print("La cantidad de películas es de : ", controller.DirectorSize(catalog, directorName))
def ejecutar_Conocer_a_un_director(criteria, catalog): direct = co.getMoviesByDirector(catalog, criteria) print("Las peliculas del director ", criteria, "son ", lt.size(direct["movie"]), " las cuales se nombraran en el siguiente listado: \n") for k in range(1, lt.size(direct["movie"]) + 1): print(lt.getElement(direct["movie"], k)['title'], "\b") print("Las anteriores tienen un promedio de calificación de: ", direct["average_rating"])
def printDirector(catalogo1, directorName): info = controller.getMoviesByDirector(catalogo1, directorName) if info: print('director 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 director')
def printMoviesByDirector(director): ''' Imprime los datos del director ''' data = controller.getMoviesByDirector(cont, director) if data == 0: print("No se halló el director ingresado") return -1 else: titles, vote_average, quantity = data print('Películas dirigidas por el director:') print(titles) print('Cantidad de películas dirigidas por el director: ' + str(quantity)) print('Promedio de calificación de las películas de este director: ' + str(vote_average))
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
print("Cargando información de los archivos ....") 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)
print("Cargando películas ....") catalog,size,first,last = controller.cargarPeliculas(catalogo, casting_large, details_large) print("Se cargaron "+str(size)+ " películas"+"\n") printMovieData(first) printMovieData(last) elif int(inputs[0]) == 3: comp_name = input("Ingrese el nombre de la productora de cine que quiere buscar\n") movies,size,vote_avarage = controller.getMoviesByProdComp(catalogo, comp_name) print("\n") print("La productora "+comp_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]) == 4: director_name = input("Ingrese el nombre del director que quiere buscar\n") movies,size,vote_avarage = controller.getMoviesByDirector(catalogo, director_name) 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:
lista_unida = controller.loadData(cont, Detailsfile, Castingfile) controller.funciones(cont, lista_unida) print('Peliculas cargadas: ' + str(controller.moviesSize(cont))) #print("Detalles de la primera y ultima pelicula: \n" + controller.firstANDlast_details(cont)) elif int(inputs[0]) == 3: t1_start = process_time() #Inicio de cronometro company_name = input("Ingrese el nombre de la productora: \n") company_info = controller.getMoviesByCompany(cont, company_name) printCompanyData(company_info) elif int(inputs[0]) == 4: director_name = input( "Ingrese el nombre del director que desea conocer:\n") director_info = controller.getMoviesByDirector(cont, director_name) printDirectorData(director_info) elif int(inputs[0]) == 5: actor_name = input("Ingrese el nombre del actor:\n") actor_info = controller.getMoviesByActor(cont, actor_name) #directorM = controller.getDir_Act(cont) printActorData(actor_info) elif int(inputs[0]) == 6: genres_name = input("Ingrese el género: \n") genres_info = controller.getMoviesByGenres(cont, genres_name) printGenresData(genres_info) elif int(inputs[0]) == 7: country_name = input(
archivo = "theMoviesdb/AllMoviesDetailsCleaned.csv" archivo2 = "theMoviesdb/AllMoviesCastingRaw.csv" catalogo_peliculas = controller.initCatalog() print("Inicializando Catálogo ....") lista_p = controller.loadPeliculas(catalogo_peliculas, archivo) casting = controller.loadPeliculas(catalogo_peliculas, archivo2) numero_cargadas = lt.size(lista_p) print("Se cargaron ",numero_cargadas," peliculas") elif int(inputs[0])==2: #opcion 2 ncomp = input(print("Nombre de la compañia a buscar:\n")) Comp = controller.getMoviesByCompany(catalogo_peliculas, ncomp) printCompanyData(Comp) elif int(inputs[0])==3: #opcion 3 ndirector = input(print("Nombre del director a buscar:\n")) direc = controller.getMoviesByDirector(catalogo_peliculas, ndirector) printDirectorData(direc) elif int(inputs[0])==3: #opcion 4 if catalogo_peliculas==None: print("El catálogo no existe") else: genero = input("Escriba el género cinematográfico: ") res_genero = controller.getEntenderGenero(genero, map_p) lista_genero = res_genero[0] numero = res_genero[1] votos = res_genero[2] print("Lista de peliculas:",lista_genero,"\n") print("Numero de peliculas:",numero,"\n") print("Promedio de votos:",votos,"\n") elif int(inputs[0])==4: #opcion 5 if catalogo_peliculas==None:
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)
t1_stop = process_time() #tiempo final print("Tiempo de ejecución ", t1_stop - t1_start, " segundos") print('Películas cargadas: ' + str(controller.moviesSize(cont))) elif int(inputs[0]) == 3: producer = input("Buscando películas de la productora?: ") t2_start = process_time() #tiempo inicial moviesproductor = controller.getMoviesByProducer(cont, producer) t2_stop = process_time() #tiempo final print("Tiempo de ejecución ", t2_stop - t2_start, " segundos") printMoviesByProducer(moviesproductor) elif int(inputs[0]) == 4: directorname = input("Buscando películas de director?: ") t3_start = process_time() #tiempo inicial movies_director = controller.getMoviesByDirector(cont, directorname) t3_stop = process_time() #tiempo final print("Tiempo de ejecución ", t3_stop - t3_start, " segundos") printMoviesByDirector(movies_director) elif int(inputs[0]) == 5: actorname = input("Buscando películas de actor?: ") t4_start = process_time() #tiempo inicial movies_actor = controller.getMoviesByActor(cont, actorname) t4_stop = process_time() #tiempo final print("Tiempo de ejecución ", t4_stop - t4_start, " segundos") printMoviesByActor(movies_actor) elif int(inputs[0]) == 6: genrename = input("Buscando películas del género: ") needoflist = input( "Necesitas saber la lista de películas del género?: Si/No: ") if needoflist.lower() == "si":