mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 04:52:07 -08:00
Added downloading double-faced cards images from magiccards.info
This commit is contained in:
parent
a140932ec8
commit
08baa314f4
6 changed files with 53 additions and 11 deletions
|
|
@ -6,7 +6,7 @@ package org.mage.plugins.card.dl.sources;
|
|||
*/
|
||||
public interface CardImageSource {
|
||||
|
||||
String generateURL(Integer collectorId, String cardName, String cardSet) throws Exception;
|
||||
String generateURL(Integer collectorId, String cardName, String cardSet, boolean twoFacedCard, boolean secondFace) throws Exception;
|
||||
String generateTokenUrl(String name, String set);
|
||||
Float getAverageSize();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,15 +50,20 @@ public class MagicCardsImageSource implements CardImageSource {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String generateURL(Integer collectorId, String cardName, String cardSet) throws Exception {
|
||||
public String generateURL(Integer collectorId, String cardName, String cardSet, boolean twoFacedCard, boolean secondSide) throws Exception {
|
||||
if (collectorId == null || cardSet == null) {
|
||||
throw new Exception("Wrong parameters for image: collector id: " + collectorId + ",card set: " + cardSet);
|
||||
}
|
||||
String set = CardImageUtils.updateSet(cardSet, true);
|
||||
String url = "http://magiccards.info/scans/en/";
|
||||
url += set.toLowerCase() + "/" + collectorId + ".jpg";
|
||||
StringBuilder url = new StringBuilder("http://magiccards.info/scans/en/");
|
||||
url.append(set.toLowerCase()).append("/").append(collectorId);
|
||||
|
||||
return url;
|
||||
if (twoFacedCard) {
|
||||
url.append(secondSide ? "b" : "a");
|
||||
}
|
||||
url.append(".jpg");
|
||||
|
||||
return url.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class MtgatheringRuImageSource implements CardImageSource {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String generateURL(Integer collectorId, String cardName, String cardSet) throws Exception {
|
||||
public String generateURL(Integer collectorId, String cardName, String cardSet, boolean twoFacedCard, boolean secondSide) throws Exception {
|
||||
if (collectorId == null || cardSet == null) {
|
||||
throw new Exception("Wrong parameters for image: collector id: " + collectorId + ",card set: " + cardSet);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public class WizardCardsImageSource implements CardImageSource {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String generateURL(Integer collectorId, String cardName, String cardSet) throws Exception {
|
||||
public String generateURL(Integer collectorId, String cardName, String cardSet, boolean twoFacedCard, boolean secondSide) throws Exception {
|
||||
if (collectorId == null || cardSet == null) {
|
||||
throw new Exception("Wrong parameters for image: collector id: " + collectorId + ",card set: " + cardSet);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ public class CardInfo {
|
|||
private String set;
|
||||
private Integer collectorId;
|
||||
private boolean token;
|
||||
private boolean twoFacedCard;
|
||||
private boolean secondSide;
|
||||
|
||||
public CardInfo(String name, String set, Integer collectorId) {
|
||||
this.name = name;
|
||||
|
|
@ -25,11 +27,22 @@ public class CardInfo {
|
|||
this.token = token;
|
||||
}
|
||||
|
||||
public CardInfo(String name, String set, Integer collectorId, boolean token, boolean twoFacedCard, boolean secondSide) {
|
||||
this.name = name;
|
||||
this.set = set;
|
||||
this.collectorId = collectorId;
|
||||
this.token = token;
|
||||
this.twoFacedCard = twoFacedCard;
|
||||
this.secondSide = secondSide;
|
||||
}
|
||||
|
||||
public CardInfo(final CardInfo card) {
|
||||
this.name = card.name;
|
||||
this.set = card.set;
|
||||
this.collectorId = card.collectorId;
|
||||
this.token = card.token;
|
||||
this.twoFacedCard = card.twoFacedCard;
|
||||
this.secondSide = card.secondSide;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -53,6 +66,12 @@ public class CardInfo {
|
|||
if (this.token != other.token) {
|
||||
return false;
|
||||
}
|
||||
if (this.twoFacedCard != other.twoFacedCard) {
|
||||
return false;
|
||||
}
|
||||
if (this.secondSide != other.secondSide) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -63,6 +82,8 @@ public class CardInfo {
|
|||
hash = 47 * hash + (this.set != null ? this.set.hashCode() : 0);
|
||||
hash = 47 * hash + (this.collectorId != null ? this.collectorId.hashCode() : 0);
|
||||
hash = 47 * hash + (this.token ? 1 : 0);
|
||||
hash = 47 * hash + (this.twoFacedCard ? 1 : 0);
|
||||
hash = 47 * hash + (this.secondSide ? 1 : 0);
|
||||
return hash;
|
||||
}
|
||||
|
||||
|
|
@ -97,4 +118,12 @@ public class CardInfo {
|
|||
public void setToken(boolean token) {
|
||||
this.token = token;
|
||||
}
|
||||
|
||||
public boolean isTwoFacedCard() {
|
||||
return twoFacedCard;
|
||||
}
|
||||
|
||||
public boolean isSecondSide() {
|
||||
return secondSide;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
|
||||
private static CardImageSource cardImageSource;
|
||||
|
||||
private Proxy p;
|
||||
private Proxy p = Proxy.NO_PROXY;;
|
||||
|
||||
private ExecutorService executor = Executors.newFixedThreadPool(10);
|
||||
|
||||
|
|
@ -234,7 +234,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
File file;
|
||||
for (Card card : allCards) {
|
||||
if (card.getCardNumber() > 0 && !card.getExpansionSetCode().isEmpty()) {
|
||||
CardInfo url = new CardInfo(card.getName(), card.getExpansionSetCode(), card.getCardNumber(), false);
|
||||
CardInfo url = new CardInfo(card.getName(), card.getExpansionSetCode(), card.getCardNumber(), false, card.canTransform(), card.isNightCard());
|
||||
boolean withCollectorId = false;
|
||||
if (card.getName().equals("Forest") || card.getName().equals("Mountain") || card.getName().equals("Swamp") || card.getName().equals("Island") || card.getName().equals("Plains")) {
|
||||
withCollectorId = true;
|
||||
|
|
@ -265,8 +265,16 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
if (cardName.equals("Forest") || cardName.equals("Swamp") || cardName.equals("Mountain") || cardName.equals("Island") || cardName.equals("Plains")) {
|
||||
cardName = card.getClass().getName().replace(card.getClass().getPackage().getName() + ".", "");
|
||||
}
|
||||
CardInfo url = new CardInfo(cardName, card.getExpansionSetCode(), card.getCardNumber(), false);
|
||||
CardInfo url = new CardInfo(cardName, card.getExpansionSetCode(), card.getCardNumber(), false, card.canTransform(), card.isNightCard());
|
||||
allCardsUrls.add(url);
|
||||
if (card.canTransform()) {
|
||||
// add second side for downloading
|
||||
// it has the same expansion set code and card number as original one
|
||||
// second side = true;
|
||||
Card secondSide = card.getSecondCardFace();
|
||||
url = new CardInfo(secondSide.getName(), card.getExpansionSetCode(), card.getCardNumber(), false, card.canTransform(), true);
|
||||
allCardsUrls.add(url);
|
||||
}
|
||||
} else {
|
||||
if (card.getCardNumber() < 1) {
|
||||
System.err.println("There was a critical error!");
|
||||
|
|
@ -439,7 +447,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
}
|
||||
url = cardImageSource.generateTokenUrl(card.getName(), card.getSet());
|
||||
} else {
|
||||
url = cardImageSource.generateURL(card.getCollectorId(), card.getName(), card.getSet());
|
||||
url = cardImageSource.generateURL(card.getCollectorId(), card.getName(), card.getSet(), card.isTwoFacedCard(), card.isSecondSide());
|
||||
}
|
||||
|
||||
if (url != null) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue