示例#1
0
        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);
        }
示例#2
0
        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;
                }
            }
        }