Merge remote-tracking branch 'plww/lastfmtag' into develop

This commit is contained in:
rembo10
2012-10-17 16:54:10 -03:00
3 changed files with 62 additions and 1 deletions
+35
View File
@@ -126,6 +126,41 @@ def getArtists():
for artistid in artistlist:
importer.addArtisttoDB(artistid)
def getTagTopArtists(tag, limit=50):
myDB = db.DBConnection()
results = myDB.select('SELECT ArtistID from artists')
url = 'http://ws.audioscrobbler.com/2.0/?method=tag.gettopartists&limit=%s&tag=%s&api_key=%s' % (limit, tag, api_key)
data = urllib2.urlopen(url, timeout=20).read()
try:
d = minidom.parseString(data)
except:
logger.error("Could not parse artist list from last.fm data")
return
artists = d.getElementsByTagName("artist")
artistlist = []
for artist in artists:
mbidnode = artist.getElementsByTagName("mbid")[0].childNodes
for node in mbidnode:
artist_mbid = node.data
try:
if not any(artist_mbid in x for x in results):
artistlist.append(artist_mbid)
except:
continue
from headphones import importer
for artistid in artistlist:
importer.addArtisttoDB(artistid)
def getAlbumDescription(rgid, artist, album):
myDB = db.DBConnection()
+6
View File
@@ -352,6 +352,12 @@ class WebInterface(object):
raise cherrypy.HTTPRedirect("home")
importLastFM.exposed = True
def importLastFMTag(self, tag, limit):
threading.Thread(target=lastfm.getTagTopArtists, args=(tag, limit)).start()
time.sleep(10)
raise cherrypy.HTTPRedirect("home")
importLastFMTag.exposed = True
def importItunes(self, path):
headphones.PATH_TO_XML = path
headphones.config_write()