示例#1
0
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))
示例#2
0
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"])
示例#3
0
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))
示例#5
0
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
示例#6
0
        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:
示例#8
0
        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(
示例#9
0
            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: 
示例#10
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)
示例#11
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":