public void Process(object obj) { Logger.WriteLine(Tokens.Info, "Cover search..."); Tag tag = obj as Tag; try { GoogleImageQuery.ImageResult result = query.Query(BuildQuery(tag)); if (!Object.ReferenceEquals(result, null)) { WriteCoverToDisc(tag, result); CreatePictureTag(tag, result.Image, result.Url); } else { Logger.WriteLine(Tokens.Info, "No results found!"); } } catch (Exception ex) { Logger.WriteLine(Tokens.Exception, ex); } }
private void WriteCoverToDisc(Tag tag, GoogleImageQuery.ImageResult result) { string cachePath = Path.Combine(App.AppDataFolder, "Covers"); if (!VirtualDrive.ExistsDirectory(cachePath)) { // TODO: VirtualDrive VirtualDrive.CreateDirectory(cachePath); } TagEditor editor = new TagEditor(tag); string url = result.Url; string suffix = url.Substring(url.Length - 3, 3); string file = Path.Combine(cachePath, dirNameGenerator.Name(editor.Get()) + "." + suffix); if (!File.Exists(file)) { using (Stream stream = File.OpenWrite(file)) { stream.Write(result.Image, 0, result.Image.Length); } } }