def listItems(): r = cocomo.query( "SELECT CONCAT('[',CONCAT(GROUP_CONCAT(REPLACE(track_json,\";\",'\"')),']')) FROM track_playlist WHERE id_playlist = '" + _POST["id"] + "'" ) cocomo.printJson(r, "success")
def downloadFisicalFile(youtubeId, idName): yt = YouTube() yt.url = ("http://www.youtube.com/watch?v=" + youtubeId) yt.filename = idName video = 0 if len(yt.filter('mp4')) > 0: if len(yt.filter(resolution='720p')) > 0: video = yt.get('mp4','720p') else: video = yt.get('mp4') video.download("tempvideo/") else: cocomo.printJson("no se puede descargar el archivo", "error")
def smartGet( url, service=True ): # cache = cocomo.query("CALL getCache ( '" + url + "' )") # n = len(cache) # if n != 0: # if service: # cocomo.printJson( json.loads( cache[0][0].decode("hex") ) , "success" ) # return # else: # return json.loads( cache[0][0].decode("hex") ) # else: # f = urllib2.urlopen(url) # f = json.loads(f.read()) # cocomo.execute("CALL setCache ( '" + url + "', '" + json.dumps(f).encode("hex") + "' )") # return f f = urllib2.urlopen(url) f = json.loads(f.read()) if service: cocomo.printJson( f , "success" ) return else: return f
def download(): try: ###saber si ya existe el archivo en el servidor para no hacer todo el proceso if os.path.exists("../audio/"+_POST['id']+"/"): trackName = os.listdir("../audio/"+_POST['id']+"/")[0] cocomo.printJson( { "trackURL":"audio/"+_POST['id']+"/"+trackName.replace(" ", "%20") } , "success") return track = getInfo(service=False) ##Recordatorio de la estrutura del json #track['title'] #track['id'] #track['position'] #track['artist']['name'] #track['album']['title'] #track['album']['cover_big'] youtubeId = getIdByYoutube(track['title'].encode('utf-8') + " - " + track['artist']['name'].encode('utf-8')) downloadFisicalFile(youtubeId, track['id']) os.makedirs("../audio/"+str(track['id'])) import subprocess subprocess.call("ffmpeg -i tempvideo/"+str(track['id'])+".mp4 -b:a 192K -vn \"../audio/"+str(track['id'])+"/"+track['title']+".mp3\" -loglevel quiet 2>tempvideo/output", shell=True, stdout=subprocess.PIPE) os.remove("tempvideo/"+str(track['id'])+".mp4") #descargar imagen #getImage(track['album']['cover'], str(track['id'])) #completar archivo mp3 setInfo(track) #cocomo.execute("CALL insertDownload ( '" + _POST['id_user'] + "' , '" + _POST['id'] + "' )") cocomo.printJson({"trackURL":"../audio/"+_POST['id']+"/"+track['title']+".mp3"}, "success") except Exception, ex: cocomo.printJson("No se puede obtener el archivo descargado, El motor dice: " + str(ex), "error")
def _MAIN(): try: exec _EXECUTE except NameError: cocomo.printJson("funtion '" + _EXECUTE + "' not found", "error")
def listByUser(): r = cocomo.query("SELECT id_playlist , nombre FROM playlist WHERE id_user = '******'") cocomo.printJson(r, "success")
def getInfo(service=True): f = smartGet( "http://api.deezer.com/track/" + str ( _POST['id'] ) , service ) if service: cocomo.printJson(f, "success") else: return f
def getDownloadUser(): _result = cocomo.query("CALL getDownloaUser ( " + _POST['id_user'] + " )") cocomo.printJson(_result, "success")
def _MAIN(): try: exec _EXECUTE except NameError: cocomo.printJson("funtion '"+_EXECUTE+"' not found", "error")
def listItems(): r = cocomo.query( "SELECT CONCAT('[',CONCAT(GROUP_CONCAT(REPLACE(track_json,\";\",'\"')),']')) FROM track_playlist WHERE id_playlist = '" + _POST['id'] + "'") cocomo.printJson(r, "success")
def newPlaylist(): cocomo.execute("INSERT INTO playlist (id_user,nombre) VALUES ( '" + _POST['id'] + "', '" + _POST['nombre'] + "')") cocomo.printJson("1", "success")
def listByUser(): r = cocomo.query( "SELECT id_playlist , nombre FROM playlist WHERE id_user = '******'id'] + "'") cocomo.printJson(r, "success")
def addItem(): cocomo.execute( "INSERT INTO track_playlist (id_playlist,track_json) VALUES ( '" + _POST['id'] + "', '" + _POST['track'] + "')") cocomo.printJson("1", "success")
def insertUser(): cocomo.execute("CALL insertUser ( '" + _POST['id'] + "' )") cocomo.printJson("[user.py>insertUser()]", "success")
def newPlaylist(): cocomo.execute("INSERT INTO playlist (id_user,nombre) VALUES ( '" + _POST["id"] + "', '" + _POST["nombre"] + "')") cocomo.printJson("1", "success")
def search(): query = _POST['query'].replace(" ", "%20") cocomo.printJson ( smartGet ( "http://api.deezer.com/search?q=" + query ) , "success" )
def addItem(): cocomo.execute( "INSERT INTO track_playlist (id_playlist,track_json) VALUES ( '" + _POST["id"] + "', '" + _POST["track"] + "')" ) cocomo.printJson("1", "success")
def insertFAQ(): cocomo.execute("CALL insertFaq ( " + _POST['id_user'] + " , '" + _POST['comentario'] + "' )") cocomo.printJson("[user.py>insertFAQ()]", "success")