Alchemy scryfall downloads need a hyphen in their collector "number" (#3809)

This commit is contained in:
Chris H
2023-09-25 10:04:34 -04:00
committed by GitHub
parent b6fa101f35
commit 0fc88cc46c
2 changed files with 20 additions and 6 deletions

View File

@@ -161,6 +161,10 @@ public class ImageUtil {
}
public static String getScryfallDownloadUrl(PaperCard cp, String face, String setCode, String langCode, boolean useArtCrop){
return getScryfallDownloadUrl(cp, face, setCode, langCode, useArtCrop, false);
}
public static String getScryfallDownloadUrl(PaperCard cp, String face, String setCode, String langCode, boolean useArtCrop, boolean hyphenateAlchemy){
String editionCode;
if ((setCode != null) && (setCode.length() > 0))
editionCode = setCode;
@@ -179,6 +183,12 @@ public class ImageUtil {
} else if (cardCollectorNumber.startsWith("OPC2")) {
editionCode = "opc2";
cardCollectorNumber = cardCollectorNumber.substring("OPC2".length());
} else if (hyphenateAlchemy) {
if (!cardCollectorNumber.startsWith("A")) {
return null;
}
cardCollectorNumber = cardCollectorNumber.replace("A", "A-");
}
String versionParam = useArtCrop ? "art_crop" : "normal";
String faceParam = "";

View File

@@ -65,13 +65,18 @@ public abstract class ImageFetcher {
}
}
}
return null;
} else {
String setCode = edition.getScryfallCode();
String langCode = edition.getCardsLangCode();
return ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD +
ImageUtil.getScryfallDownloadUrl(c, face, setCode, langCode, useArtCrop);
String primaryUrl = ImageUtil.getScryfallDownloadUrl(c, face, setCode, langCode, useArtCrop);
downloadUrls.add(ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD + primaryUrl);
String alternateUrl = ImageUtil.getScryfallDownloadUrl(c, face, setCode, langCode, useArtCrop, true);
if (alternateUrl != null && !alternateUrl.equals(primaryUrl)) {
downloadUrls.add(ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD + alternateUrl);
}
}
return null;
}
public void fetchImage(final String imageKey, final Callback callback) {
@@ -205,9 +210,8 @@ public abstract class ImageFetcher {
}
final String cardCollectorNumber = paperCard.getCollectorNumber();
if (!cardCollectorNumber.equals(IPaperCard.NO_COLLECTOR_NUMBER)) {
final String scryfallURL = this.getScryfallDownloadURL(paperCard, face, useArtCrop, hasSetLookup, filename, downloadUrls);
if (scryfallURL != null && !hasSetLookup)
downloadUrls.add(scryfallURL);
// This function adds to downloadUrls for us
this.getScryfallDownloadURL(paperCard, face, useArtCrop, hasSetLookup, filename, downloadUrls);
}
} else if (prefix.equals(ImageKeys.TOKEN_PREFIX)) {
if (tokenImages == null) {