Merge branch 'newartistsdb' into develop

This commit is contained in:
rembo10
2012-07-13 16:29:59 +05:30
8 changed files with 35 additions and 27 deletions

View File

@@ -20,10 +20,10 @@
</tr>
</thead>
<tbody>
%for artist in headphones.NEW_ARTISTS:
%for artist in newartists:
<tr class="gradeZ">
<td id="select"><input type="checkbox" name="${artist}" class="checkbox" /></td>
<td id="name">${artist}</a></td>
<td id="select"><input type="checkbox" name="${artist['ArtistName']}" class="checkbox" /></td>
<td id="name">${artist['ArtistName']}</a></td>
</tr>
%endfor
</tbody>
@@ -49,4 +49,4 @@
});
});
</script>
</%def>
</%def>

View File

@@ -20,10 +20,10 @@
</tr>
</thead>
<tbody>
%for artist in headphones.NEW_ARTISTS:
%for artist in newartists:
<tr class="gradeZ">
<td id="select"><input type="checkbox" name="${artist}" class="checkbox" /></td>
<td id="name">${artist}</a></td>
<td id="select"><input type="checkbox" name="${artist['ArtistName']}" class="checkbox" /></td>
<td id="name">${artist['ArtistName']}</a></td>
</tr>
%endfor
</tbody>
@@ -49,4 +49,4 @@
});
});
</script>
</%def>
</%def>

View File

@@ -31,10 +31,10 @@
</tr>
</thead>
<tbody>
%for artist in headphones.NEW_ARTISTS:
%for artist in newartists:
<tr class="gradeZ">
<td id="select"><input type="checkbox" name="${artist}" class="checkbox" /></td>
<td id="name">${artist}</a></td>
<td id="select"><input type="checkbox" name="${artist['ArtistName']}" class="checkbox" /></td>
<td id="name">${artist['ArtistName']}</a></td>
</tr>
%endfor
</tbody>
@@ -64,4 +64,4 @@
initActions();
});
</script>
</%def>
</%def>

View File

@@ -20,10 +20,10 @@
</tr>
</thead>
<tbody>
%for artist in headphones.NEW_ARTISTS:
%for artist in newartists:
<tr class="gradeZ">
<td id="select"><input type="checkbox" name="${artist}" class="checkbox" /></td>
<td id="name">${artist}</a></td>
<td id="select"><input type="checkbox" name="${artist['ArtistName']}" class="checkbox" /></td>
<td id="name">${artist['ArtistName']}</a></td>
</tr>
%endfor
</tbody>
@@ -49,4 +49,4 @@
});
});
</script>
</%def>
</%def>

View File

@@ -89,7 +89,6 @@ PREFERRED_QUALITY = None
PREFERRED_BITRATE = None
DETECT_BITRATE = False
ADD_ARTISTS = False
NEW_ARTISTS = []
CORRECT_METADATA = False
MOVE_FILES = False
RENAME_FILES = False
@@ -698,6 +697,7 @@ def dbcheck():
c.execute('CREATE TABLE IF NOT EXISTS lastfmcloud (ArtistName TEXT, ArtistID TEXT, Count INTEGER)')
c.execute('CREATE TABLE IF NOT EXISTS descriptions (ArtistID TEXT, ReleaseGroupID TEXT, ReleaseID TEXT, Summary TEXT, Content TEXT, LastUpdated TEXT)')
c.execute('CREATE TABLE IF NOT EXISTS blacklist (ArtistID TEXT UNIQUE)')
c.execute('CREATE TABLE IF NOT EXISTS newartists (ArtistName TEXT UNIQUE)')
c.execute('CREATE TABLE IF NOT EXISTS releases (ReleaseID TEXT, ReleaseGroupID TEXT, UNIQUE(ReleaseID, ReleaseGroupID))')
c.execute('CREATE INDEX IF NOT EXISTS tracks_albumid ON tracks(AlbumID ASC)')
c.execute('CREATE INDEX IF NOT EXISTS album_artistid_reldate ON albums(ArtistID ASC, ReleaseDate DESC)')

View File

@@ -40,9 +40,6 @@ def is_exists(artistid):
def artistlist_to_mbids(artistlist, forced=False):
for artist in artistlist:
if forced:
artist = unicode(artist, 'utf-8')
results = mb.findArtist(artist, limit=1)
@@ -57,12 +54,15 @@ def artistlist_to_mbids(artistlist, forced=False):
logger.info('MusicBrainz query turned up no matches for: %s' % artist)
continue
# Check if it's blacklisted/various artists
# Check if it's blacklisted/various artists (only check if it's not forced, e.g. through library scan auto-add.)
# Forced example = Adding an artist from Manage New Artists
myDB = db.DBConnection()
bl_artist = myDB.action('SELECT * FROM blacklist WHERE ArtistID=?', [artistid]).fetchone()
if bl_artist or artistid == various_artists_mbid:
logger.info("Artist ID for '%s' is either blacklisted or Various Artists. To add artist, you must do it manually (Artist ID: %s)" % (artist, artistid))
continue
if not forced:
bl_artist = myDB.action('SELECT * FROM blacklist WHERE ArtistID=?', [artistid]).fetchone()
if bl_artist or artistid == various_artists_mbid:
logger.info("Artist ID for '%s' is either blacklisted or Various Artists. To add artist, you must do it manually (Artist ID: %s)" % (artist, artistid))
continue
# Add to database if it doesn't exist
if not is_exists(artistid):
@@ -73,6 +73,10 @@ def artistlist_to_mbids(artistlist, forced=False):
havetracks = len(myDB.select('SELECT TrackTitle from tracks WHERE ArtistID=?', [artistid])) + len(myDB.select('SELECT TrackTitle from have WHERE ArtistName like ?', [artist]))
myDB.action('UPDATE artists SET HaveTracks=? WHERE ArtistID=?', [havetracks, artistid])
# Delete it from the New Artists if the request came from there
if forced:
myDB.action('DELETE from newartists WHERE ArtistName=?', [artist])
# Update the similar artist tag cloud:
logger.info('Updating artist information from Last.fm')
try:

View File

@@ -126,7 +126,9 @@ def libraryScan(dir=None):
importer.artistlist_to_mbids(artist_list)
else:
logger.info('To add these artists, go to Manage->Manage New Artists')
headphones.NEW_ARTISTS = artist_list
myDB.action('DELETE from newartists')
for artist in artist_list:
myDB.action('INSERT into newartists VALUES (?)', [artist])
if headphones.DETECT_BITRATE:
headphones.PREFERRED_BITRATE = sum(bitrates)/len(bitrates)/1000

View File

@@ -236,7 +236,9 @@ class WebInterface(object):
manageAlbums.exposed = True
def manageNew(self):
return serve_template(templatename="managenew.html", title="Manage New Artists")
myDB = db.DBConnection()
newartists = myDB.select('SELECT * from newartists')
return serve_template(templatename="managenew.html", title="Manage New Artists", newartists=newartists)
manageNew.exposed = True
def markArtists(self, action=None, **args):