Integration with PaperCard CollectorNumber, and FIX to new Scryfall API specs

This commit is contained in:
leriomaggio
2021-05-23 14:33:48 +01:00
parent 12387f0efb
commit fbbae218c0

View File

@@ -9,6 +9,7 @@ import java.util.concurrent.Executors;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import forge.item.IPaperCard;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import forge.ImageKeys; import forge.ImageKeys;
@@ -78,12 +79,11 @@ public abstract class ImageFetcher {
artIndex = Integer.parseInt(matcher.group(2)); artIndex = Integer.parseInt(matcher.group(2));
} }
final StaticData data = StaticData.instance(); final StaticData data = StaticData.instance();
final String cardNum = data.getCommonCards().getCardCollectorNumber(paperCard.getName(), final int cardCollectorNumber = paperCard.getCollectorNumber();
paperCard.getEdition(), artIndex); if (cardCollectorNumber != IPaperCard.NO_COLLECTOR_NUMBER) {
if (cardNum != null) { String faceParam = "";
String suffix = "";
if (paperCard.getRules().getOtherPart() != null) { if (paperCard.getRules().getOtherPart() != null) {
suffix = (backFace ? "b" : "a"); faceParam = (backFace ? "&face=back" : "&face=front");
} }
final String editionMciCode = data.getEditions().getMciCodeByCode(paperCard.getEdition()); final String editionMciCode = data.getEditions().getMciCodeByCode(paperCard.getEdition());
String langCode = "en"; String langCode = "en";
@@ -93,8 +93,8 @@ public abstract class ImageFetcher {
} }
// see https://scryfall.com/blog 2020/8/6, and // see https://scryfall.com/blog 2020/8/6, and
// https://scryfall.com/docs/api/cards/collector // https://scryfall.com/docs/api/cards/collector
downloadUrls.add(String.format("https://api.scryfall.com/cards/%s/%s%s/%s?format=image&version=normal", downloadUrls.add(String.format("https://api.scryfall.com/cards/%s/%d/%s?format=image&version=normal%s",
editionMciCode, cardNum, suffix, langCode)); editionMciCode, cardCollectorNumber, langCode, faceParam));
} }
} else if (prefix.equals(ImageKeys.TOKEN_PREFIX)) { } else if (prefix.equals(ImageKeys.TOKEN_PREFIX)) {