diff --git a/headphones/importer.py b/headphones/importer.py index ede5c3b4..22478bc2 100644 --- a/headphones/importer.py +++ b/headphones/importer.py @@ -232,7 +232,7 @@ def addArtisttoDB(artistid, extrasonly=False): logger.info("Now updating: " + rg['title']) new_releases = mb.get_new_releases(rgid,includeExtras) else: - if helpers.get_age(today) - helpers.get_age(check_release_date[0]) < 365: + if helpers.get_age(today) - helpers.get_age(check_release_date[0]) < 36500: logger.info("Now updating: " + rg['title']) new_releases = mb.get_new_releases(rgid,includeExtras) else: @@ -261,32 +261,35 @@ def addArtisttoDB(artistid, extrasonly=False): find_hybrid_releases = myDB.action("SELECT * from allalbums WHERE AlbumID=?", [rg['id']]) # Build the dictionary for the fullreleaselist for items in find_hybrid_releases: - hybrid_release_id = items['ReleaseID'] - newValueDict = {"ArtistID": items['ArtistID'], - "ArtistName": items['ArtistName'], - "AlbumTitle": items['AlbumTitle'], - "AlbumID": items['AlbumID'], - "AlbumASIN": items['AlbumASIN'], - "ReleaseDate": items['ReleaseDate'], - "Type": items['Type'], - "ReleaseCountry": items['ReleaseCountry'], - "ReleaseFormat": items['ReleaseFormat'] - } - find_hybrid_tracks = myDB.action("SELECT * from alltracks WHERE ReleaseID=?", [hybrid_release_id]) - totalTracks = 1 - hybrid_track_array = [] - for hybrid_tracks in find_hybrid_tracks: - hybrid_track_array.append({ - 'number': hybrid_tracks['TrackNumber'], - 'title': hybrid_tracks['TrackTitle'], - 'id': hybrid_tracks['TrackID'], - #'url': hybrid_tracks['TrackURL'], - 'duration': hybrid_tracks['TrackDuration'] - }) - totalTracks += 1 - newValueDict['ReleaseID'] = hybrid_release_id - newValueDict['Tracks'] = hybrid_track_array - fullreleaselist.append(newValueDict) + if items['ReleaseID'] != rg['id']: #don't include hybrid information, since that's what we're replacing + hybrid_release_id = items['ReleaseID'] + newValueDict = {"ArtistID": items['ArtistID'], + "ArtistName": items['ArtistName'], + "AlbumTitle": items['AlbumTitle'], + "AlbumID": items['AlbumID'], + "AlbumASIN": items['AlbumASIN'], + "ReleaseDate": items['ReleaseDate'], + "Type": items['Type'], + "ReleaseCountry": items['ReleaseCountry'], + "ReleaseFormat": items['ReleaseFormat'] + } + find_hybrid_tracks = myDB.action("SELECT * from alltracks WHERE ReleaseID=?", [hybrid_release_id]) + totalTracks = 1 + hybrid_track_array = [] + for hybrid_tracks in find_hybrid_tracks: + hybrid_track_array.append({ + 'number': hybrid_tracks['TrackNumber'], + 'title': hybrid_tracks['TrackTitle'], + 'id': hybrid_tracks['TrackID'], + #'url': hybrid_tracks['TrackURL'], + 'duration': hybrid_tracks['TrackDuration'] + }) + totalTracks += 1 + newValueDict['ReleaseID'] = hybrid_release_id + newValueDict['Tracks'] = hybrid_track_array + fullreleaselist.append(newValueDict) + + #print fullreleaselist # Basically just do the same thing again for the hybrid release # This may end up being called with an empty fullreleaselist @@ -489,6 +492,7 @@ def addArtisttoDB(artistid, extrasonly=False): logger.info("Finished updating artist: " + artist['artist_name'] + " but with errors, so not marking it as updated in the database") else: logger.info(u"Updating complete for: " + artist['artist_name']) + def addReleaseById(rid): diff --git a/headphones/mb.py b/headphones/mb.py index e725f047..2ef7700e 100644 --- a/headphones/mb.py +++ b/headphones/mb.py @@ -357,7 +357,7 @@ def get_new_releases(rgid,includeExtras=False): #Clean all references to releases in dB that are no longer referenced in musicbrainz release_list = [] - force_repackage = 0 + force_repackage1 = 0 if len(results) != 0: for release_mark in results: release_list.append(unicode(release_mark['id'])) @@ -371,7 +371,7 @@ def get_new_releases(rgid,includeExtras=False): myDB.action("DELETE FROM allalbums WHERE ReleaseID=?", [items['ReleaseID']]) myDB.action("DELETE FROM alltracks WHERE ReleaseID=?", [items['ReleaseID']]) logger.info("Removing all references to release %s to reflect MusicBrainz" % items['ReleaseID']) - force_repackage = 1 + force_repackage1 = 1 else: logger.info("Error pulling data from MusicBrainz: Maintaining dB") @@ -435,7 +435,6 @@ def get_new_releases(rgid,includeExtras=False): myDB.upsert("allalbums", newValueDict, controlValueDict) - for track in release['Tracks']: cleanname = helpers.cleanName(release['ArtistName'] + ' ' + release['AlbumTitle'] + ' ' + track['title']) @@ -471,7 +470,7 @@ def get_new_releases(rgid,includeExtras=False): #print releasedata['title'] #print num_new_releases logger.info('New release %s (%s) added' % (release['AlbumTitle'], rel_id_check)) - if force_repackage == 1: + if force_repackage1 == 1: num_new_releases = -1 logger.info('Forcing repackage of %s, since dB releases have been removed' % release_title) else: