コード例 #1
0
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))
コード例 #2
0
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)
コード例 #3
0
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')
コード例 #4
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
コード例 #5
0
        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)
コード例 #6
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:
コード例 #7
0
     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:
コード例 #8
0
        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)
コード例 #9
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)
コード例 #10
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()
コード例 #11
0
        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")