Example #1
0
def getPlaylistTracks(user, playlist_id):
    query_str = (
        """SELECT artist, track_name, trackid FROM playlist INNER JOIN tracks ON tracks.playlistID=playlist.id WHERE playlist.id='%s' AND playlist.owner='%s' """
        % (playlist_id, user))
    #result = connection.execute(query_str).fetchall()

    result_dict = dict()
    result_list = list()

    result = connection.execute(query_str)

    if result.rowcount != 0:
        for row in result.fetchall():
            row_dict = dict(row)
            result_list.append(row_dict)

        query_str = (
            """SELECT name,owner,message FROM playlist WHERE id='%s' AND owner='%s' """
            % (playlist_id, user))
        playlist_results = connection.execute(query_str).fetchall()[0]

        result_dict['tracks'] = result_list
        result_dict['owner'] = playlist_results['owner']
        result_dict['message'] = playlist_results['message']
        result_dict['playlist_name'] = playlist_results['name']

    return result_dict
Example #2
0
def saveTrack(youtubeURL, playlist_id, trackName, artistName):
	result_dict = dict()

	trackName = trackName.replace("'",'').replace('"','')
	artistName = artistName.replace("'",'').replace('"','')


	track_id = int(time.time())

	query_str = ("""INSERT INTO tracks (trackid, playlistid, artist, track_name) VALUES ('%s', '%s','%s','%s'); """ % (track_id, playlist_id, artistName, trackName))
	if connection.execute(query_str):

		# only download if song does not already exist in $OPENSHIFT_DATA_LOG
		query_str = ("""SELECT * FROM tracks WHERE track_name='%s' AND artist='%s'""" % (trackName, artistName))
		result = connection.execute(query_str)

		result_dict['artist'] = artistName
		result_dict['track_name'] = trackName
		result_dict['track_id'] = track_id

		if result.rowcount <= 1:						# only need to save one copy of track
			download(youtubeURL, artistName, trackName, track_id)
		else:
			time.sleep(1)		# must sleep in case track is already downloaded, then track_id may yield duplicates if data is processed to quickly


	return result_dict
Example #3
0
def saveTrack(youtubeURL, playlist_id, trackName, artistName):
    result_dict = dict()

    trackName = trackName.replace("'", '').replace('"', '')
    artistName = artistName.replace("'", '').replace('"', '')

    track_id = int(time.time())

    query_str = (
        """INSERT INTO tracks (trackid, playlistid, artist, track_name) VALUES ('%s', '%s','%s','%s'); """
        % (track_id, playlist_id, artistName, trackName))
    if connection.execute(query_str):

        # only download if song does not already exist in $OPENSHIFT_DATA_LOG
        query_str = (
            """SELECT * FROM tracks WHERE track_name='%s' AND artist='%s'""" %
            (trackName, artistName))
        result = connection.execute(query_str)

        result_dict['artist'] = artistName
        result_dict['track_name'] = trackName
        result_dict['track_id'] = track_id

        if result.rowcount <= 1:  # only need to save one copy of track
            download(youtubeURL, artistName, trackName, track_id)
        else:
            time.sleep(
                1
            )  # must sleep in case track is already downloaded, then track_id may yield duplicates if data is processed to quickly

    return result_dict
Example #4
0
def createUserTable():
    connection.execute("""
	    CREATE TABLE users (
	        username VARCHAR PRIMARY KEY,
	        password VARCHAR NOT NULL
	    );
	    """)
Example #5
0
def createPlaylistTable():
    connection.execute("""
		CREATE TABLE playlist(
			id VARCHAR PRIMARY KEY,
			name VARCHAR NOT NULL,
			owner VARCHAR NOT NULL
		);
		""")
Example #6
0
def createTrackTable():
    connection.execute("""
	    CREATE TABLE tracks (
	        playlistid,
	        trackid,
	        artist,
	        track_name
	    );
	    """)
Example #7
0
def createUserTable():
	connection.execute(    
		"""
	    CREATE TABLE users (
	        username VARCHAR PRIMARY KEY,
	        password VARCHAR NOT NULL
	    );
	    """
    )
Example #8
0
def createPlaylistTable():
	connection.execute(
		"""
		CREATE TABLE playlist(
			id VARCHAR PRIMARY KEY,
			name VARCHAR NOT NULL,
			owner VARCHAR NOT NULL
		);
		"""
	)
Example #9
0
def createTrackTable():
	connection.execute(    
		"""
	    CREATE TABLE tracks (
	        playlistid,
	        trackid,
	        artist,
	        track_name
	    );
	    """
    )
Example #10
0
def createUser(un, pw):
	rt_message = 0

	query_str = ("""SELECT * FROM users WHERE username='******' """ % (un))

	if connection.execute(query_str).rowcount > 0:
		rt_message = 0
	else:
		query_str = ("""INSERT INTO users (username, password) VALUES ('%s', '%s'); """ % (un, pw))
		if connection.execute(query_str):
			rt_message = 1

	return rt_message
Example #11
0
def createUser(un, pw):
    rt_message = 0

    query_str = ("""SELECT * FROM users WHERE username='******' """ % (un))

    if connection.execute(query_str).rowcount > 0:
        rt_message = 0
    else:
        query_str = (
            """INSERT INTO users (username, password) VALUES ('%s', '%s'); """
            % (un, pw))
        if connection.execute(query_str):
            rt_message = 1

    return rt_message
Example #12
0
def getUser(un, pw):
    query_str = (
        """SELECT * FROM users WHERE username='******' AND password='******'; """ %
        (un, pw))
    result = connection.execute(query_str)

    return result.rowcount
Example #13
0
def createNewPlaylist(playlist_id, playlist_name, message, user):
	print ('Creating playlist %s' % (playlist_id))
	rt_val = 0
	query_str = ("""INSERT INTO playlist (owner, message, id, name) VALUES ('%s', '%s','%s','%s'); """ % (user, message, playlist_id, playlist_name))
	if connection.execute(query_str):
		rt_val = 1

	return rt_val
Example #14
0
def createNewPlaylist(playlist_id, playlist_name, message, user):
    print('Creating playlist %s' % (playlist_id))
    rt_val = 0
    query_str = (
        """INSERT INTO playlist (owner, message, id, name) VALUES ('%s', '%s','%s','%s'); """
        % (user, message, playlist_id, playlist_name))
    if connection.execute(query_str):
        rt_val = 1

    return rt_val
Example #15
0
def deleteTrack(track_id):
	query_str = ("""SELECT * FROM tracks WHERE trackid='%s'""" % (track_id))
	result = connection.execute(query_str).fetchall()[0]
	artistName = result['artist']	
	trackName = result['track_name']

	time.sleep(1)	# make sure user gets track before it is deleted

	query_str = ("""DELETE FROM tracks WHERE trackid='%s'""" % (track_id))
	if connection.execute(query_str):
		# only delete file if track no longer exists in tracks table
		query_str = ("""SELECT * FROM tracks WHERE track_name='%s' AND artist='%s'""" % (trackName, artistName))
		result = connection.execute(query_str)

		if result.rowcount == 0:
			filename = getTrackName(artistName, trackName)
			path_to_track = ('"%s/%s"' % (app.config['DEST_DIR'], filename))
			cmd = ("""rm %s""" % (path_to_track))
			os.popen(cmd)
		rt_val = 1
	return rt_val
Example #16
0
def deleteTrack(track_id):
    query_str = ("""SELECT * FROM tracks WHERE trackid='%s'""" % (track_id))
    result = connection.execute(query_str).fetchall()[0]
    artistName = result['artist']
    trackName = result['track_name']

    time.sleep(1)  # make sure user gets track before it is deleted

    query_str = ("""DELETE FROM tracks WHERE trackid='%s'""" % (track_id))
    if connection.execute(query_str):
        # only delete file if track no longer exists in tracks table
        query_str = (
            """SELECT * FROM tracks WHERE track_name='%s' AND artist='%s'""" %
            (trackName, artistName))
        result = connection.execute(query_str)

        if result.rowcount == 0:
            filename = getTrackName(artistName, trackName)
            path_to_track = ('"%s/%s"' % (app.config['DEST_DIR'], filename))
            cmd = ("""rm %s""" % (path_to_track))
            os.popen(cmd)
        rt_val = 1
    return rt_val
Example #17
0
def getPlaylistTracks(user, playlist_id):
	query_str = ("""SELECT artist, track_name, trackid FROM playlist INNER JOIN tracks ON tracks.playlistID=playlist.id WHERE playlist.id='%s' AND playlist.owner='%s' """ % (playlist_id,user))
	#result = connection.execute(query_str).fetchall()

	result_dict = dict()
	result_list= list()

	result = connection.execute(query_str)

	if result.rowcount != 0:
		for row in result.fetchall():
			row_dict = dict(row)
			result_list.append(row_dict)

		query_str = ("""SELECT name,owner,message FROM playlist WHERE id='%s' AND owner='%s' """ % (playlist_id, user))
		playlist_results = connection.execute(query_str).fetchall()[0]

		result_dict['tracks'] = result_list
		result_dict['owner'] = playlist_results['owner']
		result_dict['message'] = playlist_results['message']
		result_dict['playlist_name'] = playlist_results['name']
	
	return result_dict
Example #18
0
def getUser(un, pw):
	query_str = ("""SELECT * FROM users WHERE username='******' AND password='******'; """ % (un, pw))
	result = connection.execute(query_str)

	return result.rowcount