private static string GetCardImage(ImageAble card) { if (card == null) { return(null); } if (File.Exists(cache_image_dir + card.GetImageFileName())) { return(cache_image_dir + card.GetImageFileName()); } List <ImageAble> banned = new List <ImageAble>(); while (true) { foreach (string url in card.GetImageUrls()) { if (File.Exists(cache_image_dir + card.GetImageFileName())) { return(cache_image_dir + card.GetImageFileName()); } } banned.Add(card); card = manager.ReNew(card, banned); if (card == null) { break; } } return(null); }
private static void ProcessCard(ImageAble card, int amount) { if (card == null) { return; } if (File.Exists(cache_image_dir + card.GetImageFileName())) { imaged_cards.Add(card, amount); card.SetCachedImage(cache_image_dir + card.GetImageFileName()); return; } List <ImageAble> banned = new List <ImageAble>(); bool downloaded = false; while (!downloaded) { foreach (string url in card.GetImageUrls()) { try { Thread.Sleep(100); Download(url, cache_image_dir + card.GetImageFileName()); imaged_cards.Add(card, amount); card.SetCachedImage(cache_image_dir + card.GetImageFileName()); downloaded = true; break; } catch (Exception) { continue; } } if (!downloaded) { banned.Add(card); card = manager.ReNew(card, banned); } if (card == null) { Console.WriteLine("[E] Error: Failed to download card \"" + card.GetName() + "\""); break; } } }