diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSource.java index 2d7f1d0fed7..6f664975ff9 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSource.java @@ -8,7 +8,7 @@ import java.util.Set; import org.mage.plugins.card.images.CardDownloadData; /** - * @author Quercitron + * @author Quercitron, JayDi85 * */ public enum ScryfallImageSource implements CardImageSource { @@ -217,17 +217,23 @@ public enum ScryfallImageSource implements CardImageSource { @Override public String generateURL(CardDownloadData card) throws Exception { + // special card number like "103a" already compatible + if (card.isCollectorIdWithStr()) { + return "https://img.scryfall.com/cards/large/en/" + formatSetName(card.getSet()) + "/" + + card.getCollectorId() + ".jpg"; + } + + // double faced cards do not supporte by API (need direct link for img) + // example: https://img.scryfall.com/cards/large/en/xln/173b.jpg if (card.isTwoFacedCard()) { - // double faced cards do not supporte by API (need direct link for img) - // example: https://img.scryfall.com/cards/large/en/xln/173b.jpg return "https://img.scryfall.com/cards/large/en/" + formatSetName(card.getSet()) + "/" + card.getCollectorId() + (card.isSecondSide() ? "b" : "a") + ".jpg"; - }else { - // single face cards support by single API call (redirect to img link) - // example: https://api.scryfall.com/cards/xln/121?format=image - return "https://api.scryfall.com/cards/" + formatSetName(card.getSet()) + "/" - + card.getCollectorId() + "?format=image"; } + + // basic cards by api call (redirect to img link) + // example: https://api.scryfall.com/cards/xln/121?format=image + return "https://api.scryfall.com/cards/" + formatSetName(card.getSet()) + "/" + + card.getCollectorId() + "?format=image"; } @Override diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/images/CardDownloadData.java b/Mage.Client/src/main/java/org/mage/plugins/card/images/CardDownloadData.java index 9956f8e10ff..09d354aa76d 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/images/CardDownloadData.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/images/CardDownloadData.java @@ -1,5 +1,7 @@ package org.mage.plugins.card.images; +import mage.util.CardUtil; + import java.util.Objects; /** @@ -128,6 +130,15 @@ public class CardDownloadData { return collectorId; } + public Integer getCollectorIdAsInt() { + return CardUtil.parseCardNumberAsInt(collectorId); + } + + public boolean isCollectorIdWithStr(){ + // card have special numbers like "103a", "180b" (scryfall style) + return !getCollectorId().equals(getCollectorIdAsInt().toString()); + } + public String getName() { return name; }