private void FetchForTrack (DatabaseTrackInfo track)
{
bool save = true;
try {
if (String.IsNullOrEmpty (track.AlbumTitle) || track.AlbumTitle == Catalog.GetString ("Unknown Album") ||
String.IsNullOrEmpty (track.ArtistName) || track.ArtistName == Catalog.GetString ("Unknown Artist")) {
// Do not try to fetch album art for these
} else {
IMetadataLookupJob job = MetadataService.Instance.CreateJob (track);
job.Run ();
}
} catch (System.Threading.ThreadAbortException) {
save = false;
throw;
} catch (Exception e) {
Log.Exception (e);
} finally {
if (save) {
bool have_cover_art = CoverArtSpec.CoverExists (track.ArtistName, track.AlbumTitle);
ServiceManager.DbConnection.Execute (
"INSERT OR REPLACE INTO CoverArtDownloads (AlbumID, Downloaded, LastAttempt) VALUES (?, ?, ?)",
track.AlbumId, have_cover_art, DateTime.Now);
}
}
}