def agregar_cancion(self, ruta_cancion): """ Agrega una Cancion a la cola a partir de su ruta. Devuelve True si se agrego correctamente, False en caso contrario. Esta accion puede deshacerse y rehacerse.""" if (self.prim == None): #Usar tinytag y compleatar parametros self.prim = Cancion(ruta_cancion) self.prim.anterior = None self.actual = self.prim self.lista.append(["add", self.prim]) else: actual = self.prim while actual.prox is not None: actual = actual.prox actual.prox = Cancion(ruta_cancion) actual.prox.atenrior = actual self.lista.append(["add", actual.prox])
def agregarLista(self, lista): 'Recibe un archivo con una lista de canciones, crea objetos tipo cancion con los elementos y luego los añade al arbol' #Abre el archivo txt y procesa la informacion dentro de éste with open(lista, 'r') as f: for i in f: C_info = i.split('\t') C_info[-1] = C_info[-1].strip() info = [] i = 0 j = 0 while i != len(C_info[0]): if C_info[0][i] == ';' or i == len(C_info[0]) - 1: if i == len(C_info[0]) - 1: info.append(C_info[0][j:i + 1]) break info.append(C_info[0][j:i]) j = i + 1 i += 1 if '.mp3' or '.wav' in info[2]: cancion = Cancion(info[0], info[1], info[2]) self.contenido.agregar(cancion) else: print( '\nAlguna de las canciones no tiene la extension requerida. Las canciones deben estar en formato mp3 o wav' ) f.closed
def iniciar(self): """ Limpia la pantala y llama a la función cmdloop (definida en la clase Cmd) para inicializar el shell actual. """ system('cls') cancion = Cancion() self.cmdloop()
def rehacer_modificacion(self): """ Rehace la ultima accion que se deshizo. Devuelve True si pudo rehacerse, False en caso contrario.""" if self.accion_deshecha.esta_vacia(): return False if self.accion_deshecha.ver_tope()[0]=='add': self.cola_de_reproduccion.append(Cancion(self.accion_deshecha.ver_tope()[1])) self.ultimo=self.cola_de_reproduccion[-1] self.modificacion_cola.apilar(self.accion_deshecha.desapilar()) return True self.cola_de_reproduccion.pop() self.ultimo=self.cola_de_reproduccion[-1] self.modificacion_cola.apilar(self.accion_deshecha.desapilar()) return True
def agregar_cancion(self, ruta_cancion): """ Agrega una Cancion a la cola a partir de su ruta. Devuelve True si se agrego correctamente, False en caso contrario. Esta accion puede deshacerse y rehacerse.""" if (os.path.isfile(ruta_cancion)): (nombreFichero, extension) = os.path.splitext(ruta_cancion) if (extension in EXTENSIONES_ACEPTADAS): if (self.prim == None): #Usar tinytag y compleatar parametros self.prim = Cancion(ruta_cancion) self.prim.anterior = None self.actual = self.prim if (not self.deshecho_reecho): self.lista_deshacer.append(["add", self.prim]) return True else: actual = self.prim while actual.prox is not None: actual = actual.prox actual.prox = Cancion(ruta_cancion) actual.prox.atenrior = actual if (not self.deshecho_reecho): self.lista_deshacer.append(["add", actual.prox]) return True return False
def deshacer_modificacion(self): """ Deshace la ultima accion realizada. Devuelve True si pudo deshacerse, False en caso contrario.""" if len(self.cola_de_reproduccion)==1 or self.modificacion_cola.esta_vacia(): return False if self.modificacion_cola.ver_tope()[0]=='add': self.cola_de_reproduccion.pop() self.ultimo=self.cola_de_reproduccion[-1] self.accion_deshecha.apilar(self.modificacion_cola.desapilar()) return True for posicion in range(len(self.cola_de_reproduccion)): if self.cola_de_reproduccion[posicion].obtener_ruta()==self.modificacion_cola.ver_tope()[1]: self.cola_de_reproduccion.append(Cancion(self.modificacion_cola.ver_tope()[1])) self.ultimo=self.cola_de_reproduccion[-1] self.accion_deshecha.apilar(self.modificacion_cola.desapilar()) return True
def agregar_cancion(self, ruta_cancion): """ Agrega una Cancion a la cola a partir de su ruta. Devuelve True si se agrego correctamente, False en caso contrario. Esta accion puede deshacerse y rehacerse.""" if not verificar_ruta(ruta_cancion): return False cancion=Cancion(ruta_cancion) if self.primero is None: self.cola_de_reproduccion.append(cancion) self.primero=self.cola_de_reproduccion[0] self.ultimo=self.cola_de_reproduccion[-1] self.pos_actual=0 self.modificacion_cola.apilar(('add',ruta_cancion)) return True self.cola_de_reproduccion.append(cancion) self.ultimo=self.cola_de_reproduccion[-1] self.modificacion_cola.apilar(('add',ruta_cancion)) return True
def do_PLAY(self, paramatros): """ Permite ingresar la ruta a un archivo .plp y reproducirlo. """ archivo_c = input("Ingrese ruta del archivo o nombre (si es local):") try: cancion = Cancion() cancion.fileToSong(archivo_c, CHR_TRACK) cancion.play() except IOError as ioerror: print(ioerror) except ValueError as valuerror: print(valuerror) except IndexError as indexerror: print(indexerror)
def __init__(self): self.count = 0 self.nill = NodoLista(None, Cancion(None, None, None), None) self.nill.siguiente = self.nill self.nill.anterior = self.nill self.proxima = self.nill
q = self.numero_nodos // 2 aux = self.proxima l, r = ListaReproduccion(), ListaReproduccion() self.dividirEnDos(l, r) l.merge_sort(tipo, depth + 1) r.merge_sort(tipo, depth + 1) self.merge(l, r, tipo) def ordenar_titulo(self): cancion = self.proxima.elemento self.merge_sort('titulo') self.proxima = self.proxima.siguiente def ordenar_artista(self): cancion = self.proxima.elemento self.merge_sort('artista') self.proxima = self.proxima.siguiente if __name__ == '__main__': rep = ListaReproduccion() with open("canciones/canciones.txt", 'r') as f: lineas = f.readlines() n = len(lineas) - 1 for i in range(n): linea = lineas[i + 1].split('\t') rep.agregar( Cancion(linea[1], linea[0], linea[2][0:len(linea[2]) - 1])) rep.ordenar_artista() print(rep)
import cmd import soundPlayer as pysounds from os import system from os import path from lista_enlazada import * from cancion import Cancion cancion = Cancion() CHR_TRACK = '#' CHR_NO_TRACK = '.' class ShellEdicion(cmd.Cmd): """ Implementación particular de la clase cmd (incluída en Python 3.6), con especifcaciones en español particulares para el menu de edición de sonido del Editor PLP. Para ver la documentación completa de la clase cmd, buscar su código fuente en la carpeta Lib en el directorio de instalación de python. """ intro = '\nEditor PLP - Modo Edición.\nIngrese help o ? para listar los comandos.\n' doc_header = "Comandos para el modo edición del Editor PLP (ingrese help <comando>):" misc_header = "Otros temas de ayuda:" undoc_header = "Comandos no documentados:" nohelp = "*** No hay información sobre %s" prompt = '{->} ' ruler = '=' comando_vacio = ''
# def mostrar(s="Hello", n=2): # for i in range (0, n): # print(s) # # mostrar('Michael', 4) from cancion import Cancion from playlist import PlayList l = PlayList() while True: print('1 Agregar Cancion') print('2 Mostrar Cnaciones') print('0 Salir') op = input() if op == '1': cancion = Cancion() cancion.artista = input("Artista") cancion.album = input("Album") cancion.titulo = input("Titulo") cancion.duracion = int(input("Duaracion")) l.agregar(cancion) elif op == '2': l.mostrar() pass elif op == '0': break
def creaCancion(self,audiofile,path): """Crea objetos cancion en el que guarda los datos que saca de las etiquetas Parámetros audiofile : eyed3 object El objeto eyed3 del que leeremos las etiquetas necesarias. path : str El path en el que se encontró la canción. """ cancion=Cancion() cancion.setArtista(audiofile.tag.artist) cancion.setTitulo(audiofile.tag.title) cancion.setGenero(str(audiofile.tag.genre)) cancion.setTrack(audiofile.tag.track_num) cancion.setFecha(audiofile.tag.getBestDate()) cancion.setAlbum(audiofile.tag.album) cancion.setPath(path) return cancion
archivo = sys.argv[1] except: print( "Recuerde ingresar el archivo como argumento del programa.\nEj: python3 cliente.py <archivo>" ) sys.exit(1) rep = Reproductor() rep.show() sp.call('clear', shell=True) with open(archivo, 'r') as f: lineas = f.readlines() n = int(lineas[0][:len(lineas) - 1]) lista_de_reproduccion = ArrayT(n) for i in range(n): linea = lineas[i + 1].split('\t') lista_de_reproduccion[i] = Cancion(linea[0], linea[1], linea[2][0:len(linea[2]) - 1]) rep.sonarDespues( Cancion(linea[1], linea[0], linea[2][0:len(linea[2]) - 1])) conf = "\tPresione ***<ENTER> para cancelar la operacion" data = ArrayT(9) data[0] = "1-Listar canciones" data[1] = "2-Agregar para sonar justo despues de la cancion actual" data[2] = "3-Agregar para sonar justo antes de la cancion actual" data[3] = "4-Ordenar lista de reproduccion por artista" data[4] = "5-Ordenar lista de reproduccion por titulo" data[5] = "6-Eliminar cancion por titulo" data[6] = "7-Mostrar opciones" data[7] = "8-Salir" menu = "\n{:18}+{:-^61}+\n".format('\0', '-') menu += " | {0[0]:60}|\n | {0[1]:60}|\n \
rep = Reproductor() rep.show() sp.call('clear', shell=True) canciones = open("canciones.in", "r") n = int(canciones.readline()) lista = ArrayT(n) can = canciones.readlines() for x in range(n): t = can[x].strip("\n") p = t.split("\t") lista[x] = p for x in lista: c = Cancion(x[1], x[0], x[2]) rep.playlist.agregar(c) ############# # Menu loop # ############# while True: print("REPRODUCTOR DE KAUZE Y DAVID\n" "1.Listar canciones\n" + "2.Agregar para sonar justo después de la canción actual\n" + "3.Agregar para sonar justo antes de la canción actual\n" + "4.Ordenar lista de reproducción por artista\n" + "5.Ordenar lista de reproducción por titulo\n" + "6.Eliminar canción por titulo\n" + "7.Mostrar opciones\n" + "8.Salir")
def setAgregarCancion(self, titulo): C = Cancion() C.setTitulo(titulo) self.lista_canciones.append(C)