From b1a47a2a918c86f99c2d5218079fb7b73e48a7f6 Mon Sep 17 00:00:00 2001 From: theguardian Date: Wed, 11 Dec 2013 14:47:28 -0800 Subject: [PATCH] Fixed minor bug where new releases wouldn't be updated. Improved logging to give better insights. --- headphones/importer.py | 47 +++++++++++++++++++++++------------------- headphones/mb.py | 7 +++++-- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/headphones/importer.py b/headphones/importer.py index e352bf61..78120a2e 100644 --- a/headphones/importer.py +++ b/headphones/importer.py @@ -207,10 +207,10 @@ def addArtisttoDB(artistid, extrasonly=False, forcefull=False): myDB.action("DELETE FROM allalbums WHERE AlbumID=?", [items['AlbumID']]) myDB.action("DELETE FROM tracks WHERE AlbumID=?", [items['AlbumID']]) myDB.action("DELETE FROM alltracks WHERE AlbumID=?", [items['AlbumID']]) - logger.info("Removing all references to group %s to reflect MusicBrainz" % items['AlbumID']) + logger.info("[%s] Removing all references to release group %s to reflect MusicBrainz" % (artist['artist_name'], items['AlbumID'])) force_repackage = 1 else: - logger.info("Error pulling data from MusicBrainz: Maintaining dB") + logger.info("[%s] Error pulling data from MusicBrainz: Maintaining dB" % artist['artist_name']) # Then search for releases within releasegroups, if releases don't exist, then remove from allalbums/alltracks @@ -228,30 +228,35 @@ def addArtisttoDB(artistid, extrasonly=False, forcefull=False): check_release_date = myDB.action("SELECT ReleaseDate from albums WHERE ArtistID=? AND AlbumTitle=?", (artistid, al_title)).fetchone() if check_release_date: if check_release_date[0] is None: - logger.info("Now updating: " + rg['title']) - new_releases = mb.get_new_releases(rgid,includeExtras) - elif len(check_release_date[0])!=10: - logger.info("Now updating: " + rg['title']) - new_releases = mb.get_new_releases(rgid,includeExtras) + logger.info("[%s] Now updating: %s (No Release Date)" % (artist['artist_name'], rg['title'])) + new_releases = mb.get_new_releases(rgid,includeExtras,True) else: - if helpers.get_age(today) - helpers.get_age(check_release_date[0]) < pause_delta: - logger.info("Now updating: " + rg['title']) - new_releases = mb.get_new_releases(rgid,includeExtras) + if len(check_release_date[0]) == 10: + release_date = check_release_date[0] + elif len(check_release_date[0]) == 7: + release_date = check_release_date[0]+"-31" + elif len(check_release_date[0]) == 4: + release_date = check_release_date[0]+"-12-31" else: - logger.info('%s is over %s days old; not updating' % (al_title, pause_delta)) + release_date = today + if helpers.get_age(today) - helpers.get_age(release_date) < pause_delta: + logger.info("[%s] Now updating: %s (Release Date <%s Days) " % (artist['artist_name'], rg['title'], pause_delta)) + new_releases = mb.get_new_releases(rgid,includeExtras,True) + else: + logger.info("[%s] Skipping: %s (Release Date >%s Days)" % (artist['artist_name'], rg['title'], pause_delta)) skip_log = 1 new_releases = 0 else: - logger.info("Now adding/updating: " + rg['title']) + logger.info("[%s] Now adding: %s (New Release Group)" % (artist['artist_name'], rg['title'])) new_releases = mb.get_new_releases(rgid,includeExtras) if force_repackage == 1: new_releases = -1 - logger.info('Forcing repackage of %s, since release groups have been removed' % al_title) + logger.info('[%s] Forcing repackage of %s (Release Group Removed)' % (artist['artist_name'], al_title)) else: new_releases = new_releases else: - logger.info("Now adding/updating: " + rg['title']) + logger.info("[%s] Now adding/updating: %s (Comprehensive Force)" % (artist['artist_name'], rg['title'])) new_releases = mb.get_new_releases(rgid,includeExtras,forcefull) #What this does is adds new releases per artist to the allalbums + alltracks databases @@ -305,10 +310,10 @@ def addArtisttoDB(artistid, extrasonly=False, forcefull=False): # This may end up being called with an empty fullreleaselist try: hybridrelease = getHybridRelease(fullreleaselist) - logger.info('Packaging %s releases into hybrid title' % rg['title']) + logger.info('[%s] Packaging %s releases into hybrid title' % (artist['artist_name'], rg['title'])) except Exception, e: errors = True - logger.warn('Unable to get hybrid release information for %s: %s' % (rg['title'],e)) + logger.warn('[%s] Unable to get hybrid release information for %s: %s' % (artist['artist_name'],rg['title'],e)) continue # Use the ReleaseGroupID as the ReleaseID for the hybrid release to differentiate it @@ -445,7 +450,7 @@ def addArtisttoDB(artistid, extrasonly=False, forcefull=False): myDB.action('UPDATE albums SET Status=? WHERE AlbumID=?', ['Downloaded', rg['id']]) marked_as_downloaded = True - logger.info(u"Seeing if we need album art for " + rg['title']) + logger.info(u"[%s] Seeing if we need album art for %s" % (artist['artist_name'], rg['title'])) cache.getThumb(AlbumID=rg['id']) #start a search for the album if it's new, hasn't been marked as downloaded and autowant_all is selected: @@ -454,7 +459,7 @@ def addArtisttoDB(artistid, extrasonly=False, forcefull=False): searcher.searchforalbum(albumid=rg['id']) else: if skip_log == 0: - logger.info(u"No new releases, so no changes made to " + rg['title']) + logger.info(u"[%s] No new releases, so no changes made to %s" % (artist['artist_name'], rg['title'])) latestalbum = myDB.action('SELECT AlbumTitle, ReleaseDate, AlbumID from albums WHERE ArtistID=? order by ReleaseDate DESC', [artistid]).fetchone() totaltracks = len(myDB.select('SELECT TrackTitle from tracks WHERE ArtistID=?', [artistid])) @@ -480,13 +485,13 @@ def addArtisttoDB(artistid, extrasonly=False, forcefull=False): myDB.upsert("artists", newValueDict, controlValueDict) - logger.info(u"Seeing if we need album art for: " + artist['artist_name']) + logger.info(u"Seeing if we need album art for: %s" % artist['artist_name']) cache.getThumb(ArtistID=artistid) if errors: - logger.info("Finished updating artist: " + artist['artist_name'] + " but with errors, so not marking it as updated in the database") + logger.info("[%s] Finished updating artist: %s but with errors, so not marking it as updated in the database" % (artist['artist_name'], artist['artist_name'])) else: - logger.info(u"Updating complete for: " + artist['artist_name']) + logger.info(u"Updating complete for: %s" % artist['artist_name']) def addReleaseById(rid): diff --git a/headphones/mb.py b/headphones/mb.py index 79ff3ef4..6e5d4a3b 100644 --- a/headphones/mb.py +++ b/headphones/mb.py @@ -483,10 +483,13 @@ def get_new_releases(rgid,includeExtras=False,forcefull=False): num_new_releases = num_new_releases + 1 #print releasedata['title'] #print num_new_releases - logger.info('New release %s (%s) added' % (release['AlbumTitle'], rel_id_check)) + if album_checker: + logger.info('[%s] Existing release %s (%s) updated' % (release['ArtistName'], release['AlbumTitle'], rel_id_check)) + else: + logger.info('[%s] New release %s (%s) added' % (release['ArtistName'], release['AlbumTitle'], rel_id_check)) if force_repackage1 == 1: num_new_releases = -1 - logger.info('Forcing repackage of %s, since dB releases have been removed' % release_title) + logger.info('[%s] Forcing repackage of %s, since dB releases have been removed' % (release['ArtistName'], release_title)) else: num_new_releases = num_new_releases