From 1dae8ca6b21005641e2c9a9f88b9ea4faf353809 Mon Sep 17 00:00:00 2001 From: spjspj Date: Thu, 27 Oct 2016 16:02:00 +1100 Subject: [PATCH] spjspj - Add in promos from scg to grabbag. Fixed some badly numbered lands (probably more are bad). --- .../card/dl/sources/GrabbagImageSource.java | 1099 ++++++++++++----- .../plugins/card/images/DownloadPictures.java | 61 +- 2 files changed, 824 insertions(+), 336 deletions(-) diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java index 3d18772b309..f7e4d927997 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java @@ -51,7 +51,7 @@ public class GrabbagImageSource implements CardImageSource { @Override public String getSourceName() { - return "http://magiccards.info/scans/en/"; + return ""; } @Override @@ -64,15 +64,12 @@ public class GrabbagImageSource implements CardImageSource { if (copyUrlToImage == null) { setupLinks(); } - try { - Thread.sleep(2000); - } catch (InterruptedException ex) { - } for (String key : copyUrlToImageDone.keySet()) { if (copyUrlToImageDone.get(key) < maxTimes) { copyUrlToImageDone.put(key, maxTimes); - return key; + doPause(key); + return getSourceName(key) + key; } } if (maxTimes < 2) { @@ -81,7 +78,8 @@ public class GrabbagImageSource implements CardImageSource { for (String key : copyUrlToImageDone.keySet()) { if (copyUrlToImageDone.get(key) < maxTimes) { copyUrlToImageDone.put(key, maxTimes); - return key; + doPause(key); + return getSourceName(key) + key; } } return null; @@ -89,8 +87,11 @@ public class GrabbagImageSource implements CardImageSource { @Override public String getFileForHttpImage(String httpImageUrl) { - if (httpImageUrl != null) { - return copyUrlToImage.get(httpImageUrl); + String copy = httpImageUrl; + if (copy != null) { + copy = copy.replaceFirst("http:\\/\\/static.starcitygames.com\\/sales\\/cardscans\\/", ""); + copy = copy.replaceFirst("http:\\/\\/magiccards.info\\/scans\\/en\\/", ""); + return copyUrlToImage.get(copy); } return null; } @@ -116,133 +117,511 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImageDone = new HashMap<>(); //http://anonymouse.org/cgi-bin/anon-www.cgi/http://magiccards.info/scans/en/arena/42.jpg - copyUrlToImage.put("apac/1.jpg", "APAC.zip/APAC/Forest 3.full.jpg"); - copyUrlToImage.put("apac/10.jpg", "APAC.zip/APAC/Swamp.5.full.jpg"); - copyUrlToImage.put("apac/11.jpg", "APAC.zip/APAC/Forest 2.full.jpg"); + copyUrlToImage.put("MTG/BNG/en/promo/ArbiterOfTheIdeal.jpg", "PTC.zip/PTC/Arbiter of the Ideal.full.jpg"); + copyUrlToImage.put("MTG/BNG/en/promo/CourserOfKruphix.jpg", "PTC.zip/PTC/Courser of Kruphix.full.jpg"); + copyUrlToImage.put("MTG/BNG/en/promo/EaterOfHope.jpg", "PTC.zip/PTC/Eater of Hope.full.jpg"); + copyUrlToImage.put("MTG/BNG/en/promo/FatedConflagration.jpg", "PTC.zip/PTC/Fated Return.full.jpg"); + copyUrlToImage.put("MTG/BNG/en/promo/ForgestokerDragon.jpg", "PTC.zip/PTC/Forgestoker Dragon.full.jpg"); + copyUrlToImage.put("MTG/BNG/en/promo/NessianWildsRavager.jpg", "PTC.zip/PTC/Nessian Wilds Ravager.full.jpg"); + copyUrlToImage.put("MTG/BNG/en/promo/PainSeer.jpg", "PTC.zip/PTC/Pain Seer.full.jpg"); + copyUrlToImage.put("MTG/BNG/en/promo/SilentSentinel.jpg", "PTC.zip/PTC/Silent Sentinel.full.jpg"); + copyUrlToImage.put("MTG/BNG/en/promo/Tromokratis.jpg", "PTC.zip/PTC/Triskaidekaphobia.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/AleshaWhoSmilesatDeath.jpg", "PTC.zip/PTC/Alesha, Who Smiles at Death.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/Arcbond.jpg", "PTC.zip/PTC/Arcbond.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/ArchfiendofDepravity.jpg", "PTC.zip/PTC/Archfiend of Depravity.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/AtarkaWorldRender.jpg", "PTC.zip/PTC/Atarka, World Render.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/BrutalHordechief.jpg", "PTC.zip/PTC/Brutal Hordechief.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/DaghatartheAdamant.jpg", "PTC.zip/PTC/Daghatar the Adamant.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/DragonscaleGeneral.jpg", "PTC.zip/PTC/Dragonscale General.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/DromokatheEternal.jpg", "PTC.zip/PTC/Dromoka, the Eternal.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/FlamerushRider.jpg", "PTC.zip/PTC/Flamerush Rider.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/FlamewakePhoenix.jpg", "PTC.zip/PTC/Flamewake Phoenix.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/JeskaiInfiltrator.jpg", "PTC.zip/PTC/Jeskai Infiltrator.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/KolaghantheStorm’sFury.jpg", "PTC.zip/PTC/Kolaghan, the Storm’s Fury.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/MarduStrikeleader.jpg", "PTC.zip/PTC/Mardu Strike leader.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/MasteryoftheUnseen.jpg", "PTC.zip/PTC/Mastery of the Unseen.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/OjutaiSoulofWinter.jpg", "PTC.zip/PTC/Ojutai, Soul of Winter.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/RallytheAncestors.jpg", "PTC.zip/PTC/Rally the Ancestors.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/Sage-EyeAvengers.jpg", "PTC.zip/PTC/Sage-Eye Avengers.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/SandsteppeMastodon.jpg", "PTC.zip/PTC/Sandsteppe Mastodon.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/ShamanicRevelation.jpg", "PTC.zip/PTC/Shamanic Revelation.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/ShamanoftheGreatHunt.jpg", "PTC.zip/PTC/Shaman of the Great Hunt.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/ShuYuntheSilentTempest.jpg", "PTC.zip/PTC/Shu Yun, the Silent Tempest.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/SilumgartheDriftingDeath.jpg", "PTC.zip/PTC/Silumgar, the Drifting Death.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/SoulfireGrandMaster.jpg", "PTC.zip/PTC/Soulfire Grand Master.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/Soulflayer.jpg", "PTC.zip/PTC/Soulflayer.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/SupplantForm.jpg", "PTC.zip/PTC/Supplant Form.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/TasigurtheGoldenFang.jpg", "PTC.zip/PTC/Tasigur, the Golden Fang.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/TorrentElemental.jpg", "PTC.zip/PTC/Torrent Elemental.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/WardenoftheFirstTree.jpg", "PTC.zip/PTC/Warden of the First Tree.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/Wildcall.jpg", "PTC.zip/PTC/Wildcall.full.jpg"); + copyUrlToImage.put("MTG/FRF/en/promo/prerelease/YasovaDragonclaw.jpg", "PTC.zip/PTC/Yasova Dragonclaw.full.jpg"); + copyUrlToImage.put("MTG/JOU/en/promo/DawnbringerCharioteers.jpg", "PTC.zip/PTC/Dawnbringer Charioteers.full.jpg"); + copyUrlToImage.put("MTG/JOU/en/promo/DictateOfKruphix.jpg", "PTC.zip/PTC/Dictate of Kruphix.full.jpg"); + copyUrlToImage.put("MTG/JOU/en/promo/DictateOfTheTwinGods.jpg", "PTC.zip/PTC/Dictate of the Twin Gods.full.jpg"); + copyUrlToImage.put("MTG/JOU/en/promo/DoomwakeGiant.jpg", "PTC.zip/PTC/Doomwake Giant.full.jpg"); + copyUrlToImage.put("MTG/JOU/en/promo/EidolonOfBlossoms.jpg", "PTC.zip/PTC/Eidolon of the Great Revel.full.jpg"); + copyUrlToImage.put("MTG/JOU/en/promo/HeroesBane.jpg", "PTC.zip/PTC/Heroes' Podium.full.jpg"); + copyUrlToImage.put("MTG/JOU/en/promo/ScourgeOfFleets.jpg", "PTC.zip/PTC/Scourge of Skola Vale.full.jpg"); + copyUrlToImage.put("MTG/JOU/en/promo/SpawnOfThraxes.jpg", "PTC.zip/PTC/Spawn of Thraxes.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/AbzanAscendancy.jpg", "PTC.zip/PTC/Abzan Ascendancy.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/AnafenzaTheForemost.jpg", "PTC.zip/PTC/Anafenza, the Foremost.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/AnkleShanker.jpg", "PTC.zip/PTC/Ankle Shanker.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/AvalancheTusker.jpg", "PTC.zip/PTC/Avalanche Tusker.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/BloodsoakedChampion.jpg", "PTC.zip/PTC/Bloodsoaked Champion.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/ButcherOfTheHorde.jpg", "PTC.zip/PTC/Butcher of the Horde.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/CracklingDoom.jpg", "PTC.zip/PTC/Crackling Doom.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/CratersClaws.jpg", "PTC.zip/PTC/Crater's Claws.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/DeflectingPalm.jpg", "PTC.zip/PTC/Deflecting Palm.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/DigThroughTime.jpg", "PTC.zip/PTC/Dig Through Time.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/DragonStyleTwins.jpg", "PTC.zip/PTC/Dragon Throne of Tarkir.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/DragonThroneOfTarkir.jpg", "PTC.zip/PTC/Dragon-Style Twins.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/Duneblast.jpg", "PTC.zip/PTC/Duneblast.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/FlyingCraneTechnique.jpg", "PTC.zip/PTC/Flying Crane Technique.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/GrimHaruspex.jpg", "PTC.zip/PTC/Grim Haruspex.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/HardenedScales.jpg", "PTC.zip/PTC/Hardened Scales.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/HeraldOfAnafenza.jpg", "PTC.zip/PTC/Herald of Torment.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/HighSentinelsOfArashin.jpg", "PTC.zip/PTC/High Sentinels of Arashin.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/IcyBlast.jpg", "PTC.zip/PTC/Icy Blast.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/IvorytuskFortress.jpg", "PTC.zip/PTC/Ivorytusk Fortress.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/JeeringInstigator.jpg", "PTC.zip/PTC/Jeering Instigator.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/JeskaiAscendancy.jpg", "PTC.zip/PTC/Jeskai Ascendancy.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/KheruLichLord.jpg", "PTC.zip/PTC/Kheru Spellsnatcher.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/MarduAscendancy.jpg", "PTC.zip/PTC/Mardu Ascendancy.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/MasterOfPearls.jpg", "PTC.zip/PTC/Master of Pearls.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/NarsetEnlightenedMaster.jpg", "PTC.zip/PTC/Narset, Enlightened Master.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/NecropolisFiend.jpg", "PTC.zip/PTC/Necropolis Fiend.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/RakshasaVizier.jpg", "PTC.zip/PTC/Rakshasa Vizier.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/RattleclawMystic.jpg", "PTC.zip/PTC/Rattleclaw Mystic.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/SageOfTheInwardEye.jpg", "PTC.zip/PTC/Sage of the Inward Eye.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/SidisiBroodTyrant.jpg", "PTC.zip/PTC/Sidisi, Brood Tyrant.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/SiegeRhino.jpg", "PTC.zip/PTC/Siege Rhino.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/SultaiAscendancy.jpg", "PTC.zip/PTC/Sultai Ascendancy.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/SurrakDragonclaw.jpg", "PTC.zip/PTC/Surrak Dragonclaw.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/TemurAscendancy.jpg", "PTC.zip/PTC/Temur Ascendancy.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/ThousandWinds.jpg", "PTC.zip/PTC/Thousand Winds.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/TrailOfMystery.jpg", "PTC.zip/PTC/Trail of Mystery.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/TrapEssence.jpg", "PTC.zip/PTC/Trap Essence.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/UtterEnd.jpg", "PTC.zip/PTC/Utter End.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/VillainousWealth.jpg", "PTC.zip/PTC/Villainous Wealth.full.jpg"); + copyUrlToImage.put("MTG/KTK/en/promo/ZurgoHelmsmasher.jpg", "PTC.zip/PTC/Zurgo Helmsmasher.full.jpg"); + copyUrlToImage.put("MTG/M15/en/promo/ChiefEngineer.jpg", "PTC.zip/PTC/Chief Engineer.full.jpg"); + copyUrlToImage.put("MTG/M15/en/promo/InGarruksWake.jpg", "PTC.zip/PTC/In Garruk's Wake.full.jpg"); + copyUrlToImage.put("MTG/M15/en/promo/IndulgentTormentor.jpg", "PTC.zip/PTC/Indulgent Tormentor.full.jpg"); + copyUrlToImage.put("MTG/M15/en/promo/MercurialPretender.jpg", "PTC.zip/PTC/Mercurial Pretender.full.jpg"); + copyUrlToImage.put("MTG/M15/en/promo/Phytotitan.jpg", "PTC.zip/PTC/Phyrexian Revoker.full.jpg"); + copyUrlToImage.put("MTG/M15/en/promo/ResoluteArchangel.jpg", "PTC.zip/PTC/Resolute Archangel.full.jpg"); + copyUrlToImage.put("MTG/M15/en/promo/SiegeDragon.jpg", "PTC.zip/PTC/Siege Dragon.full.jpg"); + copyUrlToImage.put("MTG/M15/en/promo/SoulOfRavnica.jpg", "PTC.zip/PTC/Soul of Ravnica.full.jpg"); + copyUrlToImage.put("MTG/M15/en/promo/SoulOfZendikar.jpg", "PTC.zip/PTC/Soul of Zendikar.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/AzusaLostButSeeking.jpg", "JR.zip/JR/Azusa, Lost but Seeking.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/Bitterblossom.jpg", "JR.zip/JR/Bitterblossom.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/BloodstainedMire.jpg", "JR.zip/JR/Bloodstained Mire.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/CommandBeacon.jpg", "JR.zip/JR/Command Beacon.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/DarkRitual.jpg", "JR.zip/JR/Dark Ritual.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/DecreeofJustice.jpg", "JR.zip/JR/Decree of Justice.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/DefenseOfTheHeart.jpg", "JR.zip/JR/Defense of the Heart.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/ExaltedAngel.jpg", "JR.zip/JR/Exalted Angel.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/FeldonOfTheThirdPath.jpg", "JR.zip/JR/Feldon of the Third Path.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/ForceOfWill.jpg", "JR.zip/JR/Force of Will.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/GaeasCradle.jpg", "JR.zip/JR/Gaea's Cradle.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/Grindstone.jpg", "JR.zip/JR/Grindstone.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/ImperialRecruiter.jpg", "JR.zip/JR/Imperial Recruiter.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/LandTax.jpg", "JR.zip/JR/Land Tax.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/MindsDesire.jpg", "JR.zip/JR/Mind's Desire.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/MishrasFactory.jpg", "JR.zip/JR/Mishra's Factory.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/RishadanPort.jpg", "JR.zip/JR/Rishadan Port.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/ShardlessAgent.jpg", "JR.zip/JR/Shardless Agent.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/ThawingGlaciers.jpg", "JR.zip/JR/Thawing Glaciers.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/Vindicate.jpg", "JR.zip/JR/Vindicate.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/Wasteland.jpg", "JR.zip/JR/Wasteland.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/WindsweptHeath.jpg", "JR.zip/JR/Windswept Heath.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/XiahouDunTheOneEyed.jpg", "JR.zip/JR/Xiahou Dun, the One-Eyed.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/YawgmothsWill.jpg", "JR.zip/JR/Yawgmoth's Will.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Judge/ZurtheEnchanter.jpg", "JR.zip/JR/Zur the Enchanter.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/AkoumFirebird.jpg", "PTC.zip/PTC/Akoum Firebird.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/AkoumHellkite.jpg", "PTC.zip/PTC/Akoum Hellkite.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/AlignedHedronNetwork.jpg", "PTC.zip/PTC/Aligned Hedron Network.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/AllyEncampment.jpg", "PTC.zip/PTC/Ally Encampment.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/AngelicCaptain.jpg", "PTC.zip/PTC/Angelic Captain.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/BarrageTyrant.jpg", "PTC.zip/PTC/Barrage Tyrant.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/BeastcallerSavant.jpg", "PTC.zip/PTC/Beastcaller Savant.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/BlightHerder.jpg", "PTC.zip/PTC/Blight Herder.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/BringToLight.jpg", "PTC.zip/PTC/Bring to Light.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/BroodButcher.jpg", "PTC.zip/PTC/Brood Butcher.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/BrutalExpulsion.jpg", "PTC.zip/PTC/Brutal Expulsion.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/CanopyVista.jpg", "PTC.zip/PTC/Canopy Vista.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/CinderGlade.jpg", "PTC.zip/PTC/Cinder Glade.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/ConduitOfRuin.jpg", "PTC.zip/PTC/Conduit of Ruin.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/DefiantBloodlord.jpg", "PTC.zip/PTC/Defiant Bloodlord.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/DesolationTwin.jpg", "PTC.zip/PTC/Desolation Twin.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/DragonmasterOutcast.jpg", "PTC.zip/PTC/Dragonmaster Outcast.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/DranaLiberatorOfMalakir.jpg", "PTC.zip/PTC/Drana's Chosen.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/DrownerOfHope.jpg", "PTC.zip/PTC/Drowner of Hope.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/DustStalker.jpg", "PTC.zip/PTC/Dust Stalker.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/EmeriaShepherd.jpg", "PTC.zip/PTC/Emeria Shepherd.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/EndlessOne.jpg", "PTC.zip/PTC/Endless One.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/ExertInfluence.jpg", "PTC.zip/PTC/Exert Influence.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/FathomFeeder.jpg", "PTC.zip/PTC/Fathom Feeder.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/FelidarSovereign.jpg", "PTC.zip/PTC/Felidar Sovereign.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/FromBeyond.jpg", "PTC.zip/PTC/From Beyond.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/GideonAllyOfZendikar.jpg", "PTC.zip/PTC/Gideon, Ally of Zendikar.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/GreenwardenOfMurasa.jpg", "PTC.zip/PTC/Greenwarden of Murasa.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/GruesomeSlaughter.jpg", "PTC.zip/PTC/Gruesome Slaughter.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/GuardianOfTazeem.jpg", "PTC.zip/PTC/Guardian of Tazeem.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/GuulDrazOverseer.jpg", "PTC.zip/PTC/Guul Draz Overseer.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/HeroOfGomaFada.jpg", "PTC.zip/PTC/Hero's Downfall.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/KioraMasterOfTheDepths.jpg", "PTC.zip/PTC/Kiora, the Crashing Wave.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/LanternScout.jpg", "PTC.zip/PTC/Lantern Scout.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/LumberingFalls.jpg", "PTC.zip/PTC/Lumbering Falls.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/MarchFromTheTomb.jpg", "PTC.zip/PTC/March from the Tomb.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/MundaAmbushLeader.jpg", "PTC.zip/PTC/Munda, Ambush Leader.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/NissasRenewal.jpg", "PTC.zip/PTC/Nissa's Renewal.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/NoyanDarRoilShaper.jpg", "PTC.zip/PTC/Noyan Dar, Roil Shaper.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/ObNixilisReignited.jpg", "PTC.zip/PTC/Ob Nixilis, Unshackled.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/OblivionSower.jpg", "PTC.zip/PTC/Oblivion Sower.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/OmnathLocusOfRage.jpg", "PTC.zip/PTC/Omnath, Locus of Rage.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/OranRiefHydra.jpg", "PTC.zip/PTC/Oran-Rief Hydra.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/PainfulTruths.jpg", "PTC.zip/PTC/Painful Truths.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/PartTheWaterveil.jpg", "PTC.zip/PTC/Part the Waterveil.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/PlanarOutburst.jpg", "PTC.zip/PTC/Planar Outburst.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/PrairieStream.jpg", "PTC.zip/PTC/Prairie Stream.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/PrismArray.jpg", "PTC.zip/PTC/Prism Array.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/QuarantineField.jpg", "PTC.zip/PTC/Quarantine Field.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/RadiantFlames.jpg", "PTC.zip/PTC/Radiant Flames.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/RuinousPath.jpg", "PTC.zip/PTC/Ruinous Path.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/SanctumOfUgin.jpg", "PTC.zip/PTC/Sanctum of Ugin.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/ScatterToTheWinds.jpg", "PTC.zip/PTC/Scatter to the Winds.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/SerpentineSpike.jpg", "PTC.zip/PTC/Serpentine Spike.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/ShamblingVent.jpg", "PTC.zip/PTC/Shambling Vent.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/ShrineOfTheForsakenGods.jpg", "PTC.zip/PTC/Shrine of the Forsaken Gods.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/SireOfStagnation.jpg", "PTC.zip/PTC/Sire of Stagnation.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/SmolderingMarsh.jpg", "PTC.zip/PTC/Smoldering Marsh.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/SmotheringAbomination.jpg", "PTC.zip/PTC/Smothering Abomination.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/SunkenHollow.jpg", "PTC.zip/PTC/Sunken Hollow.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/UginsInsight.jpg", "PTC.zip/PTC/Ugin's Nexus.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/UlamogTheCeaselessHunger.jpg", "PTC.zip/PTC/Ulamog, the Ceaseless Hunger.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/UndergrowthChampion.jpg", "PTC.zip/PTC/Undergrowth Champion.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/VeteranWarleader.jpg", "PTC.zip/PTC/Veteran Warleader.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/VoidWinnower.jpg", "PTC.zip/PTC/Void Winnower.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/WastelandStrangler.jpg", "PTC.zip/PTC/Wasteland Strangler.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/WoodlandWanderer.jpg", "PTC.zip/PTC/Woodland Wanderer.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/BFZ/ZadaHedronGrinder.jpg", "PTC.zip/PTC/Zada, Hedron Grinder.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/AetherfluxReservoir.jpg", "PTC.zip/PTC/Aetherflux Reservoir.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/AethersquallAncient.jpg", "PTC.zip/PTC/Aethersquall Ancient.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/AetherstormRoc.jpg", "PTC.zip/PTC/Aetherstorm Roc.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/AetherworksMarvel.jpg", "PTC.zip/PTC/Aetherworks Marvel.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/AngelOfInvention.jpg", "PTC.zip/PTC/Angel of Invention.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/AnimationModule.jpg", "PTC.zip/PTC/Animation Module.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/ArchitectOfTheUntamed.jpg", "PTC.zip/PTC/Architect of the Untamed.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/AuthorityOfTheConsuls.jpg", "PTC.zip/PTC/Authority of the Consuls.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/BloomingMarsh.jpg", "PTC.zip/PTC/Blooming Marsh.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/BomatCourier.jpg", "PTC.zip/PTC/Bomat Courier.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/BotanicalSanctum.jpg", "PTC.zip/PTC/Botanical Sanctum.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/BristlingHydra.jpg", "PTC.zip/PTC/Bristling Hydra.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/CapturedByTheConsulate.jpg", "PTC.zip/PTC/Captured by the Consulate.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/CataclysmicGearhulk.jpg", "PTC.zip/PTC/Cataclysmic Gearhulk.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/ChandraTorchOfDefiance.jpg", "PTC.zip/PTC/Chandra, Torch of Defiance.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/CombustibleGearhulk.jpg", "PTC.zip/PTC/Combustible Gearhulk.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/ConcealedCourtyard.jpg", "PTC.zip/PTC/Concealed Courtyard.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/ConfiscationCoup.jpg", "PTC.zip/PTC/Confiscation Coup.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/CultivatorOfBlades.jpg", "PTC.zip/PTC/Cultivator of Blades.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/CultivatorsCaravan.jpg", "PTC.zip/PTC/Cultivator's Caravan.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/DeadlockTrap.jpg", "PTC.zip/PTC/Deadlock Trap.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/DemonOfDarkSchemes.jpg", "PTC.zip/PTC/Demon of Dark Schemes.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/DepalaPilotExemplar.jpg", "PTC.zip/PTC/Depala, Pilot Exemplar.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/DovinBaan.jpg", "PTC.zip/PTC/Dovin Baan.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/DubiousChallenge.jpg", "PTC.zip/PTC/Dubious Challenge.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/DynavoltTower.jpg", "PTC.zip/PTC/Dynavolt Tower.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/ElectrostaticPummeler.jpg", "PTC.zip/PTC/Electrostatic Pummeler.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/EliminateTheCompetition.jpg", "PTC.zip/PTC/Eliminate the Competition.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/FatefulShowdown.jpg", "PTC.zip/PTC/Fateful Showdown.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/FleetwheelCruiser.jpg", "PTC.zip/PTC/Fleetwheel Cruiser.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/Fumigate.jpg", "PTC.zip/PTC/Fumigate.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/GhirapurOrrery.jpg", "PTC.zip/PTC/Ghirapur Orrery.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/GontiLordOfLuxury.jpg", "PTC.zip/PTC/Gonti, Lord of Luxury.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/InsidiousWill.jpg", "PTC.zip/PTC/Insidious Will.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/InspiringVantage.jpg", "PTC.zip/PTC/Inspiring Vantage.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/InventorsFair.jpg", "PTC.zip/PTC/Inventors' Fair.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/KambalConsulOfAllocation.jpg", "PTC.zip/PTC/Kambal, Consul of Allocation.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/KeyToTheCity.jpg", "PTC.zip/PTC/Key to the City.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/LathnuHellion.jpg", "PTC.zip/PTC/Lathnu Hellion.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/LostLegacy.jpg", "PTC.zip/PTC/Lost Legacy.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/MadcapExperiment.jpg", "PTC.zip/PTC/Madcap Experiment.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/MarionetteMaster.jpg", "PTC.zip/PTC/Marionette Master.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/MasterTrinketeer.jpg", "PTC.zip/PTC/Master Trinketeer.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/MetallurgicSummonings.jpg", "PTC.zip/PTC/Metallurgic Summonings.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/MetalworkColossus.jpg", "PTC.zip/PTC/Metalwork Colossus.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/MidnightOil.jpg", "PTC.zip/PTC/Midnight Oil.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/MultiformWonder.jpg", "PTC.zip/PTC/Multiform Wonder.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/NissaVitalForce.jpg", "PTC.zip/PTC/Nissa, Vital Force.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/NoxiousGearhulk.jpg", "PTC.zip/PTC/Noxious Gearhulk.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/OviyaPashiriSageLifecrafter.jpg", "PTC.zip/PTC/Oviya Pashiri, Sage Lifecrafter.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/PadeemConsulOfInnovation.jpg", "PTC.zip/PTC/Padeem, Consul of Innovation.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/Panharmonicon.jpg", "PTC.zip/PTC/Panharmonicon.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/ParadoxicalOutcome.jpg", "PTC.zip/PTC/Paradoxical Outcome.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/PiaNalaar.jpg", "PTC.zip/PTC/Pia Nalaar.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/RashmiEternitiesCrafter.jpg", "PTC.zip/PTC/Rashmi, Eternities Crafter.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/SaheeliRai.jpg", "PTC.zip/PTC/Saheeli Rai.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/SaheelisArtistry.jpg", "PTC.zip/PTC/Saheeli's Artistry.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/ScrapheapScrounger.jpg", "PTC.zip/PTC/Scrapheap Scrounger.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/SkyshipStalker.jpg", "PTC.zip/PTC/Skyship Stalker.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/SkysovereignConsulFlagship.jpg", "PTC.zip/PTC/Skysovereign, Consul Flagship.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/SmugglersCopter.jpg", "PTC.zip/PTC/Smuggler's Copter.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/SpirebluffCanal.jpg", "PTC.zip/PTC/Spirebluff Canal.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/SyndicateTrafficker.jpg", "PTC.zip/PTC/Syndicate Trafficker.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/TerritorialGorger.jpg", "PTC.zip/PTC/Territorial Gorger.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/ToolcraftExemplar.jpg", "PTC.zip/PTC/Toolcraft Exemplar.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/TorrentialGearhulk.jpg", "PTC.zip/PTC/Torrential Gearhulk.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/VerdurousGearhulk.jpg", "PTC.zip/PTC/Verdurous Gearhulk.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/KLD/WildestDreams.jpg", "PTC.zip/PTC/Wildest Dreams.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/AyliEternalPilgrim.jpg", "PTC.zip/PTC/Ayli, Eternal Pilgrim.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/BearerOfSilence.jpg", "PTC.zip/PTC/Bearer of the Heavens.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/CallTheGatewatch.jpg", "PTC.zip/PTC/Call the Gatewatch.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/CaptainsClaws.jpg", "PTC.zip/PTC/Captain's Claws.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/ChandraFlamecaller.jpg", "PTC.zip/PTC/Chandra, Pyromaster.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/CorruptedCrossroads.jpg", "PTC.zip/PTC/Corrupted Crossroads.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/CrushOfTentacles.jpg", "PTC.zip/PTC/Crush of Tentacles.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/DeceiverOfForm.jpg", "PTC.zip/PTC/Deceiver of Form.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/DeepfathomSkulker.jpg", "PTC.zip/PTC/Deepfathom Skulker.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/DimensionalInfiltrator.jpg", "PTC.zip/PTC/Dimensional Infiltrator.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/DranasChosen.jpg", "PTC.zip/PTC/Drana, Liberator of Malakir.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/DreadDefiler.jpg", "PTC.zip/PTC/Dread Defiler.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/EldraziDisplacer.jpg", "PTC.zip/PTC/Eldrazi Displacer.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/EldraziMimic.jpg", "PTC.zip/PTC/Eldrazi Mimic.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/EldraziObligator.jpg", "PTC.zip/PTC/Eldrazi Obligator.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/Endbringer.jpg", "PTC.zip/PTC/End Hostilities.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/FallOfTheTitans.jpg", "PTC.zip/PTC/Fall of the Titans.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/GeneralTazri.jpg", "PTC.zip/PTC/General Tazri.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/GladehartCavalry.jpg", "PTC.zip/PTC/Gladehart Cavalry.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/GoblinDarkDwellers.jpg", "PTC.zip/PTC/Goblin Rabblemaster.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/HedronAlignment.jpg", "PTC.zip/PTC/Hedron Alignment.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/HissingQuagmire.jpg", "PTC.zip/PTC/Hissing Quagmire.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/InverterOfTruth.jpg", "PTC.zip/PTC/Inverter of Truth.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/JoriEnRuinDiver.jpg", "PTC.zip/PTC/Jori En, Ruin Diver.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/KalitasTraitorOfGhet.jpg", "PTC.zip/PTC/Kalitas, Traitor of Ghet.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/KozilekTheGreatDistortion.jpg", "PTC.zip/PTC/Kozilek, the Great Distortion.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/KozileksReturn.jpg", "PTC.zip/PTC/Kozilek's Return.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/LinvalaThePreserver.jpg", "PTC.zip/PTC/Linvala, the Preserver.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/MatterReshaper.jpg", "PTC.zip/PTC/Matter Reshaper.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/MinaAndDennWildborn.jpg", "PTC.zip/PTC/Mina and Denn, Wildborn.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/Mirrorpool.jpg", "PTC.zip/PTC/Mirrorpool.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/MundasVanguard.jpg", "PTC.zip/PTC/Munda's Vanguard.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/NeedleSpires.jpg", "PTC.zip/PTC/Needle Spires.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/NissaVoiceOfZendikar.jpg", "PTC.zip/PTC/Nissa, Voice of Zendikar.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/OathOfChandra.jpg", "PTC.zip/PTC/Oath of Chandra.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/OathOfGideon.jpg", "PTC.zip/PTC/Oath of Gideon.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/OathOfJace.jpg", "PTC.zip/PTC/Oath of Jace.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/OathOfNissa.jpg", "PTC.zip/PTC/Oath of Nissa.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/OverwhelmingDenial.jpg", "PTC.zip/PTC/Overwhelming Denial.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/RealitySmasher.jpg", "PTC.zip/PTC/Reality Smasher.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/RemorselessPunishment.jpg", "PTC.zip/PTC/Remorseless Punishment.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/RuinsOfOranRief.jpg", "PTC.zip/PTC/Ruins of Oran-Rief.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/SeaGateWreckage.jpg", "PTC.zip/PTC/Sea Gate Wreckage.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/SifterOfSkulls.jpg", "PTC.zip/PTC/Sifter of Skulls.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/SphinxOfTheFinalWord.jpg", "PTC.zip/PTC/Sphinx of the Final Word.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/StoneHavenOutfitter.jpg", "PTC.zip/PTC/Stone Haven Outfitter.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/StoneforgeMasterwork.jpg", "PTC.zip/PTC/Stoneforge Masterwork.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/SylvanAdvocate.jpg", "PTC.zip/PTC/Sylvan Caryatid.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/ThoughtKnotSeer.jpg", "PTC.zip/PTC/Thought-Knot Seer.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/TyrantOfValakut.jpg", "PTC.zip/PTC/Tyrant of Valakut.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/VileRedeemer.jpg", "PTC.zip/PTC/Vile Redeemer.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/WanderingFumarole.jpg", "PTC.zip/PTC/Wandering Fumarole.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/WorldBreaker.jpg", "PTC.zip/PTC/World Breaker.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/OGW/ZendikarResurgent.jpg", "PTC.zip/PTC/Zendikar Resurgent.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/AlteredEgo.jpg", "PTC.zip/PTC/Altered Ego.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/AlwaysWatching.jpg", "PTC.zip/PTC/Always Watching.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/AngelOfDeliverance.jpg", "PTC.zip/PTC/Angel of Deliverance.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/AnguishedUnmaking.jpg", "PTC.zip/PTC/Anguished Unmaking.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/ArchangelAvacyn.jpg", "PTC.zip/PTC/Archangel Avacyn.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/ArlinnKord.jpg", "PTC.zip/PTC/Arlinn Kord.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/AsylumVisitor.jpg", "PTC.zip/PTC/Asylum Visitor.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/AvacynsJudgment.jpg", "PTC.zip/PTC/Avacyn, Guardian Angel.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/BeholdTheBeyond.jpg", "PTC.zip/PTC/Behold the Beyond.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/BrainInAJar.jpg", "PTC.zip/PTC/Brain in a Jar.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/BurnFromWithin.jpg", "PTC.zip/PTC/Burn from Within.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/BygoneBishop.jpg", "PTC.zip/PTC/Bygone Bishop.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/ChokedEstuary.jpg", "PTC.zip/PTC/Choked Estuary.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/ConfirmSuspicions.jpg", "PTC.zip/PTC/Confirm Suspicions.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/CorruptedGrafstone.jpg", "PTC.zip/PTC/Corrupted Grafstone.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/CryptolithRite.jpg", "PTC.zip/PTC/Cryptolith Rite.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/DeathcapCultivator.jpg", "PTC.zip/PTC/Deathcap Cultivator.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/DeclarationInStone.jpg", "PTC.zip/PTC/Declaration in Stone.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/DescendUponTheSinful.jpg", "PTC.zip/PTC/Descend upon the Sinful.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/DevilsPlayground.jpg", "PTC.zip/PTC/Devils' Playground.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/DiregrafColossus.jpg", "PTC.zip/PTC/Diregraf Colossus.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/DrogskolCavalry.jpg", "PTC.zip/PTC/Drogskol Cavalry.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/DrownyardTemple.jpg", "PTC.zip/PTC/Drownyard Temple.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/EerieInterlude.jpg", "PTC.zip/PTC/Eerie Interlude.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/EngulfTheShore.jpg", "PTC.zip/PTC/Engulf the Shore.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/EpiphanyAtTheDrownyard.jpg", "PTC.zip/PTC/Epiphany at the Drownyard.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/EverAfter.jpg", "PTC.zip/PTC/Ever After.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/FalkenrathGorger.jpg", "PTC.zip/PTC/Falkenrath Gorger.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/FeveredVisions.jpg", "PTC.zip/PTC/Fevered Visions.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/FlamebladeAngel.jpg", "PTC.zip/PTC/Flameblade Angel.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/ForebodingRuins.jpg", "PTC.zip/PTC/Foreboding Ruins.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/ForgottenCreation.jpg", "PTC.zip/PTC/Forgotten Creation.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/FortifiedVillage.jpg", "PTC.zip/PTC/Fortified Village.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/FromUnderTheFloorboards.jpg", "PTC.zip/PTC/From Under the Floorboards.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/GameTrail.jpg", "PTC.zip/PTC/Game Trail.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/GeierReachBandit.jpg", "PTC.zip/PTC/Geier Reach Sanitarium.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/GeralfsMasterpiece.jpg", "PTC.zip/PTC/Geralf's Masterpiece.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/GoldnightCastigator.jpg", "PTC.zip/PTC/Goldnight Castigator.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/HanweirMilitiaCaptain.jpg", "PTC.zip/PTC/Hanweir Militia Captain.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/HarnessTheStorm.jpg", "PTC.zip/PTC/Harness the Storm.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/InexorableBlob.jpg", "PTC.zip/PTC/Inexorable Blob.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/InvocationOfSaintTraft.jpg", "PTC.zip/PTC/Invocation of Saint Traft.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/JaceUnravelerOfSecrets.jpg", "PTC.zip/PTC/Jace, the Living Guildpact.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/MarkovDreadknight.jpg", "PTC.zip/PTC/Markov Dreadknight.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/MindwrackDemon.jpg", "PTC.zip/PTC/Mindwrack Demon.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/NahiriTheHarbinger.jpg", "PTC.zip/PTC/Nahiri, the Harbinger.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/NephaliaMoondrakes.jpg", "PTC.zip/PTC/Nephalia Moondrakes.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/OdricLunarchMarshal.jpg", "PTC.zip/PTC/Odric, Lunarch Marshal.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/OliviaMobilizedForWar.jpg", "PTC.zip/PTC/Olivia, Mobilized for War.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/OrmendahlProfanePrince.jpg", "PTC.zip/PTC/Ormendahl, Profane Prince.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/PortTown.jpg", "PTC.zip/PTC/Port Town.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/PrizedAmalgam.jpg", "PTC.zip/PTC/Prized Amalgam.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/Rattlechains.jpg", "PTC.zip/PTC/Rattlechains.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/RelentlessDead.jpg", "PTC.zip/PTC/Relentless Dead.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/SageOfAncientLore.jpg", "PTC.zip/PTC/Sage of Ancient Lore.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/ScourgeWolf.jpg", "PTC.zip/PTC/Scourge Wolf.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/SeasonsPast.jpg", "PTC.zip/PTC/Seasons Past.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/SecondHarvest.jpg", "PTC.zip/PTC/Second Harvest.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/SigardaHeronsGrace.jpg", "PTC.zip/PTC/Sigarda, Heron's Grace.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/SilverfurPartisan.jpg", "PTC.zip/PTC/Silverfur Partisan.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/SinProdder.jpg", "PTC.zip/PTC/Sin Prodder.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/SlayersPlate.jpg", "PTC.zip/PTC/Slayer's Plate.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/SorinGrimNemesis.jpg", "PTC.zip/PTC/Sorin, Solemn Visitor.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/SoulSwallower.jpg", "PTC.zip/PTC/Soul Swallower.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/StartledAwake.jpg", "PTC.zip/PTC/Startled Awake.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/TamiyosJournal.jpg", "PTC.zip/PTC/Tamiyo, Field Researcher.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/ThaliasLieutenant.jpg", "PTC.zip/PTC/Thalia, Heretic Cathar.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/TheGitrogMonster.jpg", "PTC.zip/PTC/The Gitrog Monster.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/ThingInTheIce.jpg", "PTC.zip/PTC/Thing in the Ice.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/TirelessTracker.jpg", "PTC.zip/PTC/Tireless Tracker.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/ToTheSlaughter.jpg", "PTC.zip/PTC/To the Slaughter.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/TraverseTheUlvenwald.jpg", "PTC.zip/PTC/Traverse the Ulvenwald.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/Triskaidekaphobia.jpg", "PTC.zip/PTC/Triad of Fates.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/UlvenwaldHydra.jpg", "PTC.zip/PTC/Ulvenwald Observer.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/WelcomeToTheFold.jpg", "PTC.zip/PTC/Welcome to the Fold.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/WestvaleAbbey.jpg", "PTC.zip/PTC/Westvale Abbey.full.jpg"); + copyUrlToImage.put("MTG/PRM/en/foil/Prerelease/SOI/WolfOfDevilsBreach.jpg", "PTC.zip/PTC/Wolf of Devil's Breach.full.jpg"); + copyUrlToImage.put("MTG/THS/en/promo/HerosDownfall.jpg", "PTC.zip/PTC/Heron's Grace Champion.full.jpg"); + copyUrlToImage.put("MTG/THS/en/promo/ReaperOfTheWilds.jpg", "PTC.zip/PTC/Reaper of the Wilds.full.jpg"); + copyUrlToImage.put("MTG/THS/en/promo/WhipOfErebos.jpg", "PTC.zip/PTC/Whip of Erebos.full.jpg"); + copyUrlToImage.put("apac/1.jpg", "APAC.zip/APAC/Forest.1.full.jpg"); + copyUrlToImage.put("apac/10.jpg", "APAC.zip/APAC/Swamp.10.full.jpg"); + copyUrlToImage.put("apac/11.jpg", "APAC.zip/APAC/Forest.11.full.jpg"); copyUrlToImage.put("apac/12.jpg", "APAC.zip/APAC/Island.7.full.jpg"); - copyUrlToImage.put("apac/13.jpg", "APAC.zip/APAC/Mountain.8.full.jpg"); - copyUrlToImage.put("apac/14.jpg", "APAC.zip/APAC/Plains.4.full.jpg"); - copyUrlToImage.put("apac/15.jpg", "APAC.zip/APAC/Swamp 2.full.jpg"); + copyUrlToImage.put("apac/13.jpg", "APAC.zip/APAC/Mountain.13.full.jpg"); + copyUrlToImage.put("apac/14.jpg", "APAC.zip/APAC/Plains.14.full.jpg"); copyUrlToImage.put("apac/15.jpg", "APAC.zip/APAC/Swamp.15.full.jpg"); - copyUrlToImage.put("apac/2.jpg", "APAC.zip/APAC/Island 2.full.jpg"); copyUrlToImage.put("apac/2.jpg", "APAC.zip/APAC/Island.2.full.jpg"); copyUrlToImage.put("apac/3.jpg", "APAC.zip/APAC/Mountain.3.full.jpg"); - copyUrlToImage.put("apac/4.jpg", "APAC.zip/APAC/Plains 2.full.jpg"); - copyUrlToImage.put("apac/4.jpg", "APAC.zip/APAC/Plains.9.full.jpg"); - copyUrlToImage.put("apac/5.jpg", "APAC.zip/APAC/Swamp.10.full.jpg"); - copyUrlToImage.put("apac/6.jpg", "APAC.zip/APAC/Forest 1.full.jpg"); + copyUrlToImage.put("apac/4.jpg", "APAC.zip/APAC/Plains.4.full.jpg"); + copyUrlToImage.put("apac/5.jpg", "APAC.zip/APAC/Swamp.5.full.jpg"); + copyUrlToImage.put("apac/6.jpg", "APAC.zip/APAC/Forest.6.full.jpg"); copyUrlToImage.put("apac/7.jpg", "APAC.zip/APAC/Island.12.full.jpg"); - copyUrlToImage.put("apac/8.jpg", "APAC.zip/APAC/Mountain.13.full.jpg"); - copyUrlToImage.put("apac/9.jpg", "APAC.zip/APAC/Plains.14.full.jpg"); - copyUrlToImage.put("arena/1.jpg", "ARENA.zip/ARENA/Plains 8.full.jpg"); - copyUrlToImage.put("arena/1.jpg", "ARENA.zip/ARENA/Plains.1.full.jpg"); - copyUrlToImage.put("arena/10.jpg", "ARENA.zip/ARENA/Swamp 8.full.jpg"); - copyUrlToImage.put("arena/10.jpg", "ARENA.zip/ARENA/Swamp.3.full.jpg"); - copyUrlToImage.put("arena/11.jpg", "ARENA.zip/ARENA/Mountain 8.full.jpg"); - copyUrlToImage.put("arena/11.jpg", "ARENA.zip/ARENA/Mountain.4.full.jpg"); - copyUrlToImage.put("arena/12.jpg", "ARENA.zip/ARENA/Forest 9.full.jpg"); - copyUrlToImage.put("arena/13.jpg", "ARENA.zip/ARENA/Pouncing Jaguar.full.jpg"); - copyUrlToImage.put("arena/14.jpg", "ARENA.zip/ARENA/Skittering Skirge.full.jpg"); - copyUrlToImage.put("arena/15.jpg", "ARENA.zip/ARENA/Rewind.full.jpg"); - copyUrlToImage.put("arena/16.jpg", "ARENA.zip/ARENA/Karn, Silver Golem.full.jpg"); - copyUrlToImage.put("arena/17.jpg", "ARENA.zip/ARENA/Duress.full.jpg"); - copyUrlToImage.put("arena/18.jpg", "ARENA.zip/ARENA/Uktabi Orangutan.full.jpg"); - copyUrlToImage.put("arena/19.jpg", "ARENA.zip/ARENA/Chill.full.jpg"); - copyUrlToImage.put("arena/2.jpg", "ARENA.zip/ARENA/Island 9.full.jpg"); - copyUrlToImage.put("arena/2.jpg", "ARENA.zip/ARENA/Island.39.full.jpg"); - copyUrlToImage.put("arena/20.jpg", "ARENA.zip/ARENA/Pillage.full.jpg"); - copyUrlToImage.put("arena/21.jpg", "ARENA.zip/ARENA/Enlightened Tutor.full.jpg"); - copyUrlToImage.put("arena/22.jpg", "ARENA.zip/ARENA/Stupor.full.jpg"); - copyUrlToImage.put("arena/23.jpg", "ARENA.zip/ARENA/Plains.75.full.jpg"); - copyUrlToImage.put("arena/24.jpg", "ARENA.zip/ARENA/Island.9.full.jpg"); - copyUrlToImage.put("arena/25.jpg", "ARENA.zip/ARENA/Swamp.77.full.jpg"); - copyUrlToImage.put("arena/26.jpg", "ARENA.zip/ARENA/Mountain.70.full.jpg"); - copyUrlToImage.put("arena/27.jpg", "ARENA.zip/ARENA/Forest 8.full.jpg"); - copyUrlToImage.put("arena/28.jpg", "ARENA.zip/ARENA/Creeping Mold.full.jpg"); - copyUrlToImage.put("arena/29.jpg", "ARENA.zip/ARENA/Dismiss.full.jpg"); - copyUrlToImage.put("arena/3.jpg", "ARENA.zip/ARENA/Swamp.69.full.jpg"); - copyUrlToImage.put("arena/30.jpg", "ARENA.zip/ARENA/Fling.full.jpg"); - copyUrlToImage.put("arena/31.jpg", "ARENA.zip/ARENA/Empyrial Armor.full.jpg"); - copyUrlToImage.put("arena/32.jpg", "ARENA.zip/ARENA/Plains.67.full.jpg"); - copyUrlToImage.put("arena/33.jpg", "ARENA.zip/ARENA/Island.76.full.jpg"); - copyUrlToImage.put("arena/34.jpg", "ARENA.zip/ARENA/Swamp.55.full.jpg"); - copyUrlToImage.put("arena/35.jpg", "ARENA.zip/ARENA/Mountain 6.full.jpg"); - copyUrlToImage.put("arena/35.jpg", "ARENA.zip/ARENA/Mountain.78.full.jpg"); - copyUrlToImage.put("arena/36.jpg", "ARENA.zip/ARENA/Forest.71.full.jpg"); - copyUrlToImage.put("arena/37.jpg", "ARENA.zip/ARENA/Diabolic Edict.full.jpg"); - copyUrlToImage.put("arena/38.jpg", "ARENA.zip/ARENA/Gaea's Blessing.full.jpg"); - copyUrlToImage.put("arena/39.jpg", "ARENA.zip/ARENA/Island.68.full.jpg"); - copyUrlToImage.put("arena/4.jpg", "ARENA.zip/ARENA/Mountain 5.full.jpg"); - copyUrlToImage.put("arena/40.jpg", "ARENA.zip/ARENA/Forest 6.full.jpg"); - copyUrlToImage.put("arena/40.jpg", "ARENA.zip/ARENA/Forest.5.full.jpg"); - copyUrlToImage.put("arena/41.jpg", "ARENA.zip/ARENA/Man-o'-War.full.jpg"); + copyUrlToImage.put("apac/8.jpg", "APAC.zip/APAC/Mountain.8.full.jpg"); + copyUrlToImage.put("apac/9.jpg", "APAC.zip/APAC/Plains.9.full.jpg"); + + copyUrlToImage.put("arena/42.jpg", "ARENA.zip/ARENA/Arc Lightning.full.jpg"); - copyUrlToImage.put("arena/43.jpg", "ARENA.zip/ARENA/Dauthi Slayer.full.jpg"); - copyUrlToImage.put("arena/44.jpg", "ARENA.zip/ARENA/Mana Leak.full.jpg"); - copyUrlToImage.put("arena/45.jpg", "ARENA.zip/ARENA/Plains.53.full.jpg"); - copyUrlToImage.put("arena/46.jpg", "ARENA.zip/ARENA/Island.54.full.jpg"); - copyUrlToImage.put("arena/47.jpg", "ARENA.zip/ARENA/Swamp.47.full.jpg"); - copyUrlToImage.put("arena/48.jpg", "ARENA.zip/ARENA/Mountain.48.full.jpg"); - copyUrlToImage.put("arena/49.jpg", "ARENA.zip/ARENA/Forest.57.full.jpg"); - copyUrlToImage.put("arena/5.jpg", "ARENA.zip/ARENA/Forest.40.full.jpg"); - copyUrlToImage.put("arena/50.jpg", "ARENA.zip/ARENA/Skirk Marauder.full.jpg"); - copyUrlToImage.put("arena/51.jpg", "ARENA.zip/ARENA/Elvish Aberration.full.jpg"); + copyUrlToImage.put("arena/66.jpg", "ARENA.zip/ARENA/Ashnod's Coupon.full.jpg"); copyUrlToImage.put("arena/52.jpg", "ARENA.zip/ARENA/Bonesplitter.full.jpg"); - copyUrlToImage.put("arena/53.jpg", "ARENA.zip/ARENA/Plains.45.full.jpg"); - copyUrlToImage.put("arena/54.jpg", "ARENA.zip/ARENA/Island.46.full.jpg"); - copyUrlToImage.put("arena/55.jpg", "ARENA.zip/ARENA/Swamp.34.full.jpg"); - copyUrlToImage.put("arena/56.jpg", "ARENA.zip/ARENA/Mountain.35.full.jpg"); - copyUrlToImage.put("arena/57.jpg", "ARENA.zip/ARENA/Forest.36.full.jpg"); - copyUrlToImage.put("arena/58.jpg", "ARENA.zip/ARENA/Darksteel Ingot.full.jpg"); - copyUrlToImage.put("arena/59.jpg", "ARENA.zip/ARENA/Serum Visions.full.jpg"); - copyUrlToImage.put("arena/6.jpg", "ARENA.zip/ARENA/Disenchant.full.jpg"); - copyUrlToImage.put("arena/60.jpg", "ARENA.zip/ARENA/Glacial Ray.full.jpg"); - copyUrlToImage.put("arena/61.jpg", "ARENA.zip/ARENA/Circle of Protection: Art.full.jpg"); - copyUrlToImage.put("arena/62.jpg", "ARENA.zip/ARENA/Mise.full.jpg"); copyUrlToImage.put("arena/63.jpg", "ARENA.zip/ARENA/Booster Tutor.full.jpg"); + copyUrlToImage.put("arena/80.jpg", "ARENA.zip/ARENA/Castigate.full.jpg"); + copyUrlToImage.put("arena/19.jpg", "ARENA.zip/ARENA/Chill.full.jpg"); + copyUrlToImage.put("arena/61.jpg", "ARENA.zip/ARENA/Circle of Protection Art.full.jpg"); + copyUrlToImage.put("arena/82.jpg", "ARENA.zip/ARENA/Coiling Oracle.full.jpg"); + copyUrlToImage.put("arena/28.jpg", "ARENA.zip/ARENA/Creeping Mold.full.jpg"); + copyUrlToImage.put("arena/58.jpg", "ARENA.zip/ARENA/Darksteel Ingot.full.jpg"); + copyUrlToImage.put("arena/43.jpg", "ARENA.zip/ARENA/Dauthi Slayer.full.jpg"); + copyUrlToImage.put("arena/37.jpg", "ARENA.zip/ARENA/Diabolic Edict.full.jpg"); + copyUrlToImage.put("arena/6.jpg", "ARENA.zip/ARENA/Disenchant.full.jpg"); + copyUrlToImage.put("arena/29.jpg", "ARENA.zip/ARENA/Dismiss.full.jpg"); + copyUrlToImage.put("arena/17.jpg", "ARENA.zip/ARENA/Duress.full.jpg"); + copyUrlToImage.put("arena/51.jpg", "ARENA.zip/ARENA/Elvish Aberration.full.jpg"); + copyUrlToImage.put("arena/31.jpg", "ARENA.zip/ARENA/Empyrial Armor.full.jpg"); + copyUrlToImage.put("arena/21.jpg", "ARENA.zip/ARENA/Enlightened Tutor.full.jpg"); + copyUrlToImage.put("arena/7.jpg", "ARENA.zip/ARENA/Fireball.full.jpg"); + copyUrlToImage.put("arena/30.jpg", "ARENA.zip/ARENA/Fling.full.jpg"); + copyUrlToImage.put("arena/5.jpg", "ARENA.zip/ARENA/Forest.5.full.jpg"); + copyUrlToImage.put("arena/12.jpg", "ARENA.zip/ARENA/Forest.12.full.jpg"); + copyUrlToImage.put("arena/27.jpg", "ARENA.zip/ARENA/Forest.27.full.jpg"); + copyUrlToImage.put("arena/36.jpg", "ARENA.zip/ARENA/Forest.36.full.jpg"); + copyUrlToImage.put("arena/40.jpg", "ARENA.zip/ARENA/Forest.40.full.jpg"); + copyUrlToImage.put("arena/57.jpg", "ARENA.zip/ARENA/Forest.57.full.jpg"); + copyUrlToImage.put("arena/71.jpg", "ARENA.zip/ARENA/Forest.71.full.jpg"); + copyUrlToImage.put("arena/38.jpg", "ARENA.zip/ARENA/Gaea's Blessing.full.jpg"); + copyUrlToImage.put("arena/72.jpg", "ARENA.zip/ARENA/Genju of the Spires.full.jpg"); + copyUrlToImage.put("arena/60.jpg", "ARENA.zip/ARENA/Glacial Ray.full.jpg"); copyUrlToImage.put("arena/64.jpg", "ARENA.zip/ARENA/Goblin Mime.full.jpg"); copyUrlToImage.put("arena/65.jpg", "ARENA.zip/ARENA/Granny's Payback.full.jpg"); - copyUrlToImage.put("arena/66.jpg", "ARENA.zip/ARENA/Ashnod's Coupon.full.jpg"); - copyUrlToImage.put("arena/67.jpg", "ARENA.zip/ARENA/Plains.32.full.jpg"); - copyUrlToImage.put("arena/68.jpg", "ARENA.zip/ARENA/Island.33.full.jpg"); - copyUrlToImage.put("arena/69.jpg", "ARENA.zip/ARENA/Swamp.25.full.jpg"); - copyUrlToImage.put("arena/7.jpg", "ARENA.zip/ARENA/Fireball.full.jpg"); - copyUrlToImage.put("arena/70.jpg", "ARENA.zip/ARENA/Mountain.26.full.jpg"); - copyUrlToImage.put("arena/71.jpg", "ARENA.zip/ARENA/Forest.27.full.jpg"); - copyUrlToImage.put("arena/72.jpg", "ARENA.zip/ARENA/Genju of the Spires.full.jpg"); + copyUrlToImage.put("arena/2.jpg", "ARENA.zip/ARENA/Island.2.full.jpg"); + copyUrlToImage.put("arena/9.jpg", "ARENA.zip/ARENA/Island.9.full.jpg"); + copyUrlToImage.put("arena/24.jpg", "ARENA.zip/ARENA/Island.24.full.jpg"); + copyUrlToImage.put("arena/33.jpg", "ARENA.zip/ARENA/Island.33.full.jpg"); + copyUrlToImage.put("arena/39.jpg", "ARENA.zip/ARENA/Island.39.full.jpg"); + copyUrlToImage.put("arena/46.jpg", "ARENA.zip/ARENA/Island.46.full.jpg"); + copyUrlToImage.put("arena/54.jpg", "ARENA.zip/ARENA/Island.54.full.jpg"); + copyUrlToImage.put("arena/68.jpg", "ARENA.zip/ARENA/Island.68.full.jpg"); + copyUrlToImage.put("arena/76.jpg", "ARENA.zip/ARENA/Island.76.full.jpg"); + copyUrlToImage.put("arena/16.jpg", "ARENA.zip/ARENA/Karn, Silver Golem.full.jpg"); + copyUrlToImage.put("arena/41.jpg", "ARENA.zip/ARENA/Man-o'-War.full.jpg"); + copyUrlToImage.put("arena/44.jpg", "ARENA.zip/ARENA/Mana Leak.full.jpg"); + copyUrlToImage.put("arena/62.jpg", "ARENA.zip/ARENA/Mise.full.jpg"); + copyUrlToImage.put("arena/4.jpg", "ARENA.zip/ARENA/Mountain.4.full.jpg"); + copyUrlToImage.put("arena/11.jpg", "ARENA.zip/ARENA/Mountain.11.full.jpg"); + copyUrlToImage.put("arena/26.jpg", "ARENA.zip/ARENA/Mountain.26.full.jpg"); + copyUrlToImage.put("arena/35.jpg", "ARENA.zip/ARENA/Mountain.35.full.jpg"); + copyUrlToImage.put("arena/48.jpg", "ARENA.zip/ARENA/Mountain.48.full.jpg"); + copyUrlToImage.put("arena/56.jpg", "ARENA.zip/ARENA/Mountain.56.full.jpg"); + copyUrlToImage.put("arena/70.jpg", "ARENA.zip/ARENA/Mountain.70.full.jpg"); + copyUrlToImage.put("arena/78.jpg", "ARENA.zip/ARENA/Mountain.78.full.jpg"); copyUrlToImage.put("arena/73.jpg", "ARENA.zip/ARENA/Okina Nightwatch.full.jpg"); - copyUrlToImage.put("arena/74.jpg", "ARENA.zip/ARENA/Skyknight Legionnaire.full.jpg"); - copyUrlToImage.put("arena/75.jpg", "ARENA.zip/ARENA/Plains.23.full.jpg"); - copyUrlToImage.put("arena/76.jpg", "ARENA.zip/ARENA/Island.24.full.jpg"); - copyUrlToImage.put("arena/77.jpg", "ARENA.zip/ARENA/Swamp.10.full.jpg"); - copyUrlToImage.put("arena/78.jpg", "ARENA.zip/ARENA/Mountain.11.full.jpg"); - copyUrlToImage.put("arena/79.jpg", "ARENA.zip/ARENA/Forest.12.full.jpg"); - copyUrlToImage.put("arena/8.jpg", "ARENA.zip/ARENA/Plains 1.full.jpg"); + copyUrlToImage.put("arena/20.jpg", "ARENA.zip/ARENA/Pillage.full.jpg"); + copyUrlToImage.put("arena/1.jpg", "ARENA.zip/ARENA/Plains.1.full.jpg"); copyUrlToImage.put("arena/8.jpg", "ARENA.zip/ARENA/Plains.8.full.jpg"); - copyUrlToImage.put("arena/80.jpg", "ARENA.zip/ARENA/Castigate.full.jpg"); - copyUrlToImage.put("arena/81.jpg", "ARENA.zip/ARENA/Wee Dragonauts.full.jpg"); - copyUrlToImage.put("arena/82.jpg", "ARENA.zip/ARENA/Coiling Oracle.full.jpg"); + copyUrlToImage.put("arena/23.jpg", "ARENA.zip/ARENA/Plains.23.full.jpg"); + copyUrlToImage.put("arena/32.jpg", "ARENA.zip/ARENA/Plains.32.full.jpg"); + copyUrlToImage.put("arena/45.jpg", "ARENA.zip/ARENA/Plains.45.full.jpg"); + copyUrlToImage.put("arena/53.jpg", "ARENA.zip/ARENA/Plains.53.full.jpg"); + copyUrlToImage.put("arena/67.jpg", "ARENA.zip/ARENA/Plains.67.full.jpg"); + copyUrlToImage.put("arena/75.jpg", "ARENA.zip/ARENA/Plains.75.full.jpg"); + copyUrlToImage.put("arena/13.jpg", "ARENA.zip/ARENA/Pouncing Jaguar.full.jpg"); + copyUrlToImage.put("arena/15.jpg", "ARENA.zip/ARENA/Rewind.full.jpg"); + copyUrlToImage.put("arena/59.jpg", "ARENA.zip/ARENA/Serum Visions.full.jpg"); + copyUrlToImage.put("arena/50.jpg", "ARENA.zip/ARENA/Skirk Marauder.full.jpg"); + copyUrlToImage.put("arena/14.jpg", "ARENA.zip/ARENA/Skittering Skirge.full.jpg"); + copyUrlToImage.put("arena/74.jpg", "ARENA.zip/ARENA/Skyknight Legionnaire.full.jpg"); + copyUrlToImage.put("arena/22.jpg", "ARENA.zip/ARENA/Stupor.full.jpg"); copyUrlToImage.put("arena/83.jpg", "ARENA.zip/ARENA/Surging Flame.full.jpg"); - copyUrlToImage.put("arena/9.jpg", "ARENA.zip/ARENA/Island.2.full.jpg"); - copyUrlToImage.put("euro/1.jpg", "EURO.zip/EURO/Forest.6.full.jpg"); - copyUrlToImage.put("euro/10.jpg", "EURO.zip/EURO/Swamp.5.full.jpg"); - copyUrlToImage.put("euro/11.jpg", "EURO.zip/EURO/Forest 2.full.jpg"); - copyUrlToImage.put("euro/11.jpg", "EURO.zip/EURO/Forest.1.full.jpg"); - copyUrlToImage.put("euro/12.jpg", "EURO.zip/EURO/Island.7.full.jpg"); - copyUrlToImage.put("euro/13.jpg", "EURO.zip/EURO/Mountain.8.full.jpg"); - copyUrlToImage.put("euro/14.jpg", "EURO.zip/EURO/Plains.4.full.jpg"); - copyUrlToImage.put("euro/15.jpg", "EURO.zip/EURO/Swamp 2.full.jpg"); - copyUrlToImage.put("euro/15.jpg", "EURO.zip/EURO/Swamp.15.full.jpg"); - copyUrlToImage.put("euro/2.jpg", "EURO.zip/EURO/Island 2.full.jpg"); + copyUrlToImage.put("arena/3.jpg", "ARENA.zip/ARENA/Swamp.3.full.jpg"); + copyUrlToImage.put("arena/10.jpg", "ARENA.zip/ARENA/Swamp.10.full.jpg"); + copyUrlToImage.put("arena/25.jpg", "ARENA.zip/ARENA/Swamp.25.full.jpg"); + copyUrlToImage.put("arena/34.jpg", "ARENA.zip/ARENA/Swamp.34.full.jpg"); + copyUrlToImage.put("arena/47.jpg", "ARENA.zip/ARENA/Swamp.47.full.jpg"); + copyUrlToImage.put("arena/55.jpg", "ARENA.zip/ARENA/Swamp.55.full.jpg"); + copyUrlToImage.put("arena/69.jpg", "ARENA.zip/ARENA/Swamp.69.full.jpg"); + copyUrlToImage.put("arena/77.jpg", "ARENA.zip/ARENA/Swamp.77.full.jpg"); + copyUrlToImage.put("arena/18.jpg", "ARENA.zip/ARENA/Uktabi Orangutan.full.jpg"); + copyUrlToImage.put("arena/81.jpg", "ARENA.zip/ARENA/Wee Dragonauts.full.jpg"); + copyUrlToImage.put("euro/1.jpg", "EURO.zip/EURO/Forest.1.full.jpg"); copyUrlToImage.put("euro/2.jpg", "EURO.zip/EURO/Island.2.full.jpg"); copyUrlToImage.put("euro/3.jpg", "EURO.zip/EURO/Mountain.3.full.jpg"); - copyUrlToImage.put("euro/4.jpg", "EURO.zip/EURO/Plains 2.full.jpg"); - copyUrlToImage.put("euro/4.jpg", "EURO.zip/EURO/Plains.9.full.jpg"); - copyUrlToImage.put("euro/5.jpg", "EURO.zip/EURO/Swamp.10.full.jpg"); - copyUrlToImage.put("euro/6.jpg", "EURO.zip/EURO/Forest.11.full.jpg"); - copyUrlToImage.put("euro/7.jpg", "EURO.zip/EURO/Island.12.full.jpg"); - copyUrlToImage.put("euro/8.jpg", "EURO.zip/EURO/Mountain.13.full.jpg"); - copyUrlToImage.put("euro/9.jpg", "EURO.zip/EURO/Plains.14.full.jpg"); + copyUrlToImage.put("euro/4.jpg", "EURO.zip/EURO/Plains.4.full.jpg"); + copyUrlToImage.put("euro/5.jpg", "EURO.zip/EURO/Swamp.5.full.jpg"); + copyUrlToImage.put("euro/6.jpg", "EURO.zip/EURO/Forest.6.full.jpg"); + copyUrlToImage.put("euro/7.jpg", "EURO.zip/EURO/Island.7.full.jpg"); + copyUrlToImage.put("euro/8.jpg", "EURO.zip/EURO/Mountain.8.full.jpg"); + copyUrlToImage.put("euro/9.jpg", "EURO.zip/EURO/Plains.9.full.jpg"); + copyUrlToImage.put("euro/10.jpg", "EURO.zip/EURO/Swamp.10.full.jpg"); + copyUrlToImage.put("euro/11.jpg", "EURO.zip/EURO/Forest.11.full.jpg"); + copyUrlToImage.put("euro/12.jpg", "EURO.zip/EURO/Island.12.full.jpg"); + copyUrlToImage.put("euro/13.jpg", "EURO.zip/EURO/Mountain.13.full.jpg"); + copyUrlToImage.put("euro/14.jpg", "EURO.zip/EURO/Plains.14.full.jpg"); + copyUrlToImage.put("euro/15.jpg", "EURO.zip/EURO/Swamp.15.full.jpg"); copyUrlToImage.put("exp/1.jpg", "EXP.zip/EXP/Prairie Stream.full.jpg"); copyUrlToImage.put("exp/10.jpg", "EXP.zip/EXP/Temple Garden.full.jpg"); copyUrlToImage.put("exp/11.jpg", "EXP.zip/EXP/Godless Shrine.full.jpg"); @@ -419,7 +798,7 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImage.put("fnmp/60.jpg", "FNMP.zip/FNMP/Cabal Therapy.full.jpg"); copyUrlToImage.put("fnmp/61.jpg", "FNMP.zip/FNMP/Fact or Fiction.full.jpg"); copyUrlToImage.put("fnmp/62.jpg", "FNMP.zip/FNMP/Juggernaut.full.jpg"); - copyUrlToImage.put("fnmp/63.jpg", "FNMP.zip/FNMP/Circle of Protection: Red.full.jpg"); + copyUrlToImage.put("fnmp/63.jpg", "FNMP.zip/FNMP/Circle of Protection Red.full.jpg"); copyUrlToImage.put("fnmp/64.jpg", "FNMP.zip/FNMP/Kird Ape.full.jpg"); copyUrlToImage.put("fnmp/65.jpg", "FNMP.zip/FNMP/Duress.full.jpg"); copyUrlToImage.put("fnmp/66.jpg", "FNMP.zip/FNMP/Counterspell.full.jpg"); @@ -512,8 +891,8 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImage.put("grc/48.jpg", "GRC.zip/GRC/Staggershock.full.jpg"); copyUrlToImage.put("grc/49.jpg", "GRC.zip/GRC/Deathless Angel.full.jpg"); copyUrlToImage.put("grc/5.jpg", "GRC.zip/GRC/Calciderm.full.jpg"); - copyUrlToImage.put("grc/50.jpg", "GRC.zip/GRC/Fling 2.full.jpg"); - copyUrlToImage.put("grc/51.jpg", "GRC.zip/GRC/Sylvan Ranger 2.full.jpg"); + copyUrlToImage.put("grc/50.jpg", "GRC.zip/GRC/Fling.full.jpg"); + copyUrlToImage.put("grc/51.jpg", "GRC.zip/GRC/Sylvan Ranger.full.jpg"); copyUrlToImage.put("grc/59.jpg", "GRC.zip/GRC/Plague Stinger.full.jpg"); copyUrlToImage.put("grc/6.jpg", "GRC.zip/GRC/Reckless Wurm.full.jpg"); copyUrlToImage.put("grc/60.jpg", "GRC.zip/GRC/Golem's Heart.full.jpg"); @@ -521,9 +900,9 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImage.put("grc/64.jpg", "GRC.zip/GRC/Master's Call.full.jpg"); copyUrlToImage.put("grc/65.jpg", "GRC.zip/GRC/Plague Myr.full.jpg"); copyUrlToImage.put("grc/66.jpg", "GRC.zip/GRC/Signal Pest.full.jpg"); - copyUrlToImage.put("grc/69.jpg", "GRC.zip/GRC/Fling 1.full.jpg"); + copyUrlToImage.put("grc/69.jpg", "GRC.zip/GRC/Fling.full.jpg"); copyUrlToImage.put("grc/7.jpg", "GRC.zip/GRC/Yixlid Jailer.full.jpg"); - copyUrlToImage.put("grc/70.jpg", "GRC.zip/GRC/Sylvan Ranger 1.full.jpg"); + copyUrlToImage.put("grc/70.jpg", "GRC.zip/GRC/Sylvan Ranger.full.jpg"); copyUrlToImage.put("grc/71.jpg", "GRC.zip/GRC/Vault Skirge.full.jpg"); copyUrlToImage.put("grc/72.jpg", "GRC.zip/GRC/Maul Splicer.full.jpg"); copyUrlToImage.put("grc/73.jpg", "GRC.zip/GRC/Shrine of Burning Rage.full.jpg"); @@ -541,7 +920,7 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImage.put("jr/1.jpg", "JP.zip/JP/Lightning Bolt.full.jpg"); copyUrlToImage.put("jr/10.jpg", "JP.zip/JP/Tradewind Rider.full.jpg"); copyUrlToImage.put("jr/100.jpg", "JP.zip/JP/Feldon of the Third Path.full.jpg"); - copyUrlToImage.put("jr/101.jpg", "JP.zip/JP/Wasteland 2.full.jpg"); + copyUrlToImage.put("jr/101.jpg", "JP.zip/JP/Wasteland.full.jpg"); copyUrlToImage.put("jr/103.jpg", "JP.zip/JP/Mana Drain.full.jpg"); copyUrlToImage.put("jr/105.jpg", "JP.zip/JP/Command Beacon.full.jpg"); copyUrlToImage.put("jr/11.jpg", "JP.zip/JP/Intuition.full.jpg"); @@ -566,7 +945,7 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImage.put("jr/29.jpg", "JP.zip/JP/Cunning Wish.full.jpg"); copyUrlToImage.put("jr/3.jpg", "JP.zip/JP/Gaea's Cradle.full.jpg"); copyUrlToImage.put("jr/30.jpg", "JP.zip/JP/Yawgmoth's Will.full.jpg"); - copyUrlToImage.put("jr/31.jpg", "JP.zip/JP/Vindicate 2.full.jpg"); + copyUrlToImage.put("jr/31.jpg", "JP.zip/JP/Vindicate.full.jpg"); copyUrlToImage.put("jr/32.jpg", "JP.zip/JP/Decree of Justice.full.jpg"); copyUrlToImage.put("jr/33.jpg", "JP.zip/JP/Orim's Chant.full.jpg"); copyUrlToImage.put("jr/34.jpg", "JP.zip/JP/Mind's Desire.full.jpg"); @@ -592,7 +971,7 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImage.put("jr/52.jpg", "JP.zip/JP/Land Tax.full.jpg"); copyUrlToImage.put("jr/53.jpg", "JP.zip/JP/Morphling.full.jpg"); copyUrlToImage.put("jr/54.jpg", "JP.zip/JP/Wheel of Fortune.full.jpg"); - copyUrlToImage.put("jr/55.jpg", "JP.zip/JP/Wasteland 1.full.jpg"); + copyUrlToImage.put("jr/55.jpg", "JP.zip/JP/Wasteland.full.jpg"); copyUrlToImage.put("jr/56.jpg", "JP.zip/JP/Entomb.full.jpg"); copyUrlToImage.put("jr/57.jpg", "JP.zip/JP/Sword of Fire and Ice.full.jpg"); copyUrlToImage.put("jr/58.jpg", "JP.zip/JP/Vendilion Clique.full.jpg"); @@ -617,7 +996,7 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImage.put("jr/75.jpg", "JP.zip/JP/Crucible of Worlds.full.jpg"); copyUrlToImage.put("jr/76.jpg", "JP.zip/JP/Overwhelming Forces.full.jpg"); copyUrlToImage.put("jr/77.jpg", "JP.zip/JP/Show and Tell.full.jpg"); - copyUrlToImage.put("jr/78.jpg", "JP.zip/JP/Vindicate 1.full.jpg"); + copyUrlToImage.put("jr/78.jpg", "JP.zip/JP/Vindicate.full.jpg"); copyUrlToImage.put("jr/79.jpg", "JP.zip/JP/Genesis.full.jpg"); copyUrlToImage.put("jr/8.jpg", "JP.zip/JP/Oath of Druids.full.jpg"); copyUrlToImage.put("jr/80.jpg", "JP.zip/JP/Karador, Ghost Chieftain.full.jpg"); @@ -638,6 +1017,204 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImage.put("jr/97.jpg", "JP.zip/JP/Ravages of War.full.jpg"); copyUrlToImage.put("jr/98.jpg", "JP.zip/JP/Damnation.full.jpg"); copyUrlToImage.put("jr/99.jpg", "JP.zip/JP/Dualcaster Mage.full.jpg"); + copyUrlToImage.put("mbp/1.jpg", "MBP.zip/MBP/Arena.full.jpg"); + copyUrlToImage.put("mbp/10.jpg", "MBP.zip/MBP/Lightning Hounds.full.jpg"); + copyUrlToImage.put("mbp/100.jpg", "MBP.zip/MBP/Jace, the Living Guildpact.full.jpg"); + copyUrlToImage.put("mbp/101.jpg", "MBP.zip/MBP/Liliana Vess.full.jpg"); + copyUrlToImage.put("mbp/102.jpg", "MBP.zip/MBP/Chandra, Pyromaster.full.jpg"); + copyUrlToImage.put("mbp/103.jpg", "MBP.zip/MBP/Nissa, Worldwaker.full.jpg"); + copyUrlToImage.put("mbp/104.jpg", "MBP.zip/MBP/Garruk, Apex Predator.full.jpg"); + copyUrlToImage.put("mbp/105.jpg", "MBP.zip/MBP/Shamanic Revelation.full.jpg"); + copyUrlToImage.put("mbp/106.jpg", "MBP.zip/MBP/Ojutai's Command.full.jpg"); + copyUrlToImage.put("mbp/107.jpg", "MBP.zip/MBP/Dragonscale General.full.jpg"); + copyUrlToImage.put("mbp/108.jpg", "MBP.zip/MBP/Sage-Eye Avengers.full.jpg"); + copyUrlToImage.put("mbp/109.jpg", "MBP.zip/MBP/Archfiend of Depravity.full.jpg"); + copyUrlToImage.put("mbp/11.jpg", "MBP.zip/MBP/Spined Wurm.full.jpg"); + copyUrlToImage.put("mbp/110.jpg", "MBP.zip/MBP/Flamerush Rider.full.jpg"); + copyUrlToImage.put("mbp/111.jpg", "MBP.zip/MBP/Temur War Shaman.full.jpg"); + copyUrlToImage.put("mbp/112.jpg", "MBP.zip/MBP/Arashin Sovereign.full.jpg"); + copyUrlToImage.put("mbp/113.jpg", "MBP.zip/MBP/Pristine Skywise.full.jpg"); + copyUrlToImage.put("mbp/114.jpg", "MBP.zip/MBP/Necromaster Dragon.full.jpg"); + copyUrlToImage.put("mbp/115.jpg", "MBP.zip/MBP/Boltwing Marauder.full.jpg"); + copyUrlToImage.put("mbp/116.jpg", "MBP.zip/MBP/Harbinger of the Hunt.full.jpg"); + copyUrlToImage.put("mbp/117.jpg", "MBP.zip/MBP/Sultai Charm.full.jpg"); + copyUrlToImage.put("mbp/118.jpg", "MBP.zip/MBP/Aeronaut Tinkerer.full.jpg"); + copyUrlToImage.put("mbp/119.jpg", "MBP.zip/MBP/Dragon Fodder.full.jpg"); + copyUrlToImage.put("mbp/12.jpg", "MBP.zip/MBP/Warmonger.full.jpg"); + copyUrlToImage.put("mbp/120.jpg", "MBP.zip/MBP/Dragonlord's Servant.full.jpg"); + copyUrlToImage.put("mbp/121.jpg", "MBP.zip/MBP/Evolving Wilds.full.jpg"); + copyUrlToImage.put("mbp/122.jpg", "MBP.zip/MBP/Foe-Razer Regent.full.jpg"); + copyUrlToImage.put("mbp/123.jpg", "MBP.zip/MBP/Relic Seeker.full.jpg"); + copyUrlToImage.put("mbp/124.jpg", "MBP.zip/MBP/Alhammarret, High Arbiter.full.jpg"); + copyUrlToImage.put("mbp/125.jpg", "MBP.zip/MBP/Dwynen, Gilt-Leaf Daen.full.jpg"); + copyUrlToImage.put("mbp/126.jpg", "MBP.zip/MBP/Hixus, Prison Warden.full.jpg"); + copyUrlToImage.put("mbp/127.jpg", "MBP.zip/MBP/Kothophed, Soul Hoarder.full.jpg"); + copyUrlToImage.put("mbp/128.jpg", "MBP.zip/MBP/Pia and Kiran Nalaar.full.jpg"); + copyUrlToImage.put("mbp/129.jpg", "MBP.zip/MBP/Honored Hierarch.full.jpg"); + copyUrlToImage.put("mbp/13.jpg", "MBP.zip/MBP/Silver Drake.full.jpg"); + copyUrlToImage.put("mbp/130.jpg", "MBP.zip/MBP/Seeker of the Way.full.jpg"); + copyUrlToImage.put("mbp/131.jpg", "MBP.zip/MBP/Valorous Stance.full.jpg"); + copyUrlToImage.put("mbp/132.jpg", "MBP.zip/MBP/Dromoka, the Eternal.full.jpg"); + copyUrlToImage.put("mbp/133.jpg", "MBP.zip/MBP/Siege Rhino.full.jpg"); + copyUrlToImage.put("mbp/134.jpg", "MBP.zip/MBP/Sandsteppe Citadel.full.jpg"); + copyUrlToImage.put("mbp/135.jpg", "MBP.zip/MBP/Ruinous Path.full.jpg"); + copyUrlToImage.put("mbp/136.jpg", "MBP.zip/MBP/Hero of Goma Fada.full.jpg"); + copyUrlToImage.put("mbp/137.jpg", "MBP.zip/MBP/Drowner of Hope.full.jpg"); + copyUrlToImage.put("mbp/138.jpg", "MBP.zip/MBP/Defiant Bloodlord.full.jpg"); + copyUrlToImage.put("mbp/139.jpg", "MBP.zip/MBP/Barrage Tyrant.full.jpg"); + copyUrlToImage.put("mbp/14.jpg", "MBP.zip/MBP/Phyrexian Rager.full.jpg"); + copyUrlToImage.put("mbp/140.jpg", "MBP.zip/MBP/Oran-Rief Hydra.full.jpg"); + copyUrlToImage.put("mbp/141.jpg", "MBP.zip/MBP/Scythe Leopard.full.jpg"); + copyUrlToImage.put("mbp/142.jpg", "MBP.zip/MBP/Genesis Hydra.full.jpg"); + copyUrlToImage.put("mbp/143.jpg", "MBP.zip/MBP/Munda's Vanguard.full.jpg"); + copyUrlToImage.put("mbp/144.jpg", "MBP.zip/MBP/Deepfathom Skulker.full.jpg"); + copyUrlToImage.put("mbp/145.jpg", "MBP.zip/MBP/Dread Defiler.full.jpg"); + copyUrlToImage.put("mbp/146.jpg", "MBP.zip/MBP/Tyrant of Valakut.full.jpg"); + copyUrlToImage.put("mbp/147.jpg", "MBP.zip/MBP/Gladehart Cavalry.full.jpg"); + copyUrlToImage.put("mbp/148.jpg", "MBP.zip/MBP/Goblin Dark-Dwellers.full.jpg"); + copyUrlToImage.put("mbp/15.jpg", "MBP.zip/MBP/Jace Beleren.full.jpg"); + copyUrlToImage.put("mbp/16.jpg", "MBP.zip/MBP/Garruk Wildspeaker.full.jpg"); + copyUrlToImage.put("mbp/17.jpg", "MBP.zip/MBP/Brion Stoutarm.full.jpg"); + copyUrlToImage.put("mbp/18.jpg", "MBP.zip/MBP/Jaya Ballard, Task Mage.full.jpg"); + copyUrlToImage.put("mbp/19.jpg", "MBP.zip/MBP/Broodmate Dragon.full.jpg"); + copyUrlToImage.put("mbp/2.jpg", "MBP.zip/MBP/Sewers of Estark.full.jpg"); + copyUrlToImage.put("mbp/20.jpg", "MBP.zip/MBP/Honor of the Pure.full.jpg"); + copyUrlToImage.put("mbp/21.jpg", "MBP.zip/MBP/Steward of Valeron.full.jpg"); + copyUrlToImage.put("mbp/22.jpg", "MBP.zip/MBP/Day of Judgment.full.jpg"); + copyUrlToImage.put("mbp/23.jpg", "MBP.zip/MBP/Celestial Colonnade.full.jpg"); + copyUrlToImage.put("mbp/24.jpg", "MBP.zip/MBP/Retaliator Griffin.full.jpg"); + copyUrlToImage.put("mbp/25.jpg", "MBP.zip/MBP/Kor Skyfisher.full.jpg"); + copyUrlToImage.put("mbp/26.jpg", "MBP.zip/MBP/Guul Draz Assassin.full.jpg"); + copyUrlToImage.put("mbp/27.jpg", "MBP.zip/MBP/Nissa Revane.full.jpg"); + copyUrlToImage.put("mbp/28.jpg", "MBP.zip/MBP/Birds of Paradise.full.jpg"); + copyUrlToImage.put("mbp/29.jpg", "MBP.zip/MBP/Memoricide.full.jpg"); + copyUrlToImage.put("mbp/3.jpg", "MBP.zip/MBP/Nalathni Dragon.full.jpg"); + copyUrlToImage.put("mbp/30.jpg", "MBP.zip/MBP/Liliana Vess.full.jpg"); + copyUrlToImage.put("mbp/31.jpg", "MBP.zip/MBP/Bloodthrone Vampire.full.jpg"); + copyUrlToImage.put("mbp/32.jpg", "MBP.zip/MBP/Mirran Crusader.full.jpg"); + copyUrlToImage.put("mbp/33.jpg", "MBP.zip/MBP/Surgical Extraction.full.jpg"); + copyUrlToImage.put("mbp/34.jpg", "MBP.zip/MBP/Frost Titan.full.jpg"); + copyUrlToImage.put("mbp/35.jpg", "MBP.zip/MBP/Grave Titan.full.jpg"); + copyUrlToImage.put("mbp/36.jpg", "MBP.zip/MBP/Inferno Titan.full.jpg"); + copyUrlToImage.put("mbp/37.jpg", "MBP.zip/MBP/Chandra's Phoenix.full.jpg"); + copyUrlToImage.put("mbp/38.jpg", "MBP.zip/MBP/Treasure Hunt.full.jpg"); + copyUrlToImage.put("mbp/39.jpg", "MBP.zip/MBP/Faithless Looting.full.jpg"); + copyUrlToImage.put("mbp/4.jpg", "MBP.zip/MBP/Fireball.full.jpg"); + copyUrlToImage.put("mbp/40.jpg", "MBP.zip/MBP/Devil's Play.full.jpg"); + copyUrlToImage.put("mbp/41.jpg", "MBP.zip/MBP/Gravecrawler.full.jpg"); + copyUrlToImage.put("mbp/42.jpg", "MBP.zip/MBP/Electrolyze.full.jpg"); + copyUrlToImage.put("mbp/43.jpg", "MBP.zip/MBP/Feast of Blood.full.jpg"); + copyUrlToImage.put("mbp/44.jpg", "MBP.zip/MBP/Silverblade Paladin.full.jpg"); + copyUrlToImage.put("mbp/45.jpg", "MBP.zip/MBP/Merfolk Mesmerist.full.jpg"); + copyUrlToImage.put("mbp/46.jpg", "MBP.zip/MBP/Knight Exemplar.full.jpg"); + copyUrlToImage.put("mbp/47.jpg", "MBP.zip/MBP/Sunblast Angel.full.jpg"); + copyUrlToImage.put("mbp/48.jpg", "MBP.zip/MBP/Serra Avatar.full.jpg"); + copyUrlToImage.put("mbp/49.jpg", "MBP.zip/MBP/Primordial Hydra.full.jpg"); + copyUrlToImage.put("mbp/5.jpg", "MBP.zip/MBP/Blue Elemental Blast.full.jpg"); + copyUrlToImage.put("mbp/50.jpg", "MBP.zip/MBP/Vampire Nocturnus.full.jpg"); + copyUrlToImage.put("mbp/51.jpg", "MBP.zip/MBP/Cathedral of War.full.jpg"); + copyUrlToImage.put("mbp/52.jpg", "MBP.zip/MBP/Terastodon.full.jpg"); + copyUrlToImage.put("mbp/53.jpg", "MBP.zip/MBP/Arrest.full.jpg"); + copyUrlToImage.put("mbp/54.jpg", "MBP.zip/MBP/Consume Spirit.full.jpg"); + copyUrlToImage.put("mbp/55.jpg", "MBP.zip/MBP/Dreg Mangler.full.jpg"); + copyUrlToImage.put("mbp/56.jpg", "MBP.zip/MBP/Supreme Verdict.full.jpg"); + copyUrlToImage.put("mbp/57.jpg", "MBP.zip/MBP/Standstill.full.jpg"); + copyUrlToImage.put("mbp/58.jpg", "MBP.zip/MBP/Breath of Malfegor.full.jpg"); + copyUrlToImage.put("mbp/59.jpg", "MBP.zip/MBP/Angel of Glory's Rise.full.jpg"); + copyUrlToImage.put("mbp/6.jpg", "MBP.zip/MBP/Mana Crypt.full.jpg"); + copyUrlToImage.put("mbp/60.jpg", "MBP.zip/MBP/Turnabout.full.jpg"); + copyUrlToImage.put("mbp/61.jpg", "MBP.zip/MBP/Nightveil Specter.full.jpg"); + copyUrlToImage.put("mbp/62.jpg", "MBP.zip/MBP/Voidmage Husher.full.jpg"); + copyUrlToImage.put("mbp/63.jpg", "MBP.zip/MBP/Ogre Arsonist.full.jpg"); + copyUrlToImage.put("mbp/64.jpg", "MBP.zip/MBP/Corrupt.full.jpg"); + copyUrlToImage.put("mbp/65.jpg", "MBP.zip/MBP/Chandra's Fury.full.jpg"); + copyUrlToImage.put("mbp/66.jpg", "MBP.zip/MBP/Render Silent.full.jpg"); + copyUrlToImage.put("mbp/67.jpg", "MBP.zip/MBP/Ratchet Bomb.full.jpg"); + copyUrlToImage.put("mbp/68.jpg", "MBP.zip/MBP/Bonescythe Sliver.full.jpg"); + copyUrlToImage.put("mbp/69.jpg", "MBP.zip/MBP/Ogre Battledriver.full.jpg"); + copyUrlToImage.put("mbp/7.jpg", "MBP.zip/MBP/Windseeker Centaur.full.jpg"); + copyUrlToImage.put("mbp/70.jpg", "MBP.zip/MBP/Scavenging Ooze.full.jpg"); + copyUrlToImage.put("mbp/71.jpg", "MBP.zip/MBP/Hamletback Goliath.full.jpg"); + copyUrlToImage.put("mbp/72.jpg", "MBP.zip/MBP/Ajani, Caller of the Pride.full.jpg"); + copyUrlToImage.put("mbp/73.jpg", "MBP.zip/MBP/Jace, Memory Adept.full.jpg"); + copyUrlToImage.put("mbp/74.jpg", "MBP.zip/MBP/Liliana of the Dark Realms.full.jpg"); + copyUrlToImage.put("mbp/75.jpg", "MBP.zip/MBP/Chandra, Pyromaster.full.jpg"); + copyUrlToImage.put("mbp/76.jpg", "MBP.zip/MBP/Garruk, Caller of Beasts.full.jpg"); + copyUrlToImage.put("mbp/77.jpg", "MBP.zip/MBP/Sylvan Caryatid.full.jpg"); + copyUrlToImage.put("mbp/78.jpg", "MBP.zip/MBP/Karametra's Acolyte.full.jpg"); + copyUrlToImage.put("mbp/79.jpg", "MBP.zip/MBP/Fated Conflagration.full.jpg"); + copyUrlToImage.put("mbp/8.jpg", "MBP.zip/MBP/Giant Badger.full.jpg"); + copyUrlToImage.put("mbp/80.jpg", "MBP.zip/MBP/High Tide.full.jpg"); + copyUrlToImage.put("mbp/81.jpg", "MBP.zip/MBP/Gaze of Granite.full.jpg"); + copyUrlToImage.put("mbp/82.jpg", "MBP.zip/MBP/Wash Out.full.jpg"); + copyUrlToImage.put("mbp/83.jpg", "MBP.zip/MBP/Acquire.full.jpg"); + copyUrlToImage.put("mbp/84.jpg", "MBP.zip/MBP/Duress.full.jpg"); + copyUrlToImage.put("mbp/85.jpg", "MBP.zip/MBP/Eidolon of Blossoms.full.jpg"); + copyUrlToImage.put("mbp/86.jpg", "MBP.zip/MBP/Magister of Worth.full.jpg"); + copyUrlToImage.put("mbp/87.jpg", "MBP.zip/MBP/Soul of Ravnica.full.jpg"); + copyUrlToImage.put("mbp/88.jpg", "MBP.zip/MBP/Soul of Zendikar.full.jpg"); + copyUrlToImage.put("mbp/89.jpg", "MBP.zip/MBP/Stealer of Secrets.full.jpg"); + copyUrlToImage.put("mbp/9.jpg", "MBP.zip/MBP/Scent of Cinder.full.jpg"); + copyUrlToImage.put("mbp/90.jpg", "MBP.zip/MBP/Angelic Skirmisher.full.jpg"); + copyUrlToImage.put("mbp/91.jpg", "MBP.zip/MBP/Xathrid Necromancer.full.jpg"); + copyUrlToImage.put("mbp/92.jpg", "MBP.zip/MBP/Rattleclaw Mystic.full.jpg"); + copyUrlToImage.put("mbp/93.jpg", "MBP.zip/MBP/Ankle Shanker.full.jpg"); + copyUrlToImage.put("mbp/94.jpg", "MBP.zip/MBP/Avalanche Tusker.full.jpg"); + copyUrlToImage.put("mbp/95.jpg", "MBP.zip/MBP/Ivorytusk Fortress.full.jpg"); + copyUrlToImage.put("mbp/96.jpg", "MBP.zip/MBP/Rakshasa Vizier.full.jpg"); + copyUrlToImage.put("mbp/97.jpg", "MBP.zip/MBP/Sage of the Inward Eye.full.jpg"); + copyUrlToImage.put("mbp/98.jpg", "MBP.zip/MBP/Goblin Rabblemaster.full.jpg"); + copyUrlToImage.put("mbp/99.jpg", "MBP.zip/MBP/Ajani Steadfast.full.jpg"); + copyUrlToImage.put("mgdc/1.jpg", "MGDC.zip/MGDC/Reya Dawnbringer.full.jpg"); + copyUrlToImage.put("mgdc/10.jpg", "MGDC.zip/MGDC/Stormblood Berserker.full.jpg"); + copyUrlToImage.put("mgdc/11.jpg", "MGDC.zip/MGDC/Dungrove Elder.full.jpg"); + copyUrlToImage.put("mgdc/12.jpg", "MGDC.zip/MGDC/Diregraf Ghoul.full.jpg"); + copyUrlToImage.put("mgdc/13.jpg", "MGDC.zip/MGDC/Elite Inquisitor.full.jpg"); + copyUrlToImage.put("mgdc/14.jpg", "MGDC.zip/MGDC/Zombie Apocalypse.full.jpg"); + copyUrlToImage.put("mgdc/15.jpg", "MGDC.zip/MGDC/Strangleroot Geist.full.jpg"); + copyUrlToImage.put("mgdc/16.jpg", "MGDC.zip/MGDC/Suture Priest.full.jpg"); + copyUrlToImage.put("mgdc/17.jpg", "MGDC.zip/MGDC/Pristine Talisman.full.jpg"); + copyUrlToImage.put("mgdc/18.jpg", "MGDC.zip/MGDC/Latch Seeker.full.jpg"); + copyUrlToImage.put("mgdc/19.jpg", "MGDC.zip/MGDC/Killing Wave.full.jpg"); + copyUrlToImage.put("mgdc/2.jpg", "MGDC.zip/MGDC/Liliana's Specter.full.jpg"); + copyUrlToImage.put("mgdc/20.jpg", "MGDC.zip/MGDC/Magmaquake.full.jpg"); + copyUrlToImage.put("mgdc/21.jpg", "MGDC.zip/MGDC/Mwonvuli Beast Tracker.full.jpg"); + copyUrlToImage.put("mgdc/22.jpg", "MGDC.zip/MGDC/Cryptborn Horror.full.jpg"); + copyUrlToImage.put("mgdc/23.jpg", "MGDC.zip/MGDC/Dryad Militant.full.jpg"); + copyUrlToImage.put("mgdc/24.jpg", "MGDC.zip/MGDC/Firemane Avenger.full.jpg"); + copyUrlToImage.put("mgdc/25.jpg", "MGDC.zip/MGDC/Zameck Guildmage.full.jpg"); + copyUrlToImage.put("mgdc/26.jpg", "MGDC.zip/MGDC/Melek, Izzet Paragon.full.jpg"); + copyUrlToImage.put("mgdc/27.jpg", "MGDC.zip/MGDC/Trostani's Summoner.full.jpg"); + copyUrlToImage.put("mgdc/28.jpg", "MGDC.zip/MGDC/Hive Stirrings.full.jpg"); + copyUrlToImage.put("mgdc/29.jpg", "MGDC.zip/MGDC/Goblin Diplomats.full.jpg"); + copyUrlToImage.put("mgdc/3.jpg", "MGDC.zip/MGDC/Mitotic Slime.full.jpg"); + copyUrlToImage.put("mgdc/30.jpg", "MGDC.zip/MGDC/Phalanx Leader.full.jpg"); + copyUrlToImage.put("mgdc/31.jpg", "MGDC.zip/MGDC/Nighthowler.full.jpg"); + copyUrlToImage.put("mgdc/32.jpg", "MGDC.zip/MGDC/Pain Seer.full.jpg"); + copyUrlToImage.put("mgdc/33.jpg", "MGDC.zip/MGDC/Kiora's Follower.full.jpg"); + copyUrlToImage.put("mgdc/34.jpg", "MGDC.zip/MGDC/Squelching Leeches.full.jpg"); + copyUrlToImage.put("mgdc/35.jpg", "MGDC.zip/MGDC/Dictate of Kruphix.full.jpg"); + copyUrlToImage.put("mgdc/36.jpg", "MGDC.zip/MGDC/Hall of Triumph.full.jpg"); + copyUrlToImage.put("mgdc/37.jpg", "MGDC.zip/MGDC/Heir of the Wilds.full.jpg"); + copyUrlToImage.put("mgdc/38.jpg", "MGDC.zip/MGDC/Utter End.full.jpg"); + copyUrlToImage.put("mgdc/39.jpg", "MGDC.zip/MGDC/Reclamation Sage.full.jpg"); + copyUrlToImage.put("mgdc/4.jpg", "MGDC.zip/MGDC/Memnite.full.jpg"); + copyUrlToImage.put("mgdc/40.jpg", "MGDC.zip/MGDC/Chief Engineer.full.jpg"); + copyUrlToImage.put("mgdc/41.jpg", "MGDC.zip/MGDC/Mardu Shadowspear.full.jpg"); + copyUrlToImage.put("mgdc/42.jpg", "MGDC.zip/MGDC/Supplant Form.full.jpg"); + copyUrlToImage.put("mgdc/43.jpg", "MGDC.zip/MGDC/Thunderbreak Regent.full.jpg"); + copyUrlToImage.put("mgdc/44.jpg", "MGDC.zip/MGDC/Scaleguard Sentinels.full.jpg"); + copyUrlToImage.put("mgdc/45.jpg", "MGDC.zip/MGDC/Conclave Naturalists.full.jpg"); + copyUrlToImage.put("mgdc/46.jpg", "MGDC.zip/MGDC/Languish.full.jpg"); + copyUrlToImage.put("mgdc/47.jpg", "MGDC.zip/MGDC/Stasis Snare.full.jpg"); + copyUrlToImage.put("mgdc/48.jpg", "MGDC.zip/MGDC/Radiant Flames.full.jpg"); + copyUrlToImage.put("mgdc/49.jpg", "MGDC.zip/MGDC/Immolating Glare.full.jpg"); + copyUrlToImage.put("mgdc/5.jpg", "MGDC.zip/MGDC/Tempered Steel.full.jpg"); + copyUrlToImage.put("mgdc/50.jpg", "MGDC.zip/MGDC/Jori En, Ruin Diver.full.jpg"); + copyUrlToImage.put("mgdc/6.jpg", "MGDC.zip/MGDC/Treasure Mage.full.jpg"); + copyUrlToImage.put("mgdc/7.jpg", "MGDC.zip/MGDC/Black Sun's Zenith.full.jpg"); + copyUrlToImage.put("mgdc/8.jpg", "MGDC.zip/MGDC/Myr Superion.full.jpg"); + copyUrlToImage.put("mgdc/9.jpg", "MGDC.zip/MGDC/Priest of Urabrask.full.jpg"); copyUrlToImage.put("mlp/1.jpg", "MLP.zip/MLP/Earwig Squad.full.jpg"); copyUrlToImage.put("mlp/10.jpg", "MLP.zip/MLP/Lord of Shatterskull Pass.full.jpg"); copyUrlToImage.put("mlp/11.jpg", "MLP.zip/MLP/Ancient Hellkite.full.jpg"); @@ -727,6 +1304,36 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImage.put("mprp/7.jpg", "MPRP.zip/MPRP/Oxidize.full.jpg"); copyUrlToImage.put("mprp/8.jpg", "MPRP.zip/MPRP/Mana Leak.full.jpg"); copyUrlToImage.put("mprp/9.jpg", "MPRP.zip/MPRP/Reciprocate.full.jpg"); + copyUrlToImage.put("mpskld/1.jpg", "MPS.zip/MPS/Cataclysmic Gearhulk.full.jpg"); + copyUrlToImage.put("mpskld/10.jpg", "MPS.zip/MPS/Cloudstone Curio.full.jpg"); + copyUrlToImage.put("mpskld/11.jpg", "MPS.zip/MPS/Crucible of Worlds.full.jpg"); + copyUrlToImage.put("mpskld/12.jpg", "MPS.zip/MPS/Gauntlet of Power.full.jpg"); + copyUrlToImage.put("mpskld/13.jpg", "MPS.zip/MPS/Hangarback Walker.full.jpg"); + copyUrlToImage.put("mpskld/14.jpg", "MPS.zip/MPS/Lightning Greaves.full.jpg"); + copyUrlToImage.put("mpskld/15.jpg", "MPS.zip/MPS/Lotus Petal.full.jpg"); + copyUrlToImage.put("mpskld/16.jpg", "MPS.zip/MPS/Mana Crypt.full.jpg"); + copyUrlToImage.put("mpskld/17.jpg", "MPS.zip/MPS/Mana Vault.full.jpg"); + copyUrlToImage.put("mpskld/18.jpg", "MPS.zip/MPS/Mind's Eye.full.jpg"); + copyUrlToImage.put("mpskld/19.jpg", "MPS.zip/MPS/Mox Opal.full.jpg"); + copyUrlToImage.put("mpskld/2.jpg", "MPS.zip/MPS/Torrential Gearhulk.full.jpg"); + copyUrlToImage.put("mpskld/20.jpg", "MPS.zip/MPS/Painter's Servant.full.jpg"); + copyUrlToImage.put("mpskld/21.jpg", "MPS.zip/MPS/Rings of Brighthearth.full.jpg"); + copyUrlToImage.put("mpskld/22.jpg", "MPS.zip/MPS/Scroll Rack.full.jpg"); + copyUrlToImage.put("mpskld/23.jpg", "MPS.zip/MPS/Sculpting Steel.full.jpg"); + copyUrlToImage.put("mpskld/24.jpg", "MPS.zip/MPS/Sol Ring.full.jpg"); + copyUrlToImage.put("mpskld/25.jpg", "MPS.zip/MPS/Solemn Simulacrum.full.jpg"); + copyUrlToImage.put("mpskld/26.jpg", "MPS.zip/MPS/Static Orb.full.jpg"); + copyUrlToImage.put("mpskld/27.jpg", "MPS.zip/MPS/Steel Overseer.full.jpg"); + copyUrlToImage.put("mpskld/28.jpg", "MPS.zip/MPS/Sword of Feast and Famine.full.jpg"); + copyUrlToImage.put("mpskld/29.jpg", "MPS.zip/MPS/Sword of Fire and Ice.full.jpg"); + copyUrlToImage.put("mpskld/3.jpg", "MPS.zip/MPS/Noxious Gearhulk.full.jpg"); + copyUrlToImage.put("mpskld/30.jpg", "MPS.zip/MPS/Sword of Light and Shadow.full.jpg"); + copyUrlToImage.put("mpskld/4.jpg", "MPS.zip/MPS/Combustible Gearhulk.full.jpg"); + copyUrlToImage.put("mpskld/5.jpg", "MPS.zip/MPS/Verdurous Gearhulk.full.jpg"); + copyUrlToImage.put("mpskld/6.jpg", "MPS.zip/MPS/Aether Vial.full.jpg"); + copyUrlToImage.put("mpskld/7.jpg", "MPS.zip/MPS/Champion's Helm.full.jpg"); + copyUrlToImage.put("mpskld/8.jpg", "MPS.zip/MPS/Chromatic Lantern.full.jpg"); + copyUrlToImage.put("mpskld/9.jpg", "MPS.zip/MPS/Chrome Mox.full.jpg"); copyUrlToImage.put("ptc/1.jpg", "PTC.zip/PTC/Dirtcowl Wurm.full.jpg"); copyUrlToImage.put("ptc/10.jpg", "PTC.zip/PTC/Rathi Assassin.full.jpg"); copyUrlToImage.put("ptc/100.jpg", "PTC.zip/PTC/Flying Crane Technique.full.jpg"); @@ -990,7 +1597,7 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImage.put("ptc/57.jpg", "PTC.zip/PTC/Carnival Hellsteed.full.jpg"); copyUrlToImage.put("ptc/58.jpg", "PTC.zip/PTC/Corpsejack Menace.full.jpg"); copyUrlToImage.put("ptc/59.jpg", "PTC.zip/PTC/Grove of the Guardian.full.jpg"); - copyUrlToImage.put("ptc/6.jpg", "PTC.zip/PTC/Lu Bu, Master-at-Arms 2.full.jpg"); + copyUrlToImage.put("ptc/6.jpg", "PTC.zip/PTC/Lu Bu, Master-at-Arms.full.jpg"); copyUrlToImage.put("ptc/60.jpg", "PTC.zip/PTC/Consuming Aberration.full.jpg"); copyUrlToImage.put("ptc/61.jpg", "PTC.zip/PTC/Fathom Mage.full.jpg"); copyUrlToImage.put("ptc/62.jpg", "PTC.zip/PTC/Foundry Champion.full.jpg"); @@ -1012,7 +1619,7 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImage.put("ptc/77.jpg", "PTC.zip/PTC/Nessian Wilds Ravager.full.jpg"); copyUrlToImage.put("ptc/78.jpg", "PTC.zip/PTC/Dawnbringer Charioteers.full.jpg"); copyUrlToImage.put("ptc/79.jpg", "PTC.zip/PTC/Scourge of Fleets.full.jpg"); - copyUrlToImage.put("ptc/8.jpg", "PTC.zip/PTC/Lu Bu, Master-at-Arms 1.full.jpg"); + copyUrlToImage.put("ptc/8.jpg", "PTC.zip/PTC/Lu Bu, Master-at-Arms.full.jpg"); copyUrlToImage.put("ptc/80.jpg", "PTC.zip/PTC/Doomwake Giant.full.jpg"); copyUrlToImage.put("ptc/81.jpg", "PTC.zip/PTC/Spawn of Thraxes.full.jpg"); copyUrlToImage.put("ptc/82.jpg", "PTC.zip/PTC/Heroes' Bane.full.jpg"); @@ -1034,6 +1641,38 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImage.put("ptc/97.jpg", "PTC.zip/PTC/Dig Through Time.full.jpg"); copyUrlToImage.put("ptc/98.jpg", "PTC.zip/PTC/Dragon-Style Twins.full.jpg"); copyUrlToImage.put("ptc/99.jpg", "PTC.zip/PTC/Duneblast.full.jpg"); + copyUrlToImage.put("sus/1.jpg", "SUS.zip/SUS/Thran Quarry.full.jpg"); + copyUrlToImage.put("sus/10.jpg", "SUS.zip/SUS/Slith Firewalker.full.jpg"); + copyUrlToImage.put("sus/11.jpg", "SUS.zip/SUS/Royal Assassin.full.jpg"); + copyUrlToImage.put("sus/12.jpg", "SUS.zip/SUS/Sakura-Tribe Elder.full.jpg"); + copyUrlToImage.put("sus/13.jpg", "SUS.zip/SUS/Shard Phoenix.full.jpg"); + copyUrlToImage.put("sus/14.jpg", "SUS.zip/SUS/Soltari Priest.full.jpg"); + copyUrlToImage.put("sus/15.jpg", "SUS.zip/SUS/Whirling Dervish.full.jpg"); + copyUrlToImage.put("sus/16.jpg", "SUS.zip/SUS/Glorious Anthem.full.jpg"); + copyUrlToImage.put("sus/17.jpg", "SUS.zip/SUS/Elvish Champion.full.jpg"); + copyUrlToImage.put("sus/18.jpg", "SUS.zip/SUS/Mad Auntie.full.jpg"); + copyUrlToImage.put("sus/19.jpg", "SUS.zip/SUS/Slith Firewalker.full.jpg"); + copyUrlToImage.put("sus/2.jpg", "SUS.zip/SUS/Serra Avatar.full.jpg"); + copyUrlToImage.put("sus/20.jpg", "SUS.zip/SUS/Royal Assassin.full.jpg"); + copyUrlToImage.put("sus/21.jpg", "SUS.zip/SUS/Sakura-Tribe Elder.full.jpg"); + copyUrlToImage.put("sus/22.jpg", "SUS.zip/SUS/Shard Phoenix.full.jpg"); + copyUrlToImage.put("sus/23.jpg", "SUS.zip/SUS/Soltari Priest.full.jpg"); + copyUrlToImage.put("sus/24.jpg", "SUS.zip/SUS/Whirling Dervish.full.jpg"); + copyUrlToImage.put("sus/25.jpg", "SUS.zip/SUS/Glorious Anthem.full.jpg"); + copyUrlToImage.put("sus/26.jpg", "SUS.zip/SUS/Elvish Champion.full.jpg"); + copyUrlToImage.put("sus/27.jpg", "SUS.zip/SUS/Sakura-Tribe Elder.full.jpg"); + copyUrlToImage.put("sus/28.jpg", "SUS.zip/SUS/Shard Phoenix.full.jpg"); + copyUrlToImage.put("sus/29.jpg", "SUS.zip/SUS/Soltari Priest.full.jpg"); + copyUrlToImage.put("sus/3.jpg", "SUS.zip/SUS/Lord of Atlantis.full.jpg"); + copyUrlToImage.put("sus/30.jpg", "SUS.zip/SUS/Whirling Dervish.full.jpg"); + copyUrlToImage.put("sus/31.jpg", "SUS.zip/SUS/Glorious Anthem.full.jpg"); + copyUrlToImage.put("sus/32.jpg", "SUS.zip/SUS/Elvish Champion.full.jpg"); + copyUrlToImage.put("sus/4.jpg", "SUS.zip/SUS/Crusade.full.jpg"); + copyUrlToImage.put("sus/5.jpg", "SUS.zip/SUS/Elvish Lyrist.full.jpg"); + copyUrlToImage.put("sus/6.jpg", "SUS.zip/SUS/City of Brass.full.jpg"); + copyUrlToImage.put("sus/7.jpg", "SUS.zip/SUS/Volcanic Hammer.full.jpg"); + copyUrlToImage.put("sus/8.jpg", "SUS.zip/SUS/Giant Growth.full.jpg"); + copyUrlToImage.put("sus/9.jpg", "SUS.zip/SUS/Two-Headed Dragon.full.jpg"); copyUrlToImage.put("ugin/1.jpg", "UGIN.zip/UGIN/Ugin, the Spirit Dragon.full.jpg"); copyUrlToImage.put("ugin/113.jpg", "UGIN.zip/UGIN/Jeering Instigator.full.jpg"); copyUrlToImage.put("ugin/123.jpg", "UGIN.zip/UGIN/Arashin War Beast.full.jpg"); @@ -1065,185 +1704,6 @@ public class GrabbagImageSource implements CardImageSource { copyUrlToImage.put("wmcq/3.jpg", "WMCQ.zip/WMCQ/Thalia, Guardian of Thraben.full.jpg"); copyUrlToImage.put("wmcq/4.jpg", "WMCQ.zip/WMCQ/Liliana of the Veil.full.jpg"); copyUrlToImage.put("wmcq/5.jpg", "WMCQ.zip/WMCQ/Snapcaster Mage.full.jpg"); - copyUrlToImage.put("mpskld/1.jpg", "MPS.zip/MPS/Cataclysmic Gearhulk.full.jpg"); - copyUrlToImage.put("mpskld/2.jpg", "MPS.zip/MPS/Torrential Gearhulk.full.jpg"); - copyUrlToImage.put("mpskld/3.jpg", "MPS.zip/MPS/Noxious Gearhulk.full.jpg"); - copyUrlToImage.put("mpskld/4.jpg", "MPS.zip/MPS/Combustible Gearhulk.full.jpg"); - copyUrlToImage.put("mpskld/5.jpg", "MPS.zip/MPS/Verdurous Gearhulk.full.jpg"); - copyUrlToImage.put("mpskld/6.jpg", "MPS.zip/MPS/�ther Vial.full.jpg"); - copyUrlToImage.put("mpskld/6.jpg", "MPS.zip/MPS/Aether Vial.full.jpg"); - copyUrlToImage.put("mpskld/7.jpg", "MPS.zip/MPS/Champion's Helm.full.jpg"); - copyUrlToImage.put("mpskld/8.jpg", "MPS.zip/MPS/Chromatic Lantern.full.jpg"); - copyUrlToImage.put("mpskld/9.jpg", "MPS.zip/MPS/Chrome Mox.full.jpg"); - copyUrlToImage.put("mpskld/10.jpg", "MPS.zip/MPS/Cloudstone Curio.full.jpg"); - copyUrlToImage.put("mpskld/11.jpg", "MPS.zip/MPS/Crucible of Worlds.full.jpg"); - copyUrlToImage.put("mpskld/12.jpg", "MPS.zip/MPS/Gauntlet of Power.full.jpg"); - copyUrlToImage.put("mpskld/13.jpg", "MPS.zip/MPS/Hangarback Walker.full.jpg"); - copyUrlToImage.put("mpskld/14.jpg", "MPS.zip/MPS/Lightning Greaves.full.jpg"); - copyUrlToImage.put("mpskld/15.jpg", "MPS.zip/MPS/Lotus Petal.full.jpg"); - copyUrlToImage.put("mpskld/16.jpg", "MPS.zip/MPS/Mana Crypt.full.jpg"); - copyUrlToImage.put("mpskld/17.jpg", "MPS.zip/MPS/Mana Vault.full.jpg"); - copyUrlToImage.put("mpskld/18.jpg", "MPS.zip/MPS/Mind's Eye.full.jpg"); - copyUrlToImage.put("mpskld/19.jpg", "MPS.zip/MPS/Mox Opal.full.jpg"); - copyUrlToImage.put("mpskld/20.jpg", "MPS.zip/MPS/Painter's Servant.full.jpg"); - copyUrlToImage.put("mpskld/21.jpg", "MPS.zip/MPS/Rings of Brighthearth.full.jpg"); - copyUrlToImage.put("mpskld/22.jpg", "MPS.zip/MPS/Scroll Rack.full.jpg"); - copyUrlToImage.put("mpskld/23.jpg", "MPS.zip/MPS/Sculpting Steel.full.jpg"); - copyUrlToImage.put("mpskld/24.jpg", "MPS.zip/MPS/Sol Ring.full.jpg"); - copyUrlToImage.put("mpskld/25.jpg", "MPS.zip/MPS/Solemn Simulacrum.full.jpg"); - copyUrlToImage.put("mpskld/26.jpg", "MPS.zip/MPS/Static Orb.full.jpg"); - copyUrlToImage.put("mpskld/27.jpg", "MPS.zip/MPS/Steel Overseer.full.jpg"); - copyUrlToImage.put("mpskld/28.jpg", "MPS.zip/MPS/Sword of Feast and Famine.full.jpg"); - copyUrlToImage.put("mpskld/29.jpg", "MPS.zip/MPS/Sword of Fire and Ice.full.jpg"); - copyUrlToImage.put("mpskld/30.jpg", "MPS.zip/MPS/Sword of Light and Shadow.full.jpg"); - copyUrlToImage.put("mbp/1.jpg", "MBP.zip/MBP/Arena.full.jpg"); - copyUrlToImage.put("mbp/2.jpg", "MBP.zip/MBP/Sewers of Estark.full.jpg"); - copyUrlToImage.put("mbp/3.jpg", "MBP.zip/MBP/Nalathni Dragon.full.jpg"); - copyUrlToImage.put("mbp/4.jpg", "MBP.zip/MBP/Fireball.full.jpg"); - copyUrlToImage.put("mbp/5.jpg", "MBP.zip/MBP/Blue Elemental Blast.full.jpg"); - copyUrlToImage.put("mbp/6.jpg", "MBP.zip/MBP/Mana Crypt.full.jpg"); - copyUrlToImage.put("mbp/7.jpg", "MBP.zip/MBP/Windseeker Centaur.full.jpg"); - copyUrlToImage.put("mbp/8.jpg", "MBP.zip/MBP/Giant Badger.full.jpg"); - copyUrlToImage.put("mbp/9.jpg", "MBP.zip/MBP/Scent of Cinder.full.jpg"); - copyUrlToImage.put("mbp/10.jpg", "MBP.zip/MBP/Lightning Hounds.full.jpg"); - copyUrlToImage.put("mbp/11.jpg", "MBP.zip/MBP/Spined Wurm.full.jpg"); - copyUrlToImage.put("mbp/12.jpg", "MBP.zip/MBP/Warmonger.full.jpg"); - copyUrlToImage.put("mbp/13.jpg", "MBP.zip/MBP/Silver Drake.full.jpg"); - copyUrlToImage.put("mbp/14.jpg", "MBP.zip/MBP/Phyrexian Rager.full.jpg"); - copyUrlToImage.put("mbp/15.jpg", "MBP.zip/MBP/Jace Beleren.full.jpg"); - copyUrlToImage.put("mbp/16.jpg", "MBP.zip/MBP/Garruk Wildspeaker.full.jpg"); - copyUrlToImage.put("mbp/17.jpg", "MBP.zip/MBP/Brion Stoutarm.full.jpg"); - copyUrlToImage.put("mbp/18.jpg", "MBP.zip/MBP/Jaya Ballard, Task Mage.full.jpg"); - copyUrlToImage.put("mbp/19.jpg", "MBP.zip/MBP/Broodmate Dragon.full.jpg"); - copyUrlToImage.put("mbp/20.jpg", "MBP.zip/MBP/Honor of the Pure.full.jpg"); - copyUrlToImage.put("mbp/21.jpg", "MBP.zip/MBP/Steward of Valeron.full.jpg"); - copyUrlToImage.put("mbp/22.jpg", "MBP.zip/MBP/Day of Judgment.full.jpg"); - copyUrlToImage.put("mbp/23.jpg", "MBP.zip/MBP/Celestial Colonnade.full.jpg"); - copyUrlToImage.put("mbp/24.jpg", "MBP.zip/MBP/Retaliator Griffin.full.jpg"); - copyUrlToImage.put("mbp/25.jpg", "MBP.zip/MBP/Kor Skyfisher.full.jpg"); - copyUrlToImage.put("mbp/26.jpg", "MBP.zip/MBP/Guul Draz Assassin.full.jpg"); - copyUrlToImage.put("mbp/27.jpg", "MBP.zip/MBP/Nissa Revane.full.jpg"); - copyUrlToImage.put("mbp/28.jpg", "MBP.zip/MBP/Birds of Paradise.full.jpg"); - copyUrlToImage.put("mbp/29.jpg", "MBP.zip/MBP/Memoricide.full.jpg"); - copyUrlToImage.put("mbp/30.jpg", "MBP.zip/MBP/Liliana Vess.full.jpg"); - copyUrlToImage.put("mbp/31.jpg", "MBP.zip/MBP/Bloodthrone Vampire.full.jpg"); - copyUrlToImage.put("mbp/32.jpg", "MBP.zip/MBP/Mirran Crusader.full.jpg"); - copyUrlToImage.put("mbp/33.jpg", "MBP.zip/MBP/Surgical Extraction.full.jpg"); - copyUrlToImage.put("mbp/34.jpg", "MBP.zip/MBP/Frost Titan.full.jpg"); - copyUrlToImage.put("mbp/35.jpg", "MBP.zip/MBP/Grave Titan.full.jpg"); - copyUrlToImage.put("mbp/36.jpg", "MBP.zip/MBP/Inferno Titan.full.jpg"); - copyUrlToImage.put("mbp/37.jpg", "MBP.zip/MBP/Chandra's Phoenix.full.jpg"); - copyUrlToImage.put("mbp/38.jpg", "MBP.zip/MBP/Treasure Hunt.full.jpg"); - copyUrlToImage.put("mbp/39.jpg", "MBP.zip/MBP/Faithless Looting.full.jpg"); - copyUrlToImage.put("mbp/40.jpg", "MBP.zip/MBP/Devil's Play.full.jpg"); - copyUrlToImage.put("mbp/41.jpg", "MBP.zip/MBP/Gravecrawler.full.jpg"); - copyUrlToImage.put("mbp/42.jpg", "MBP.zip/MBP/Electrolyze.full.jpg"); - copyUrlToImage.put("mbp/43.jpg", "MBP.zip/MBP/Feast of Blood.full.jpg"); - copyUrlToImage.put("mbp/44.jpg", "MBP.zip/MBP/Silverblade Paladin.full.jpg"); - copyUrlToImage.put("mbp/45.jpg", "MBP.zip/MBP/Merfolk Mesmerist.full.jpg"); - copyUrlToImage.put("mbp/46.jpg", "MBP.zip/MBP/Knight Exemplar.full.jpg"); - copyUrlToImage.put("mbp/47.jpg", "MBP.zip/MBP/Sunblast Angel.full.jpg"); - copyUrlToImage.put("mbp/48.jpg", "MBP.zip/MBP/Serra Avatar.full.jpg"); - copyUrlToImage.put("mbp/49.jpg", "MBP.zip/MBP/Primordial Hydra.full.jpg"); - copyUrlToImage.put("mbp/50.jpg", "MBP.zip/MBP/Vampire Nocturnus.full.jpg"); - copyUrlToImage.put("mbp/51.jpg", "MBP.zip/MBP/Cathedral of War.full.jpg"); - copyUrlToImage.put("mbp/52.jpg", "MBP.zip/MBP/Terastodon.full.jpg"); - copyUrlToImage.put("mbp/53.jpg", "MBP.zip/MBP/Arrest.full.jpg"); - copyUrlToImage.put("mbp/54.jpg", "MBP.zip/MBP/Consume Spirit.full.jpg"); - copyUrlToImage.put("mbp/55.jpg", "MBP.zip/MBP/Dreg Mangler.full.jpg"); - copyUrlToImage.put("mbp/56.jpg", "MBP.zip/MBP/Supreme Verdict.full.jpg"); - copyUrlToImage.put("mbp/57.jpg", "MBP.zip/MBP/Standstill.full.jpg"); - copyUrlToImage.put("mbp/58.jpg", "MBP.zip/MBP/Breath of Malfegor.full.jpg"); - copyUrlToImage.put("mbp/59.jpg", "MBP.zip/MBP/Angel of Glory's Rise.full.jpg"); - copyUrlToImage.put("mbp/60.jpg", "MBP.zip/MBP/Turnabout.full.jpg"); - copyUrlToImage.put("mbp/61.jpg", "MBP.zip/MBP/Nightveil Specter.full.jpg"); - copyUrlToImage.put("mbp/62.jpg", "MBP.zip/MBP/Voidmage Husher.full.jpg"); - copyUrlToImage.put("mbp/63.jpg", "MBP.zip/MBP/Ogre Arsonist.full.jpg"); - copyUrlToImage.put("mbp/64.jpg", "MBP.zip/MBP/Corrupt.full.jpg"); - copyUrlToImage.put("mbp/65.jpg", "MBP.zip/MBP/Chandra's Fury.full.jpg"); - copyUrlToImage.put("mbp/66.jpg", "MBP.zip/MBP/Render Silent.full.jpg"); - copyUrlToImage.put("mbp/67.jpg", "MBP.zip/MBP/Ratchet Bomb.full.jpg"); - copyUrlToImage.put("mbp/68.jpg", "MBP.zip/MBP/Bonescythe Sliver.full.jpg"); - copyUrlToImage.put("mbp/69.jpg", "MBP.zip/MBP/Ogre Battledriver.full.jpg"); - copyUrlToImage.put("mbp/70.jpg", "MBP.zip/MBP/Scavenging Ooze.full.jpg"); - copyUrlToImage.put("mbp/71.jpg", "MBP.zip/MBP/Hamletback Goliath.full.jpg"); - copyUrlToImage.put("mbp/72.jpg", "MBP.zip/MBP/Ajani, Caller of the Pride.full.jpg"); - copyUrlToImage.put("mbp/73.jpg", "MBP.zip/MBP/Jace, Memory Adept.full.jpg"); - copyUrlToImage.put("mbp/74.jpg", "MBP.zip/MBP/Liliana of the Dark Realms.full.jpg"); - copyUrlToImage.put("mbp/75.jpg", "MBP.zip/MBP/Chandra, Pyromaster.full.jpg"); - copyUrlToImage.put("mbp/76.jpg", "MBP.zip/MBP/Garruk, Caller of Beasts.full.jpg"); - copyUrlToImage.put("mbp/77.jpg", "MBP.zip/MBP/Sylvan Caryatid.full.jpg"); - copyUrlToImage.put("mbp/78.jpg", "MBP.zip/MBP/Karametra's Acolyte.full.jpg"); - copyUrlToImage.put("mbp/79.jpg", "MBP.zip/MBP/Fated Conflagration.full.jpg"); - copyUrlToImage.put("mbp/80.jpg", "MBP.zip/MBP/High Tide.full.jpg"); - copyUrlToImage.put("mbp/81.jpg", "MBP.zip/MBP/Gaze of Granite.full.jpg"); - copyUrlToImage.put("mbp/82.jpg", "MBP.zip/MBP/Wash Out.full.jpg"); - copyUrlToImage.put("mbp/83.jpg", "MBP.zip/MBP/Acquire.full.jpg"); - copyUrlToImage.put("mbp/84.jpg", "MBP.zip/MBP/Duress.full.jpg"); - copyUrlToImage.put("mbp/85.jpg", "MBP.zip/MBP/Eidolon of Blossoms.full.jpg"); - copyUrlToImage.put("mbp/86.jpg", "MBP.zip/MBP/Magister of Worth.full.jpg"); - copyUrlToImage.put("mbp/87.jpg", "MBP.zip/MBP/Soul of Ravnica.full.jpg"); - copyUrlToImage.put("mbp/88.jpg", "MBP.zip/MBP/Soul of Zendikar.full.jpg"); - copyUrlToImage.put("mbp/89.jpg", "MBP.zip/MBP/Stealer of Secrets.full.jpg"); - copyUrlToImage.put("mbp/90.jpg", "MBP.zip/MBP/Angelic Skirmisher.full.jpg"); - copyUrlToImage.put("mbp/91.jpg", "MBP.zip/MBP/Xathrid Necromancer.full.jpg"); - copyUrlToImage.put("mbp/92.jpg", "MBP.zip/MBP/Rattleclaw Mystic.full.jpg"); - copyUrlToImage.put("mbp/93.jpg", "MBP.zip/MBP/Ankle Shanker.full.jpg"); - copyUrlToImage.put("mbp/94.jpg", "MBP.zip/MBP/Avalanche Tusker.full.jpg"); - copyUrlToImage.put("mbp/95.jpg", "MBP.zip/MBP/Ivorytusk Fortress.full.jpg"); - copyUrlToImage.put("mbp/96.jpg", "MBP.zip/MBP/Rakshasa Vizier.full.jpg"); - copyUrlToImage.put("mbp/97.jpg", "MBP.zip/MBP/Sage of the Inward Eye.full.jpg"); - copyUrlToImage.put("mbp/98.jpg", "MBP.zip/MBP/Goblin Rabblemaster.full.jpg"); - copyUrlToImage.put("mbp/99.jpg", "MBP.zip/MBP/Ajani Steadfast.full.jpg"); - copyUrlToImage.put("mbp/100.jpg", "MBP.zip/MBP/Jace, the Living Guildpact.full.jpg"); - copyUrlToImage.put("mbp/101.jpg", "MBP.zip/MBP/Liliana Vess.full.jpg"); - copyUrlToImage.put("mbp/102.jpg", "MBP.zip/MBP/Chandra, Pyromaster.full.jpg"); - copyUrlToImage.put("mbp/103.jpg", "MBP.zip/MBP/Nissa, Worldwaker.full.jpg"); - copyUrlToImage.put("mbp/104.jpg", "MBP.zip/MBP/Garruk, Apex Predator.full.jpg"); - copyUrlToImage.put("mbp/105.jpg", "MBP.zip/MBP/Shamanic Revelation.full.jpg"); - copyUrlToImage.put("mbp/106.jpg", "MBP.zip/MBP/Ojutai's Command.full.jpg"); - copyUrlToImage.put("mbp/107.jpg", "MBP.zip/MBP/Dragonscale General.full.jpg"); - copyUrlToImage.put("mbp/108.jpg", "MBP.zip/MBP/Sage-Eye Avengers.full.jpg"); - copyUrlToImage.put("mbp/109.jpg", "MBP.zip/MBP/Archfiend of Depravity.full.jpg"); - copyUrlToImage.put("mbp/110.jpg", "MBP.zip/MBP/Flamerush Rider.full.jpg"); - copyUrlToImage.put("mbp/111.jpg", "MBP.zip/MBP/Temur War Shaman.full.jpg"); - copyUrlToImage.put("mbp/112.jpg", "MBP.zip/MBP/Arashin Sovereign.full.jpg"); - copyUrlToImage.put("mbp/113.jpg", "MBP.zip/MBP/Pristine Skywise.full.jpg"); - copyUrlToImage.put("mbp/114.jpg", "MBP.zip/MBP/Necromaster Dragon.full.jpg"); - copyUrlToImage.put("mbp/115.jpg", "MBP.zip/MBP/Boltwing Marauder.full.jpg"); - copyUrlToImage.put("mbp/116.jpg", "MBP.zip/MBP/Harbinger of the Hunt.full.jpg"); - copyUrlToImage.put("mbp/117.jpg", "MBP.zip/MBP/Sultai Charm.full.jpg"); - copyUrlToImage.put("mbp/118.jpg", "MBP.zip/MBP/Aeronaut Tinkerer.full.jpg"); - copyUrlToImage.put("mbp/119.jpg", "MBP.zip/MBP/Dragon Fodder.full.jpg"); - copyUrlToImage.put("mbp/120.jpg", "MBP.zip/MBP/Dragonlord's Servant.full.jpg"); - copyUrlToImage.put("mbp/121.jpg", "MBP.zip/MBP/Evolving Wilds.full.jpg"); - copyUrlToImage.put("mbp/122.jpg", "MBP.zip/MBP/Foe-Razer Regent.full.jpg"); - copyUrlToImage.put("mbp/123.jpg", "MBP.zip/MBP/Relic Seeker.full.jpg"); - copyUrlToImage.put("mbp/124.jpg", "MBP.zip/MBP/Alhammarret, High Arbiter.full.jpg"); - copyUrlToImage.put("mbp/125.jpg", "MBP.zip/MBP/Dwynen, Gilt-Leaf Daen.full.jpg"); - copyUrlToImage.put("mbp/126.jpg", "MBP.zip/MBP/Hixus, Prison Warden.full.jpg"); - copyUrlToImage.put("mbp/127.jpg", "MBP.zip/MBP/Kothophed, Soul Hoarder.full.jpg"); - copyUrlToImage.put("mbp/128.jpg", "MBP.zip/MBP/Pia and Kiran Nalaar.full.jpg"); - copyUrlToImage.put("mbp/129.jpg", "MBP.zip/MBP/Honored Hierarch.full.jpg"); - copyUrlToImage.put("mbp/130.jpg", "MBP.zip/MBP/Seeker of the Way.full.jpg"); - copyUrlToImage.put("mbp/131.jpg", "MBP.zip/MBP/Valorous Stance.full.jpg"); - copyUrlToImage.put("mbp/132.jpg", "MBP.zip/MBP/Dromoka, the Eternal.full.jpg"); - copyUrlToImage.put("mbp/133.jpg", "MBP.zip/MBP/Siege Rhino.full.jpg"); - copyUrlToImage.put("mbp/134.jpg", "MBP.zip/MBP/Sandsteppe Citadel.full.jpg"); - copyUrlToImage.put("mbp/135.jpg", "MBP.zip/MBP/Ruinous Path.full.jpg"); - copyUrlToImage.put("mbp/136.jpg", "MBP.zip/MBP/Hero of Goma Fada.full.jpg"); - copyUrlToImage.put("mbp/137.jpg", "MBP.zip/MBP/Drowner of Hope.full.jpg"); - copyUrlToImage.put("mbp/138.jpg", "MBP.zip/MBP/Defiant Bloodlord.full.jpg"); - copyUrlToImage.put("mbp/139.jpg", "MBP.zip/MBP/Barrage Tyrant.full.jpg"); - copyUrlToImage.put("mbp/140.jpg", "MBP.zip/MBP/Oran-Rief Hydra.full.jpg"); - copyUrlToImage.put("mbp/141.jpg", "MBP.zip/MBP/Scythe Leopard.full.jpg"); - copyUrlToImage.put("mbp/142.jpg", "MBP.zip/MBP/Genesis Hydra.full.jpg"); - copyUrlToImage.put("mbp/143.jpg", "MBP.zip/MBP/Munda's Vanguard.full.jpg"); - copyUrlToImage.put("mbp/144.jpg", "MBP.zip/MBP/Deepfathom Skulker.full.jpg"); - copyUrlToImage.put("mbp/145.jpg", "MBP.zip/MBP/Dread Defiler.full.jpg"); - copyUrlToImage.put("mbp/146.jpg", "MBP.zip/MBP/Tyrant of Valakut.full.jpg"); - copyUrlToImage.put("mbp/147.jpg", "MBP.zip/MBP/Gladehart Cavalry.full.jpg"); - copyUrlToImage.put("mbp/148.jpg", "MBP.zip/MBP/Goblin Dark-Dwellers.full.jpg"); for (String key : copyUrlToImage.keySet()) { copyUrlToImageDone.put(key, maxTimes); @@ -1271,4 +1731,21 @@ public class GrabbagImageSource implements CardImageSource { public Boolean isTokenSource() { return false; } + + private String getSourceName(String httpImageUrl) { + if (httpImageUrl.startsWith("MTG")) { + return "http://static.starcitygames.com/sales/cardscans/"; + } else { + return "http://magiccards.info/scans/en/"; + } + } + + private void doPause(String httpImageUrl) { + if (!httpImageUrl.startsWith("MTG")) { + try { + Thread.sleep(2000); + } catch (InterruptedException ex) { + } + } + } } diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java index 6798b08e518..7eac2679a38 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java @@ -363,6 +363,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab for (CardDownloadData card : allCardsUrls) { file = new TFile(CardImageUtils.generateImagePath(card)); if (!file.exists()) { + logger.debug("Missing: " + file.getAbsolutePath()); cardsToDownload.add(card); } } @@ -646,32 +647,42 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab BufferedOutputStream out; // Logger.getLogger(this.getClass()).info(url.toString()); - URLConnection httpConn = url.openConnection(p); - setUpConnection(httpConn); - - httpConn.connect(); - int responseCode = ((HttpURLConnection) httpConn).getResponseCode(); - if (responseCode == 200) { - try (BufferedInputStream in = new BufferedInputStream(((HttpURLConnection) httpConn).getInputStream())) { - //try (BufferedInputStream in = new BufferedInputStream(url.openConnection(p).getInputStream())) { - out = new BufferedOutputStream(new TFileOutputStream(temporaryFile)); - byte[] buf = new byte[1024]; - int len; - while ((len = in.read(buf)) != -1) { - // user cancelled - if (cancel) { - in.close(); - out.flush(); - out.close(); - temporaryFile.delete(); - return; + boolean useTempFile = false; + int responseCode = 0; + URLConnection httpConn = null; + + if (temporaryFile != null && temporaryFile.length() > 100) { + useTempFile = true; + } else { + httpConn = url.openConnection(p); + setUpConnection(httpConn); + httpConn.connect(); + responseCode = ((HttpURLConnection) httpConn).getResponseCode(); + } + + if (responseCode == 200 || useTempFile) { + if (!useTempFile) { + try (BufferedInputStream in = new BufferedInputStream(((HttpURLConnection) httpConn).getInputStream())) { + //try (BufferedInputStream in = new BufferedInputStream(url.openConnection(p).getInputStream())) { + out = new BufferedOutputStream(new TFileOutputStream(temporaryFile)); + byte[] buf = new byte[1024]; + int len; + while ((len = in.read(buf)) != -1) { + // user cancelled + if (cancel) { + in.close(); + out.flush(); + out.close(); + temporaryFile.delete(); + return; + } + out.write(buf, 0, len); } - out.write(buf, 0, len); - } + } + out.flush(); + out.close(); } - out.flush(); - out.close(); if (card != null && card.isTwoFacedCard()) { BufferedImage image = ImageIO.read(temporaryFile); @@ -690,7 +701,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab outputFile.getParentFile().mkdirs(); new TFile(temporaryFile).cp_rp(outputFile); } - temporaryFile.delete(); + //temporaryFile.delete(); } else { outputFile.getParentFile().mkdirs(); new TFile(temporaryFile).cp_rp(outputFile); @@ -712,7 +723,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab logger.error(e, e); } finally { if (temporaryFile != null) { - temporaryFile.delete(); + //temporaryFile.delete(); } } synchronized (sync) {