def printMoviesByActor(catalog, actorName): moviesByActor = controller.getMoviesByActor(catalog, actorName) iterator = it.newIterator(moviesByActor["movies"]) while it.hasNext(iterator): movieId = it.next(iterator) movie = controller.linkIdToMovieDetail(catalog, movieId) print(movie["title"]) print("El promedio es de: ", round(controller.averageByActor(catalog, actorName),1)) print("La cantidad de películas es de : ", controller.actorSize(catalog, actorName))
def ejecutar_Conocer_a_un_actor(catalog, actor_name): t1 = time.process_time_ns() movies = co.getMoviesByActor(catalog, actor_name) print("Las peliculas en las que participa el actor son:\b") for i in range(1, lt.size(movies["movie"]) + 1): print(lt.getElement(movies["movie"], i)['title'], "\b") print('estas tienen una calificación promedio de ', round(movies["average_rating"], 2), " y son un total de", str(movies["number_movies"])) t2 = time.process_time_ns() print('el algoritmo se demora: ', t2 - t1)
def printActor(catalogo1, actorName): info = controller.getMoviesByActor(catalogo1, actorName) if info: print('actor 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']) mayor=0 quien="" for i in range (info['directors']['size']): element = lt.getElement(info['directors'], i) if int(element['veces'])> mayor: mayor=int(element['veces']) quien=element['name'] print('director con mas colaboraciones: ' + quien) else: print('No se encontro el actor')
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)
while True: printMenu() inputs = input("Seleccione una opción para continuar\n") if int(inputs[0]) == 1: print("Inicializando Catálogo...") cont = controller.initCatalog() 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:
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: 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:
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( "ingrese el nombre del pais que desea conocer:\n ") country_info = controller.getMoviesByCountry(cont, country_name) printCountryData(country_info) elif int(inputs[0]) == 0: print("Muchas gracias. ") 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)
if productioncompanyinfo: print('\nProductora encontrada: ' + productioncompanyinfo['name'].title()) printElementData(productioncompanyinfo) else: print('No se encontró la productora') elif int(inputs[0]) == 3: director_name = input("¿Qué director de cine desea conocer?:\n") director_name = director_name.lower() director_info = controller.getMoviesByDirector(cont, director_name) print("\nDirector encontrado: " + director_name.title()) printElementData(director_info) elif int(inputs[0]) == 4: actor = input("¿Qué actor de cine desea conocer?:\n") actor = actor.lower() actorinfo = controller.getMoviesByActor(cont, actor) if actorinfo: print('\nActor encontrado: ' + actor.title()) printElementData(actorinfo) if actorinfo["DirectorMaxCol"] != None: print("El director con el que " + actor.title() + " más ha colaborado es: " + actorinfo["DirectorMaxCol"]) else: print( "El actor " + actor.title() + " ha colaborado con varios directores en mismas cantidades, como: " + actorinfo["directors"][0]) else: print('No se encontró el actor') elif int(inputs[0]) == 5: genre = input("¿Qué género desea consultar?: \n").lower()
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": needoflist = True elif needoflist.lower() == "no": needoflist = False t5_start = process_time() #tiempo inicial movies_genre = controller.getMoviesBygenre(cont, genrename.title()) t5_stop = process_time() #tiempo final print("Tiempo de ejecución ", t5_stop - t5_start, " segundos")