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); } } }
private void FetchForTrack(DatabaseTrackInfo track) { bool save = true; try { if (!String.IsNullOrEmpty(track.ArtistName)) { IMetadataLookupJob job = MetadataService.Instance.CreateJob(track); job.Run(); } } catch (System.Threading.ThreadAbortException) { save = false; throw; } finally { if (save) { // additional work might be done here } } }
public virtual void Run() { foreach (IMetadataProvider provider in service.Providers) { if (cancelled) { break; } ; try { lock (this) { current_job = provider.CreateJob(track); } current_job.Run(); if (cancelled) { break; } ; foreach (StreamTag tag in current_job.ResultTags) { AddTag(tag); } lock (this) { current_job = null; } } catch (System.Threading.ThreadAbortException) { throw; } catch (Exception e) { Log.Error(e); } } service.OnHaveResult(this); }
private void FetchForTrack(DatabaseTrackInfo track) { bool save = true; try { IMetadataLookupJob job = MetadataService.Instance.CreateJob(track); job.Run(); } catch (System.Threading.ThreadAbortException) { save = false; throw; } catch (Exception e) { Log.Error(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); } } }
public virtual void Run() { foreach(IMetadataProvider provider in service.Providers) { if (cancelled) break;; try { lock (this) { current_job = provider.CreateJob(track); } current_job.Run(); if (cancelled) break;; foreach(StreamTag tag in current_job.ResultTags) { AddTag(tag); } lock (this) { current_job = null; } } catch (System.Threading.ThreadAbortException) { throw; } catch(Exception e) { Hyena.Log.Exception (e); } } service.OnHaveResult (this); }
public virtual void Lookup(IBasicTrackInfo track) { IMetadataLookupJob job = CreateJob(track); job.Run(); }