Пример #1
0
def createNewPlaylist(artist_name):
    cur = db.cursor()
    sql_create_playlists = '''CREATE TABLE IF NOT EXISTS playlist (id INTEGER PRIMARY KEY AUTO_INCREMENT,rootArtist VARCHAR(128));'''
    sql_create_songs = '''CREATE TABLE IF NOT EXISTS songs (playlistId INTEGER, songOrder INTEGER,artistName VARCHAR(128), albumName VARCHAR(256), trackName VARCHAR(256));'''
    cur.execute(sql_create_playlists)
    cur.execute(sql_create_songs)

    sql_insert_artist_name = '''INSERT INTO playlist (rootArtist) VALUES ('%s');''' % (
        artist_name)
    cur.execute(sql_insert_artist_name)
    playlistId = cur.lastrowid

    root_artist_id = fetchArtistId(artist_name)
    edgelist = getEdgeList(root_artist_id, 2)
    g = pandasToNetworkX(edgelist)
    songs = []
    for i in range(30):
        artist_id = (randomCentralNode(g))
        songOrder = i + 1
        artist_name = fetchArtistInfo(artist_id)['name']
        album_ids = fetchAlbumIds(artist_id)
        random_album = np.random.choice(album_ids)
        random_album_name = fetchAlbumInfo(random_album)['name']
        random_track_name = fetchARandomTrack(random_album)[1]
        songs.append((playlistId, songOrder, artist_name, random_album_name,
                      random_track_name))

    insertSongs = '''INSERT INTO songs 
                     (playlistId, songOrder, artistName, albumName, trackName)
                     VALUES
                     (%s, %s, %s, %s, %s)'''
    cur.executemany(insertSongs, songs)
    db.commit()

    print "playlists updated"
Пример #2
0
def testWriteArtistsInfo():
    artistId1 = fetchArtistId('earth wind fire')
    artistId2 = fetchArtistId('patsy cline')
    artistId3 = fetchArtistId('五月天')
   
    assert artistId1=='4QQgXkCYTt3BlENzhyNETg'
    assert artistId2=='7dNsHhGeGU5MV01r06O8gK'
    assert artistId3=='16s0YTFcyjP4kgFwt7ktrY'
 
    albumIds1 = fetchAlbumIds(artistId1)
    albumIds2 = fetchAlbumIds(artistId2)
    albumIds3 = fetchAlbumIds(artistId3)

    print "albumIds1=",len(albumIds1)
    print "albumIds2=",len(albumIds2)
    print "albumIds3=",len(albumIds3)

    assert len(albumIds1) == 20
    assert len(albumIds2) == 20
    assert len(albumIds3) == 17

    artistInfo1 = fetchArtistInfo(artistId1)
    artistInfo2 = fetchArtistInfo(artistId2)
    artistInfo3 = fetchArtistInfo(artistId3)
    
    albumInfoList = []
    for albumId in albumIds1:
        albumInfoList.append(fetchAlbumInfo(albumId))
    for albumId in albumIds2:
        albumInfoList.append(fetchAlbumInfo(albumId))
    for albumId in albumIds3:
        albumInfoList.append(fetchAlbumInfo(albumId))
    
    writeArtistsTable([artistInfo1, artistInfo2, artistInfo3])
    writeAlbumsTable(albumInfoList)

    bcd =getBarChartData()

    # asset that there were 11 albums in the 80s and 21 in the 00s
    assert(bcd[1][8] == 11)
    assert(bcd[1][10] == 21)
def testWriteArtistsInfo():
    artistId1 = fetchArtistId('earth wind fire')
    artistId2 = fetchArtistId('patsy cline')
    artistId3 = fetchArtistId('五月天')

    assert artistId1=='4QQgXkCYTt3BlENzhyNETg'
    assert artistId2=='7dNsHhGeGU5MV01r06O8gK'
    assert artistId3=='16s0YTFcyjP4kgFwt7ktrY'

    albumIds1 = fetchAlbumIds(artistId1)
    albumIds2 = fetchAlbumIds(artistId2)
    albumIds3 = fetchAlbumIds(artistId3)

    print "albumIds1=",len(albumIds1)
    print "albumIds2=",len(albumIds2)
    print "albumIds3=",len(albumIds3)

    assert len(albumIds1) == 20
    assert len(albumIds2) == 20
    assert len(albumIds3) == 17

    artistInfo1 = fetchArtistInfo(artistId1)
    artistInfo2 = fetchArtistInfo(artistId2)
    artistInfo3 = fetchArtistInfo(artistId3)

    albumInfoList = []
    for albumId in albumIds1:
        albumInfoList.append(fetchAlbumInfo(albumId))
    for albumId in albumIds2:
        albumInfoList.append(fetchAlbumInfo(albumId))
    for albumId in albumIds3:
        albumInfoList.append(fetchAlbumInfo(albumId))

    writeArtistsTable([artistInfo1, artistInfo2, artistInfo3])
    writeAlbumsTable(albumInfoList)

    bcd =getBarChartData()

    # asset that there were 11 albums in the 80s and 21 in the 00s
    assert(bcd[1][8] == 11)
    assert(bcd[1][10] == 21)
Пример #4
0
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    # YOUR CODE HERE
    artist_id_list = []
    artist_info_list = []
    for name in artist_names:
        artistId = fetchArtistId(name)  #get artistID
        artist_id_list.append(artistId)  #append it to the list
        artistInfo = fetchArtistInfo(artistId)  #get artistInfo dictionary
        artist_info_list.append(artistInfo)  #append it to the artist_info_list

    #album_ids_list = []
    album_info_list = []
    for artistId in artist_id_list:
        albumIds = fetchAlbumIds(artistId)  #get list of albumIds
        #album_ids_list.append(albumIds) #append list to album_ids_list
        for albumId in albumIds:  #for each album in one artist's list of album IDs
            albumInfo = fetchAlbumInfo(albumId)  #get albumInfo dictionary
            album_info_list.append(
                albumInfo)  #append it to the album_info_list

    writeArtistsTable(artist_info_list)
    writeAlbumsTable(album_info_list)
    plotBarChart()
Пример #5
0
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from artistNetworks import getRelatedArtists, getDepthEdges, getEdgeList, writeEdgeList
from analyzeNetworks import readEdgeList, degree, combineEdgelists, pandasToNetworkX, randomCentralNode
from random import randint
import requests
from io import open
import csv

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    a = artist_names[0]
    ID = fetchArtistId(a)
    combined_Edge_List = getEdgeList(ID, 2)
    if len(artist_names) > 1:
        for artist_name in artist_names:
            ID = fetchArtistId(artist_name)
            edgeList1 = getEdgeList(ID, 2)
            combined_Edge_List = combineEdgelists(combined_Edge_List,
                                                  edgeList1)
    b = combined_Edge_List
    c = pandasToNetworkX(b)
    nodes = []
    albums = []
    tracks = []
    tracks_names = []
    for i in range(30):
        d = randomCentralNode(c)
        nodes.append(d)
    for i in range(30):
import sys
from io import open
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    # YOUR CODE HERE

    artist_info_list = []
    album_info_list = []

    for name in artist_names:
        artist_id = fetchArtistId(name)
        artist_info = fetchArtistInfo(artist_id)
        artist_info_list.append(artist_info)

        album_ids = fetchAlbumIds(artist_id)
        for album in album_ids:
            alb_info = fetchAlbumInfo(album)
            album_info_list.append(alb_info)

    writeArtistsTable(artist_info_list)
    writeAlbumsTable(album_info_list)

    plotBarChart()
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
	artist_names = sys.argv[1:]
	print "input artists are ", artist_names
	infos=[]
	ids=[]
	album_infos=[]
	for current_name in artist_names:
		print "current name is", current_name
		current_id=fetchArtistId(current_name)
		print "current id is", current_id
		current_info=fetchArtistInfo(current_id)
		infos.append(current_info)
		ids.append(current_id)
	for new_id in ids:
		album_ids=fetchAlbumIds(new_id)
		for album_id in album_ids:
			album_info=fetchAlbumInfo(album_id)
			album_infos.append(album_info)
	writeArtistsTable(infos)
	print "album_info is ", album_info
	writeAlbumsTable(album_infos)


	
    
Пример #8
0
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    # YOUR CODE HERE
    artist_list = []
    album_list = []
    for hahaha in artist_names:

        get_artist_id = fetchArtistId(hahaha)
        get_artist_info = fetchArtistInfo(get_artist_id)

        artist_list.append(get_artist_info)

        get_album_ids = fetchAlbumIds(get_artist_id)

        for album in get_album_ids:
            get_album_info = fetchAlbumInfo(album)
            album_list.append(get_album_info)

    writeArtistsTable(artist_list)
    writeAlbumsTable(album_list)
    #getBarChartData()
    plotBarChart()
Пример #9
0
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    artistList = []

    for name in artist_names:
        artID = fetchArtistId(name)
        artistList.append(artID)  # generate a list of all artist names

    artistInfoDict = []
    albumDictList = []
    for identity in artistList:  # indexing through artist IDs
        artistInfoDict.append(fetchArtistInfo(
            identity))  # create list of artist info dictionaries
        identityAlbumList = fetchAlbumIds(
            identity)  # generate list of albums for artist identity
        for album in identityAlbumList:
            albumDictList.append(fetchAlbumInfo(album))

    writeArtistsTable(artistInfoDict)  # write artist information to CSV
    writeAlbumsTable(albumDictList)  # write album information to CSV

    plotBarChart()
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    # YOUR CODE HERE
    ArtistIds = []
    ArtistInfos = []
    AlbumIds = []
    AlbumInfos = []
    for name in artist_names:  #get id
        ArtistIds.append(fetchArtistId(name))
    for artistId in ArtistIds:
        ArtistInfos.append(fetchArtistInfo(artistId))
    for artistId in ArtistIds:
        ids = fetchAlbumIds(artistId)
        for aid in ids:
            AlbumIds.append(aid)
    for albumId in AlbumIds:
        AlbumInfos.append(fetchAlbumInfo(albumId))
    writeArtistsTable(ArtistInfos)
    writeAlbumsTable(AlbumInfos)
    plotBarChart()
Пример #11
0
def testFetchArtistId():
    assert fetchArtistId('Missy Elliott') == u'2wIVse2owClT7go1WT98tk'
    assert fetchArtistId('Robyn') == u'6UE7nl9mha6s8z0wFQFIZ2'
import csv
from io import open
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo, fetchRndmSong
from analyzeNetworks import readEdgeList, degree, combineEdgeLists, pandasToNetworkX, randomCentralNode
from artistNetworks import getRelatedArtists, getDepthEdges, getEdgeList, writeEdgeList

import matplotlib.pyplot as plt

if __name__ == '__main__':
    artist_names = sys.argv[1:]

    # Turns the artist names into artist IDs
    Artist_IDs = []
    for artist in artist_names:
    	Artist_IDs.append(fetchArtistId(artist))

    # Removes None from lists created by invalid artists
    # I addend in an exception to deal with invalid artists in fetchArtistId
    Artist_IDs = [x for x in Artist_IDs if x is not None]

    # Combines edge lists into one master list
    depth = 2
    edgeList = getEdgeList(Artist_IDs[0], depth)
    if len(Artist_IDs) > 1:
        for artist in Artist_IDs[1:]:
            temp = getEdgeList(artist,depth)
            edgeList = combineEdgeLists(edgeList,temp)

    g = pandasToNetworkX(edgeList)
import sys
import requests
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names

    artistlist = []
    album_list = []
    for i in range(len(artist_names)):
        artistinfo = fetchArtistInfo(fetchArtistId(artist_names[i]))

        artistlist.append(artistinfo)
        artist_id = artistinfo['id']
        albums = fetchAlbumIds(artist_id)

        for album in albums:

            albuminfo = fetchAlbumInfo(album)

            album_list.append(albuminfo)

    writeAlbumsTable(album_list)
    writeArtistsTable(artistlist)

plotBarChart()
Пример #14
0
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    # YOUR CODE HERE
    album_info_list = []
    artist_info_list = []
    for artist in artist_names:
    	artist_id = fetchArtistId(artist)
    	album_info_list.append(fetchAlbumInfo(fetchAlbumIds(fetchArtistId(artist))[0]))
    	artist_info_list.append(fetchArtistInfo(fetchArtistId(artist)))
    writeArtistsTable(artist_info_list)
    writeAlbumsTable(album_info_list)
    plotBarChart()
Пример #15
0
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    # YOUR CODE HERE
    artist_id_list = []
    artist_info_list = []
    album_id_list = []
    album_info_list = []
    for name in artist_names:
        artist_id_list.append(fetchArtistId(name))
    print artist_id_list
    for artist_id in artist_id_list:
        artist_info_list.append(fetchArtistInfo(artist_id))
    print artist_info_list
    for artist_id in artist_id_list:
        album_id_list.append(fetchAlbumIds(artist_id))
    print album_id_list
    for album_id in album_id_list:
        album_info_list.append(fetchAlbumInfo(album_id))
    print album_info_list

    writeArtistsTable(artist_info_list)
    writeAlbumsTable(album_info_list)
    plotBarChart()
Пример #16
0
        ARTIST_ID = artist['id']
        ARTIST_NAME = artist['name']
        ARTIST_FOLLOWERS = artist['followers']
        ARTIST_POPULARITY = artist['popularity']
        f.write('%s, "%s", %s, %s\n' %
                (ARTIST_ID, ARTIST_NAME, ARTIST_FOLLOWERS, ARTIST_POPULARITY))
        #writing to a file its parameter


artist_info_list = [{
    'id': '26dSoYclwsYLMAKD3tpOr4',
    'name': 'Britney Spears',
    'followers': 941683,
    'popularity': 83
}]
artist_info_list = (fetchArtistInfo(fetchArtistId("Britney Spears")))
writeArtistsTable(artist_info_list)


def writeAlbumsTable(album_info_list):
    s = open('albums.csv', 'r+')
    s.write(u'ARTIST_ID,ALBUM_ID,ALBUM_NAME,ALBUM_YEAR,ALBUM_POPULARITY')
    for album in album_info_list:
        ARTIST_ID = album['artist_id']
        ALBUM_ID = album['album_id']
        ALBUM_NAME = album['name']
        ALBUM_YEAR = album['year']
        ALBUM_POPULARITY = album['popularity']
        s.write(
            '%s, "%s", %s, %s\n' %
            (ARTIST_ID, ALBUM_ID, ALBUM_NAME, ALBUM_YEAR, ALBUM_POPULARITY))
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    artist_id = []
    album_id = []

    artist_info = [fetchArtistInfo(fetchArtistId(i)) for i in artist_names]
    album_info = []
    for i in artist_info:
        for item in fetchAlbumIds(i['id']):
            album_info.append(fetchAlbumInfo(item))
    writeArtistsTable(artist_info)
    writeAlbumsTable(album_info)
    plotBarChart()
Пример #18
0
import sys
import requests
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart, getBarChartData

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print ("input artists are ", artist_names)
    # YOUR CODE HERE
    
    artist_ids = []

    for i in range(len(artist_names)):
    	artist_ids.append(fetchArtistId(artist_names[i]))

    artist_info_list = []
    artist_album_list = {}

    for i in range(len(artist_ids)):
    	artist_info_list.append(fetchArtistInfo(artist_ids[i]))
    	artist_album_list[i]=fetchAlbumIds(artist_ids[i])

    writeArtistsTable(artist_info_list)

    album_info_list=[]

    for i in range(len(artist_album_list)):
    	for j in range(len(artist_album_list[i])):
    		album_info_list.append(fetchAlbumInfo(artist_album_list[i][j]))
Пример #19
0
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from artistNetworks import writeEdgeList
from analyzeNetworks import readEdgeList, combineEdgeLists, pandasToNetworkX, randomCentralNode
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
import numpy as np
import requests
from io import open


artist_names = sys.argv[1:]
print "input artists are ", artist_names
artistID_list = [fetchArtistId(artist_name) for artist_name in artist_names]
for artistID in artistID_list:
	writeEdgeList(artistID, 2, artistID + '.csv')

combinedEdgeList = readEdgeList(artistID_list[0] + '.csv')

for artistID in artistID_list[1:]:
    edgeList = readEdgeList(artistID + '.csv')
    combinedEdgeList = combineEdgeLists(combinedEdgeList, edgeList)

g = pandasToNetworkX(combinedEdgeList)

sample = []
for i in range(30):
	sample.append(randomCentralNode(g))

outfile = open('playlist.csv', 'w', encoding = 'utf-8')
outfile.write(u'artist_name,album_name,track_name\n')
Пример #20
0
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
	artist_names = sys.argv[1:]
	print "input artists are ", artist_names
	# YOUR CODE HERE
	ids = []
	artist_info = []
	album_info = []
	for i in artist_names:
		id = fetchArtistId(i)
		ids.append(id) #list of artist ids
		print ids

	for id in ids:
		artist_info.append(fetchArtistInfo(id)) #creating list of dictionaries of artists' info
		album_ids = fetchAlbumIds(id) #list of album ids for each artist
		print album_ids
		for album_id in album_ids:
			album_info.append(fetchAlbumInfo(album_id)) #list of dictionaries of album info
		print album_info
			
	#create artist csv and album csv
	writeArtistsTable(artist_info)
	writeAlbumsTable(album_info)
	
	plotBarChart()
def testFetchArtistId():
    assert fetchArtistId('Missy Elliott') == u'2wIVse2owClT7go1WT98tk'
    assert fetchArtistId('Robyn') == u'6UE7nl9mha6s8z0wFQFIZ2'
Пример #22
0
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    # YOUR CODE HERE
    
    artistinfo_list = []
    albuminfo_list = []

    for artist in artist_names:
    	artist_id = fetchArtistId(artist)
    	artist_info = fetchArtistInfo(artist_id)
    	artistinfo_list.append(artist_info)

    	album_id = fetchAlbumIds(artist_id)
    	for albumid in album_id:
    		album_info = fetchAlbuminfo(albumid)
    		albuminfo_list.append(album_info)

    writeArtistsTable(artistinfo_list)
    writeAlbumsTable(albuminfo_list)

    plotBarChart()


import fetchArtist as fAr
import fetchAlbums as fAl
import albumtest
import csv
import sys
import networkx as nx
import analyzeNetworks as anN
import artistNetworks as arN
import numpy as np
import requests
import pandas as pd

artistids = []
for x in sys.argv[1:]:
    artistids.append(fAr.fetchArtistId(x))

count = 1
listoffilenm = []

for artist in artistids:
    filenm = "edgelist" + str(count) + ".csv"
    arN.writeEdgeList(artist, 2, filenm)
    listoffilenm.append(filenm)
    count += 1

numberoffiles = len(listoffilenm)
subsequentindex = 2
counter2 = 2

if len(listoffilenm) != 1:
    file1 = anN.readEdgeList(listoffilenm[0])
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    artist_info_list = []
    album_info_list = []
    for artist_name in artist_names:
        artist_id = fetchArtistId(artist_name)
        artist_info = fetchArtistInfo(artist_id)
        artist_info_list.append(artist_info)
        albums_id = fetchAlbumIds(artist_id)
        for album_id in albums_id:
            album_info = fetchAlbumInfo(album_id)
            album_info_list.append(album_info)

    writeArtistsTable(artist_info_list)
    writeAlbumsTable(album_info_list)
    plotBarChart()
Пример #25
0
def createNewPlaylist(artist_name):
    cur = db.cursor()
    cur.execute('''CREATE TABLE IF NOT EXISTS songs(
 	playlistId INTEGER,
 	songOrder VARCHAR(255),
 	artistName VARCHAR(255),
 	albumName VARCHAR(255),
 	trackName VARCHAR(255));''')
    cur.execute('''CREATE TABLE IF NOT EXISTS playlists(
 	id INTEGER PRIMARY KEY
 	AUTO_INCREMENT,
 	rootArtist VARCHAR(255));''')
    a = artist_name
    ID = fetchArtistId(a)
    combined_Edge_List = getEdgeList(ID, 2)
    b = combined_Edge_List
    c = pandasToNetworkX(b)
    cur.execute('''
 	INSERT INTO playlists
 	(rootArtist)
 	VALUES
 	(%s)''', (artist_name))
    g = cur.lastrowid
    nodes = []
    albums = []
    tracks = []
    tracks_names = []
    while len(albums) < 30:
        e = randomCentralNode(c)
        f = fetchAlbumIds(e)
        if len(f) == 0:
            continue
        i = len(f) - 1
        g = randint(0, i)
        h = f[g]
        albums.append(h)
    for i in range(30):
        album_id = albums[i]
        url = "https://api.spotify.com/v1/albums/" + album_id + "/tracks"
        req = requests.get(url)
        json_data = req.json()
        j = len(json_data['items']) - 1
        k = json_data['items'][j]['id']
        tracks.append(k)
    for i in range(30):
        track_id = tracks[i]
        url = "https://api.spotify.com/v1/tracks/" + track_id
        req = requests.get(url)
        json_data = req.json()
        names = json_data['name']
        tracks_names.append(names)
    for i in range(30):
        x = fetchAlbumInfo(albums[i])
        ALBUM_NAME = x['name']
        print(x['artist_id'])
        y = fetchArtistInfo(x['artist_id'])
        ARTIST_NAME = y['name']
        TRACK_NAME = tracks_names[i]
        x = i + 1
        cur.execute(
            '''
 		INSERT INTO songs
 		(playlistId, songOrder, artistName, albumName, trackName)
 		VALUES
 		(%s, %s, %s, %s, %s )''', (g, x, ARTIST_NAME, ALBUM_NAME, TRACK_NAME))
    db.commit()
Пример #26
0
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    artists = []
    albums = []
    for an in artist_names:
        a_id = fetchArtistId(an)
        artists.append(fetchArtistInfo(a_id))
        albs = fetchAlbumIds(a_id)
        for alb in albs:
            albums.append(fetchAlbumInfo(alb))
    writeArtistsTable(artists)
    writeAlbumsTable(albums)
    plotBarChart()

Пример #27
0
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    # YOUR CODE HERE
    artist_list = []
    album_list = []
    for x in artist_names: 	
    	artist_id = fetchArtistId(x)
    	artist_info = fetchArtistInfo(artist_id)
        artist_list.append(artist_info)
        album_id = fetchAlbumIds(artist_id)
        albums_info = [fetchAlbumInfo(y) for y in album_id]
        album_list +=albums_info

    writeArtistsTable(artist_list)
    writeAlbumsTable(album_list)
    plotBarChart()


import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    artists_ids = []
    artist_info = []
    print "input artists are ", artist_names
    for n in artist_names:
    	id = fetchArtistId(n)
    	artists_ids.append(id)
    	artist_info.append(fetchArtistInfo(id))

    album_info = []
    for ids in artists_ids:
    	album_id = fetchAlbumIds(ids)
    	for alb in album_id:
    		album_info.append(fetchAlbumInfo(alb))
    writeArtistsTable(artist_info)
    writeAlbumsTable(album_info)
    plotBarChart()


    

Пример #29
0
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    # YOUR CODE HERE

    artistinfo_list = []
    albuminfo_list = []

    for artist in artist_names:
        artist_id = fetchArtistId(artist)
        artist_info = fetchArtistInfo(artist_id)
        artistinfo_list.append(artist_info)

        album_id = fetchAlbumIds(artist_id)
        for albumid in album_id:
            album_info = fetchAlbuminfo(albumid)
            albuminfo_list.append(album_info)

    writeArtistsTable(artistinfo_list)
    writeAlbumsTable(albuminfo_list)

    plotBarChart()
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    # YOUR CODE HERE

    artist_ids = []
    # Creates a list of artist IDs
    for artist in artist_names:
        artist_ids.append(fetchArtistId(artist))

    artist_info = []
    # Creates a list of artist info dictionaries
    for ids in artist_ids:
        artist_info.append(fetchArtistInfo(ids))

    artist_album_ids = []
    # Creates a list of lists of album ids
    for ids in artist_ids:
        artist_album_ids.append(fetchAlbumIds(ids))

    albums_info = []
    # Creates a list of dictionaries of album information
    for artist_albums in artist_album_ids:
        for ids in artist_albums:
            albums_info.append(fetchAlbumInfo(ids))
import sys
from fetchArtist import fetchArtistId, fetchArtistInfo
from fetchAlbums import fetchAlbumIds, fetchAlbumInfo
from csvUtils import writeArtistsTable, writeAlbumsTable
from barChart import plotBarChart

if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    # YOUR CODE HERE
    artistinfolist = [fetchArtistInfo(fetchArtistId(i)) for i in artist_names]
    albuminfolist = []
    for i in artistinfolist:
        #print i['id']
        for albumid in fetchAlbumIds(i['id']):
            albuminfolist.append(fetchAlbumInfo(albumid))
    writeArtistsTable(artistinfolist)
    writeAlbumsTable(albuminfolist)
    plotBarChart()
    """else:
        print "Result OK"""
    if result_list[0] == None:
        Continue
    info = result_list[0].json()
    data = {}
    data['name'] = info['name']
    return (data)


if __name__ == '__main__':
    artist_names = sys.argv[1:]
    print "input artists are ", artist_names
    #generate the network
    old_edgelist = None
    artistidlist = [fetchArtistId(i) for i in artist_names]

    for i in artistidlist:
        edgelist = getEdgeList(i, 2)
        new_edgelist = combineEdgeLists(edgelist, old_edgelist)
        old_edgelist = new_edgelist

        #pick tracks
        k = 0
        artist_list = []
        while k != 30:
            artist_dict = {}
            artist_dict['artist_name'] = fetchArtistInfo(
                randomCentralNode(pandasToNetworkX(old_edgelist)))['name']
            #print artist_dict['artist_name']
            album_id = np.random.choice(