cantidadConnectedComponents = controller.connectedComponents( analyzer) # REQ1 controller.mstPRIM(analyzer) controller.loadBFS(analyzer) elif int(inputs[0]) == 2: # Req 1 print( f"\nTotal de clústeres en el grafo: {cantidadConnectedComponents}") vertexA = input( "\nIngrese el nombre del primer Landing Point(Ej. Redondo Beach):\n~ " ) vertexB = input( "\nIngrese el nombre del segundo Landing Point(Ej. Vung Tau):\n~ ") resultadoREQ1 = controller.requerimiento1(analyzer, vertexA, vertexB) if (resultadoREQ1)[0]: print(f"\n{vertexA} y {vertexB} SÍ están en el mismo Cluster.") # Para el req 8: pathREQ1 = (controller.path(analyzer, resultadoREQ1[1][0], resultadoREQ1[1][1])) else: print(f"\n{vertexA} y {vertexB} NO están en el mismo Cluster.") elif int(inputs[0]) == 3: # Req 2 verticeMasArcosReq2 = printReq2(
print("Cargando información en el catalogo.............") controller.loadData(diccionario) print("datos cargados correctamente") for i in range(1, 6): video = lt.getElement(diccionario['audio-events'], i) print(i, " : ", video) size = lt.size(diccionario['audio-events']) for i in range(size - 5, size + 1): video = lt.getElement(diccionario['audio-events'], i) print(i, " :", video) print("Se han cargado un total de : ", controller.events_size(diccionario), " eventos de escucha") print(" Total de Autores : ", controller.artists_size(diccionario)) print(" Total de canciones: ", controller.songs_size(diccionario)) elif int(inputs[0]) == 3: caracteristica = input("indique la caracteristica de contenido") minm = (input("Indique el valor minimo")) maxm = (input("Indique el valor maximo")) lista = controller.requerimiento1(diccionario, caracteristica, minm, maxm) print("Cantidad total de eventos de escucha : ", lista) elif int(inputs[0]) == 4: pass elif int(inputs[0]) == 5: pass elif int(inputs[0]) == 6: print("XD") else: sys.exit(0) sys.exit(0)
print("\nCargando información de eventos ....") controller.loadData(catalog) print('\n-Eventos cargados: ' + str(controller.sizeList(catalog, "eventos"))) print('\n-Canciones únicas: ' + str(controller.sizeMap(catalog, "track_id"))) printResults(catalog["eventos"]) print('\n-Artistas únicos: ' + str(controller.sizeMap(catalog, "artist_id"))) elif int(inputs[0]) == 3: caracteristica = input("Ingrese la característica: ") menor = float(input("Ingrese el rango menor: ")) mayor = float(input("Ingrese el rango mayor: ")) # caracteristica, menor, mayor = 'instrumentalness', 0.75, 1.0 # respuesta = controller.requerimiento1(catalog, menor, mayor, caracteristica) printReq1(menor, mayor, respuesta[2]) print("\nTiempo [ms]: ", f"{respuesta[0]:.3f}", " || ", "Memoria [kB]: ", f"{respuesta[1]:.3f}") print("\nSe ejecutó el requerimiento 1\n") elif int(inputs[0]) == 4: menor1 = float(input("Ingrese el rango menor de Energy: ")) mayor1 = float(input("Ingrese el rango mayor de Energy: ")) menor2 = float(input("Ingrese el rango menor de Danceability: ")) mayor2 = float(input("Ingrese el rango mayor de Danceability: ")) # menor1, mayor1, menor2, mayor2 = 0.5, 0.75, 0.75, 1.0 #
numero = int(input(("Indique tamaño de la muestra "))) tag = input("Indique el tag ") lista = controller.videosLikesCategory(catalog, tag) for i in range(1, numero): video = lt.getElement(lista, i) print("titulo: ", video["title"], " id: ", video["category_id"], " likes: ", video["likes"]) elif inputs == 3: tamano = int(input("Ingrese la cantidad de videos en el ranking ")) pais = input("Ingrese el nombre del pais ") categoria = input("Ingrese la categoria que desea buscar ") print("cargando...") lista = controller.requerimiento1(catalog, pais, categoria) for i in range(1, tamano + 1): x = lt.getElement(lista[0], i) print(i, " : ", "Titulo: ", x["title"], " dia tendencia: ", x["trending_date"], " canal: ", x["channel_title"], " fecha_publicación: ", x["publish_time"], " vistas: ", x["views"], " likes: ", x["likes"], " dislikes: ", x["dislikes"], " pais: ", x["country"], " categoria: ", x["category_id"]) print("el algoritmo se demora: ", lista[1], " ms") elif inputs == 4: pais = input("Ingrese el nombre del pais ") print("cargando...") video_dias = controller.requerimiento2(catalog, pais)
""" Menu principal """ while True: printMenu() inputs = input('Seleccione una opción para continuar\n') if int(inputs[0]) == 1: print("Cargando información de los archivos ....") catalog = initcatalog() elif int(inputs[0]) == 2: carac = input('Diga la característica que busca: ') val_min= float(input('Diga el valor mínimo que debe tener la característica: ')) val_max= float(input('Diga el valor máximo que debe tener la característica: ')) rta = controller.requerimiento1(catalog, carac, val_min, val_max) print(carac, " está entre ", val_min, " y ", val_max) print("Total de reproducciones: ", rta[1], " Total de artistas únicos: ", rta[0]) elif int(inputs[0]) == 3: min_e = float(input("Diga el valor mínimo de energy.")) max_e = float(input("Diga el valor máximo de energy.")) min_d = float(input("Diga el valor mínimo de danceability.")) max_d = float(input("Diga el valor máximo de danceability.")) rta = controller.requerimiento2(catalog, min_e,max_e, min_d, max_d) total_tracks = rta[1] tracks = rta[0] track1 = tracks[0][0] track2 = tracks[1][0]
catalog = controller.initCatalog() elif int(inputs[0]) == 2: print("Cargando información de los archivos ....") answer = controller.loadData(catalog) print('Videos cargados: ' + str(controller.videosSize(catalog))) print('Categorias cargados: ' + str(controller.categoSize(catalog))) print("Tiempo [ms]: ", f"{answer[0]:.3f}", " || ", "Memoria [kB]: ", f"{answer[1]:.3f}") elif int(inputs[0]) == 3: categg = input("Indique la categoria: ") categ = controller.buscarcateporname(categg, catalog) pais = input("Indique el pais: ") siz = input("Indique tamaño de la muestra: ") result = controller.requerimiento1(catalog, int(siz), categ, pais) print("Los ", siz, " videos con mas likes son:") printvieostop(result) elif int(inputs[0]) == 4: pais = input("Indique el pais: ") repuesta = controller.requerimiento2(catalog, pais) if lt.size(repuesta) <= 0: print("No hay sufiecientes videos que cumplan las condiciones ") else: primero = lt.firstElement(repuesta) print(" El video con mas dias en tendencia de " + str(pais) + " es: ") print(" Titulo: " + str(primero['title'])) print(" Nombre del canal: " + str(primero['channel_title']))
gr.numVertices(analyzer['connections']), "\nEl total de conexiones entre landing points es de: ", gr.numEdges(analyzer['connections']), "\nEl total de países cargados es de: ", mp.size(analyzer['countries']), "\n\n ++++++ 1° Landing point cargado ++++++" + "\n" + result[0][1], "\n\n ++++++ Ultimo Pais cargado ++++++" + "\n" + result[0][0]) print(mp.size(analyzer['countrypoints'])) print("\nTiempo [ms]: ", f"{result[1][0]:.3f}", " || ", "Memoria [kB]: ", f"{result[1][1]:.3f}") elif int(inputs[0]) == 2: origin = input("Ingresa el landing point origen: ") destination = input("Ingresa el landing point destino: ") result = controller.requerimiento1(analyzer, origin, destination) print('El número de componentes conectados es: ', result[0][0]) if result[0][1]: print('Los landing point ' + origin, ' y ' + destination + ' estan en el mismo cluster') else: print('Los landing point ' + origin, ' y ' + destination + ' no estan en el mismo cluster') print("\nTiempo [ms]: ", f"{result[1][0]:.3f}", " || ", "Memoria [kB]: ", f"{result[1][1]:.3f}") elif int(inputs[0]) == 3: result = controller.requerimiento2(analyzer) for value in lt.iterator(result[0][0]): print(value) print('El anterior landing point tiene un total de ', result[0][1], ' interconexiones con cables')
printMenu() inputs = input('Seleccione una opción para continuar\n') if int(inputs[0]) == 1: catalog = initCatalog() elif int(inputs[0]) == 2: print('Cargando informacion.....') answer = controller.loadData(catalog, 375943) print('Videos Cargados: '+ str(controller.videosSize(catalog))) print('Categorias Cargadas: '+ str(controller.categoriesSize(catalog))) print('Paises Cargados: '+ str(controller.countriesSize(catalog))) elif int(inputs[0]) == 3: category_name = input('Ingrese el nombre de la categoria: ') country = input('Ingrese el nombre del pais: ') num_vids = input('Ingrese el numero de videos: ') controller.requerimiento1(catalog, category_name, country, num_vids) elif int(inputs[0]) == 4: x = input("Ingrese el país ") print(x) answer = controller.Requerimiento2(catalog,x.lower()) print(answer['title']," " *10 ,answer['channel_title']," " *10 ,answer['country']," " *10 ,answer['trending_days']) elif int(inputs[0]) == 5: category_name = input('Ingrese el nombre de la categoria: ') print('Ejecutando requerimiento 3') ans = controller.requerimiento3(catalog, category_name) print(ans) elif int(inputs[0]) == 6: tag = input('Ingrese el tag: ')
printMenu() inputs = input('Seleccione una opción para continuar\n') if int(inputs[0]) == 1: print("Cargando información de los archivos ....") catalog = controller.initcatalog() Categoria = controller.intiCategoria() controller.loaddata(catalog, Categoria) print("Se cargo la informacion del catalogo") print("se cargaron:" + str(lt.size(catalog["videos"])) + "videos") elif int(inputs[0]) == 2: print("mejores videos por pais") categoria = input("Escoja una categoria: ").capitalize() pais = input("Escoja un pais: ") muestra = int(input("Cuantos videos quiere ver: ")) for i in controller.requerimiento1(categoria, pais, muestra, catalog, Categoria): for k, v in i.items(): if k == "trending_date" or k == "title" or k == "channel_title" or k == "publish_date" or k == "views" or k == "likes" or k == "dislikes": print(k + ": " + v) elif int(inputs[0]) == 3: pais = input("Escoja un pais: ") for k, v in controller.requerimiento2(catalog, pais)[0].items(): if k == "title" or k == "channel_title": print(k + " : " + v) print("Pais: " + pais + " ,Dias: " + str(controller.requerimiento2(catalog, pais)[1])) elif int(inputs[0]) == 4: print("Se ejecuto requerimiento 3 ") categoria = input("Escoja una categoria: ").capitalize()
inputs = input('Seleccione una opción para continuar\n') if int(inputs[0]) == 1: print("Cargando información de los archivos ....") cont = controller.initcatalog() catalog = controller.loaddata(cont) print('Videos cargados: ', lt.size(cont['videos'])) print("Tiempo [ms]: ", f"{catalog[1]:.3f}", " || ", "Memoria [kB]: ", f"{catalog[2]:.3f}") # Requerimiento 1. elif int(inputs[0]) == 2: pais = input("Ingrese el pais: ") categoria = input("Ingrese la categoria: ") cantidad = input("Ingrese la cantidad de videos que desea ver: ") sol = controller.requerimiento1(cont, str(pais), str(categoria), int(cantidad)) if sol: for video in lt.iterator(sol): print( '--> '+ 'trending_date: ' + video['trending_date'] + ' ||' + ' Title: ' + video['title'] + ' ||' + ' Channel_title: ' + video['channel_title'] + ' ||' + ' Publish_time: ' + video['publish_time'] + ' ||' + ' Views: ' + video['views'] + ' ||' + ' Likes: ' + video['likes'] + ' ||' + ' Dislikes: ' + video['dislikes']) print("\n") else: print('Es posible que el pais o categoria que busque no existe.\n')
print(" Titulo: "+ str(primero['title'])+"\n Nombre del canal: "+ str(primero['channel_title'])+"\n Fecha de popularidad: "+ str(primero['trending_date'])+"\n Pais: "+ str(primero['country'])+"\n Vistas: "+ str(primero['views']) + "\n Likes: "+ str(primero['likes'])+"\n Dislikes: "+ str(primero['dislikes'])+"\n Categoria: "+ str(primero['category_id'])+"\n") print("Categorias :") print("Nombre , id" ) for i in range(0,lt.size(catalog['categorias'])): cate = lt.getElement(catalog['categorias'], i) print(str(cate['name'])+" , "+str(cate['id'])) elif int(inputs[0]) == 2: categg = input("Indique la categoria: ") categ = buscarcateporname(categg) pais = input("Indique el pais: ") size = input("Indique tamaño de la muestra: ") tipodeorden = input("Indique el tipo de ordenamiento que quiere aplicar: ( selection, insertion, shell, quick o merge ) \n") result = controller.requerimiento1(catalog, int(size), tipodeorden, categ, pais, tipo) if lt.size(result[1])<=0: print("No hay sufiecientes videos que cumplan las condiciones ") else: printResults1(result[1], size) print("Para la muestra de", size, " elementos, el tiempo (mseg) es: ", str(result[0])) elif int(inputs[0]) == 3: pais = input("Indique el pais: ") tipodeorden = input("Indique el tipo de ordenamiento que quiere aplicar: ( selection, insertion, shell, quick o merge ) \n") repuesta = controller.requerimiento2(catalog,pais,tipodeorden,tipo) if lt.size(repuesta)<=0: print("No hay sufiecientes videos que cumplan las condiciones ") else:
catalog = controller.initcatalog(estructuradedatos) controller.cargardatos(catalog) print("Se cargó la información del catalogo") print("Se cargaron " + str(lt.size(catalog["videos"])) + " videos") controller.cargardatoss(catalog) print("Se cargó la información del category id") print("Se cargaron " + str(lt.size(catalog["category"])) + " categorias") print(catalog["category"]) printResults(catalog, 1) elif int(inputs[0]) == 2: Nombrecategoria = input(" Digite el nombre de la categoria ") Pais = input(" Digite el pais ") n = int(input(" Digite el numero de videos que quiere listar ")) req1 = controller.requerimiento1(Nombrecategoria, Pais, n, catalog) printreq1(req1) print("Se ejecuto requerimiento 1") elif int(inputs[0]) == 3: Pais = input(" Digite el pais ") req2 = controller.requerimiento2(catalog, Pais) printreq2(req2) print("Se ejecuto requerimiento 2") elif int(inputs[0]) == 4: nombrecategoria = input(" Digite el nombre de la categoria ") req3 = controller.requerimiento3(catalog, nombrecategoria) printreq3(req3) print("Se ejecuto requerimiento 3")
print('\nvideos cargados por paises: ' + str(lt.size(catalog['paises']))) firstvideo = lt.firstElement(catalog['videos']) print('Informacion del primer video cargado: ', firstvideo['title'], ",", firstvideo['channel_title'], ",", firstvideo['trending_date'], ",", firstvideo['country'], ",", firstvideo['views'], ",", firstvideo['likes'], ",", firstvideo['dislikes'], ".") # requerimiento 1 elif int(inputs[0]) == 2: pais = input("buscando en el pais: ") categoria = input("buscando en la categoria: ") cantidad = input("cantidad de videos: ") print(controller.requerimiento1(catalog, pais, categoria, cantidad)) #requerimiento 2 elif int(inputs[0]) == 3: pais = input("buscando en el pais: ") print(controller.requerimiento2(catalog, pais)) # requerimiento 3. elif int(inputs[0]) == 4: pass # requerimiento 4. elif int(inputs[0]) == 5:
def thread_cycle(): while True: printMenu() inputs = input('Seleccione una opción para continuar\n') if int(inputs[0]) == 1: print("Inicializando .... \n") catalog = controller.iniciar() print("Cargando información de los archivos ....\n") controller.loadArchivos(catalog) print("Total landing points: " + str(controller.totalVer(catalog))) print("Total conexiones entre landing points: " + str(controller.totalConnections(catalog))) print("Total paises: " + str(controller.totalPaises(catalog))) primero = controller.primerVer(catalog) print("Primer landing point: ") print(" Identificador: " + str(primero['landing_point_id'])) print(" Nombre: " + str(primero['name'])) print(" Latitud: " + str(primero['latitude'])) print(" Longitud: " + str(primero['longitude'])) print("Ultimo pais cargado: ") pais = controller.primerPai(catalog) print(" Nombre: " + str(pais['CountryName'])) print(" Poblacion: " + str(pais['Population'])) print(" Usuarios de internet: " + str(pais['Internet users'])) print('El limite de recursion actual: ' + str(sys.getrecursionlimit())) elif int(inputs[0]) == 2: point1 = input( 'Ingrese el primer Landing Point (ej Redondo Beach): ') point2 = input('Ingrese el segundo Landing Point (ej Vung Tau): ') res = controller.requerimiento1(catalog, point1, point2) print('El total de clusters presentes es: ' + str(res[0])) if res[1]: print('Los dos landing points estan en el mismo cluster ') else: print('Los dos landing points noooo estan en el mismo cluster') elif int(inputs[0]) == 3: resp = controller.requerimiento2(catalog) for r in lt.iterator(resp): print("Nombre: " + str(r[1])) print("País:" + str(r[2]).split(',')[1]) print("Identificador: " + str(r[0])) print("Total cables conectados: " + str(r[3])) print("\n") elif int(inputs[0]) == 4: pais1 = input('Ingrese el primer Pais (ej Colombia): ') pais2 = input('Ingrese el segundo Pais (ej Indonesia): ') puesta = controller.requerimiento3(catalog, pais1, pais2) print("Ruta mas corta: ") respuestaxd(puesta[0]) print('Total distancia de la ruta ' + str(puesta[1]) + ' Km') elif int(inputs[0]) == 5: r = controller.requerimiento4(catalog) print('Numero de nodos conectados a la red de expancion minima: ' + str(r[0])) print('Costo totaal de la red de expancion minima: ' + str(r[1]) + ' Km') print('Rama mas larga: ') respuestaxd(r[2]) elif int(inputs[0]) == 6: poin = input('Ingrese el Nombre del landing point: ') rere = controller.requerimiento5(catalog, poin) print('Afecta un total de: ' + str(lt.size(rere)) + ' pises') print('Lista paises') for p in lt.iterator(rere): print(str(p[0])) elif int(inputs[0]) == 7: pass elif int(inputs[0]) == 8: pass else: sys.exit(0) sys.exit(0)