mirror of
https://github.com/magefree/mage.git
synced 2025-12-23 20:11:59 -08:00
Merge branch 'master' of https://github.com/magefree/mage
This commit is contained in:
commit
b6fddc301c
10 changed files with 156 additions and 133 deletions
|
|
@ -37,7 +37,6 @@ package mage.client;
|
|||
import de.schlichtherle.truezip.file.TArchiveDetector;
|
||||
import de.schlichtherle.truezip.file.TConfig;
|
||||
import de.schlichtherle.truezip.fs.FsOutputOption;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.decks.Deck;
|
||||
import mage.cards.repository.CardInfo;
|
||||
import mage.cards.repository.CardRepository;
|
||||
|
|
@ -479,19 +478,9 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
|
|||
menu.show(component, 0, component.getHeight());
|
||||
}
|
||||
|
||||
private List<Card> getAllCards() {
|
||||
List<Card> cards = new ArrayList<Card>();
|
||||
List<CardInfo> allCards = CardRepository.instance.getAllCards();
|
||||
for (CardInfo cardInfo : allCards) {
|
||||
cards.add(cardInfo.getCard());
|
||||
}
|
||||
|
||||
return cards;
|
||||
}
|
||||
|
||||
private void checkForNewImages() {
|
||||
long beforeCall = System.currentTimeMillis();
|
||||
List<Card> cards = getAllCards();
|
||||
List<CardInfo> cards = CardRepository.instance.getAllCards();
|
||||
logger.info("Card pool load time: " + ((System.currentTimeMillis() - beforeCall) / 1000 + " seconds"));
|
||||
|
||||
String useDefault = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_IMAGES_USE_DEFAULT, "true");
|
||||
|
|
@ -507,7 +496,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
|
|||
}
|
||||
|
||||
public void btnImagesActionPerformed(java.awt.event.ActionEvent evt) {
|
||||
List<Card> cards = getAllCards();
|
||||
List<CardInfo> cards = CardRepository.instance.getAllCards();
|
||||
|
||||
String useDefault = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_IMAGES_USE_DEFAULT, "true");
|
||||
String path = useDefault.equals("true") ? null : PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_IMAGES_PATH, null);
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
package org.mage.plugins.card.dl.sources;
|
||||
|
||||
import org.mage.plugins.card.images.CardDownloadData;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North
|
||||
*/
|
||||
public interface CardImageSource {
|
||||
|
||||
String generateURL(Integer collectorId, String cardName, String cardSet, boolean twoFacedCard, boolean secondFace, boolean isFlipCard, boolean isSplitCard, boolean flippedView) throws Exception;
|
||||
String generateTokenUrl(String name, String set);
|
||||
String generateURL(CardDownloadData card) throws Exception;
|
||||
String generateTokenUrl(CardDownloadData card);
|
||||
Float getAverageSize();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package org.mage.plugins.card.dl.sources;
|
||||
|
||||
import org.mage.plugins.card.images.CardDownloadData;
|
||||
import org.mage.plugins.card.utils.CardImageUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
|
@ -64,7 +65,9 @@ public class MagicCardsImageSource implements CardImageSource {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String generateURL(Integer collectorId, String cardName, String cardSet, boolean twoFacedCard, boolean secondSide, boolean isFlipCard, boolean isSplitCard, boolean flippedView) throws Exception {
|
||||
public String generateURL(CardDownloadData card) throws Exception {
|
||||
Integer collectorId = card.getCollectorId();
|
||||
String cardSet = card.getSet();
|
||||
if (collectorId == null || cardSet == null) {
|
||||
throw new Exception("Wrong parameters for image: collector id: " + collectorId + ",card set: " + cardSet);
|
||||
}
|
||||
|
|
@ -72,14 +75,14 @@ public class MagicCardsImageSource implements CardImageSource {
|
|||
StringBuilder url = new StringBuilder("http://magiccards.info/scans/en/");
|
||||
url.append(set.toLowerCase()).append("/").append(collectorId);
|
||||
|
||||
if (twoFacedCard) {
|
||||
url.append(secondSide ? "b" : "a");
|
||||
if (card.isTwoFacedCard()) {
|
||||
url.append(card.isSecondSide() ? "b" : "a");
|
||||
}
|
||||
if (isSplitCard) {
|
||||
if (card.isSplitCard()) {
|
||||
url.append("a");
|
||||
}
|
||||
if (isFlipCard) {
|
||||
if (flippedView) { // download rotated by 180 degree image
|
||||
if (card.isFlipCard()) {
|
||||
if (card.isFlippedSide()) { // download rotated by 180 degree image
|
||||
url.append("b");
|
||||
} else {
|
||||
url.append("a");
|
||||
|
|
@ -91,17 +94,15 @@ public class MagicCardsImageSource implements CardImageSource {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String generateTokenUrl(String name, String set) {
|
||||
String _name = name.replaceAll(" ", "-").replace(",", "").toLowerCase();
|
||||
String _set = "not-supported-set";
|
||||
if (setNameReplacement.containsKey(set)) {
|
||||
_set = setNameReplacement.get(set);
|
||||
public String generateTokenUrl(CardDownloadData card) {
|
||||
String name = card.getName().replaceAll(" ", "-").replace(",", "").toLowerCase();
|
||||
String set = "not-supported-set";
|
||||
if (setNameReplacement.containsKey(card.getSet())) {
|
||||
set = setNameReplacement.get(card.getSet());
|
||||
} else {
|
||||
_set += "-" + set;
|
||||
set += "-" + card.getSet();
|
||||
}
|
||||
String url = "http://magiccards.info/extras/token/" + _set + "/" + _name + ".jpg";
|
||||
return url;
|
||||
|
||||
return "http://magiccards.info/extras/token/" + set + "/" + name + ".jpg";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package org.mage.plugins.card.dl.sources;
|
|||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.select.Elements;
|
||||
import org.mage.plugins.card.images.CardDownloadData;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -15,8 +16,8 @@ import java.util.Map;
|
|||
public class WizardCardsImageSource implements CardImageSource {
|
||||
|
||||
private static CardImageSource instance;
|
||||
private static Map setsAliases;
|
||||
private Map sets;
|
||||
private static Map<String, String> setsAliases;
|
||||
private Map<String, Map<String, String>> sets;
|
||||
|
||||
public static CardImageSource getInstance() {
|
||||
if (instance == null) {
|
||||
|
|
@ -26,8 +27,8 @@ public class WizardCardsImageSource implements CardImageSource {
|
|||
}
|
||||
|
||||
public WizardCardsImageSource() {
|
||||
sets = new HashMap();
|
||||
setsAliases = new HashMap();
|
||||
sets = new HashMap<String, Map<String, String>>();
|
||||
setsAliases = new HashMap<String, String>();
|
||||
setsAliases.put("MMA", "modernmasters/cig");
|
||||
setsAliases.put("DGM", "dragonsmaze/cig");
|
||||
setsAliases.put("GTC", "gatecrash/cig");
|
||||
|
|
@ -56,7 +57,7 @@ public class WizardCardsImageSource implements CardImageSource {
|
|||
private Map<String, String> getSetLinks(String cardSet) {
|
||||
Map<String, String> setLinks = new HashMap<String, String>();
|
||||
try {
|
||||
Document doc = Jsoup.connect("http://www.wizards.com/magic/tcg/article.aspx?x=mtg/tcg/" + (String) setsAliases.get(cardSet)).get();
|
||||
Document doc = Jsoup.connect("http://www.wizards.com/magic/tcg/article.aspx?x=mtg/tcg/" + setsAliases.get(cardSet)).get();
|
||||
Elements cardsImages = doc.select("img[height$=370]");
|
||||
for (int i = 0; i < cardsImages.size(); i++) {
|
||||
String cardName = cardsImages.get(i).attr("title").replace("\u00C6", "AE").replace("\u2019", "'");
|
||||
|
|
@ -94,20 +95,22 @@ public class WizardCardsImageSource implements CardImageSource {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String generateURL(Integer collectorId, String cardName, String cardSet, boolean twoFacedCard, boolean secondSide, boolean isFlipCard, boolean isSplitCard, boolean flippedView) throws Exception {
|
||||
public String generateURL(CardDownloadData card) throws Exception {
|
||||
Integer collectorId = card.getCollectorId();
|
||||
String cardSet = card.getSet();
|
||||
if (collectorId == null || cardSet == null) {
|
||||
throw new Exception("Wrong parameters for image: collector id: " + collectorId + ",card set: " + cardSet);
|
||||
}
|
||||
if (flippedView) { //doesn't support rotated images
|
||||
if (card.isFlippedSide()) { //doesn't support rotated images
|
||||
return null;
|
||||
}
|
||||
if (setsAliases.get(cardSet) != null) {
|
||||
Map<String, String> setLinks = (Map<String, String>) sets.get(cardSet);
|
||||
Map<String, String> setLinks = sets.get(cardSet);
|
||||
if (setLinks == null) {
|
||||
setLinks = getSetLinks(cardSet);
|
||||
sets.put(cardSet, setLinks);
|
||||
}
|
||||
String link = setLinks.get(cardName);
|
||||
String link = setLinks.get(card.getDownloadName());
|
||||
if (link == null) {
|
||||
if (setLinks.size() >= collectorId) {
|
||||
link = setLinks.get(Integer.toString(collectorId - 1));
|
||||
|
|
@ -127,7 +130,7 @@ public class WizardCardsImageSource implements CardImageSource {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String generateTokenUrl(String name, String set) {
|
||||
public String generateTokenUrl(CardDownloadData card) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
@ -135,4 +138,4 @@ public class WizardCardsImageSource implements CardImageSource {
|
|||
public Float getAverageSize() {
|
||||
return 60.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ package org.mage.plugins.card.images;
|
|||
*
|
||||
* @author North
|
||||
*/
|
||||
public class CardInfo {
|
||||
public class CardDownloadData {
|
||||
|
||||
private String name;
|
||||
private String downloadName;
|
||||
|
|
@ -19,15 +19,15 @@ public class CardInfo {
|
|||
private boolean splitCard;
|
||||
private boolean usesVariousArt;
|
||||
|
||||
public CardInfo(String name, String set, Integer collectorId, boolean usesVariousArt, Integer type) {
|
||||
public CardDownloadData(String name, String set, Integer collectorId, boolean usesVariousArt, Integer type) {
|
||||
this(name, set, collectorId, usesVariousArt, type, false);
|
||||
}
|
||||
|
||||
public CardInfo(String name, String set, Integer collectorId, boolean usesVariousArt, Integer type, boolean token) {
|
||||
public CardDownloadData(String name, String set, Integer collectorId, boolean usesVariousArt, Integer type, boolean token) {
|
||||
this(name, set, collectorId, usesVariousArt, type, token, false, false);
|
||||
}
|
||||
|
||||
public CardInfo(String name, String set, Integer collectorId, boolean usesVariousArt, Integer type, boolean token, boolean twoFacedCard, boolean secondSide) {
|
||||
public CardDownloadData(String name, String set, Integer collectorId, boolean usesVariousArt, Integer type, boolean token, boolean twoFacedCard, boolean secondSide) {
|
||||
this.name = name;
|
||||
this.set = set;
|
||||
this.collectorId = collectorId;
|
||||
|
|
@ -38,7 +38,7 @@ public class CardInfo {
|
|||
this.secondSide = secondSide;
|
||||
}
|
||||
|
||||
public CardInfo(final CardInfo card) {
|
||||
public CardDownloadData(final CardDownloadData card) {
|
||||
this.name = card.name;
|
||||
this.set = card.set;
|
||||
this.collectorId = card.collectorId;
|
||||
|
|
@ -57,7 +57,7 @@ public class CardInfo {
|
|||
if (getClass() != obj.getClass()) {
|
||||
return false;
|
||||
}
|
||||
final CardInfo other = (CardInfo) obj;
|
||||
final CardDownloadData other = (CardDownloadData) obj;
|
||||
if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -96,10 +96,6 @@ public class CardInfo {
|
|||
return collectorId;
|
||||
}
|
||||
|
||||
public void setCollectorId(Integer collectorId) {
|
||||
this.collectorId = collectorId;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
|
@ -160,10 +156,6 @@ public class CardInfo {
|
|||
return type;
|
||||
}
|
||||
|
||||
public void setType(Integer type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public boolean getUsesVariousArt() {
|
||||
return usesVariousArt;
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@ import de.schlichtherle.truezip.file.TFile;
|
|||
import de.schlichtherle.truezip.file.TFileOutputStream;
|
||||
import de.schlichtherle.truezip.file.TVFS;
|
||||
import de.schlichtherle.truezip.fs.FsSyncException;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.repository.CardInfo;
|
||||
import mage.client.dialog.PreferencesDialog;
|
||||
import mage.remote.Connection;
|
||||
import org.apache.log4j.Logger;
|
||||
|
|
@ -46,7 +46,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
private JButton closeButton;
|
||||
private JButton startDownloadButton;
|
||||
private int cardIndex;
|
||||
private ArrayList<CardInfo> cards;
|
||||
private ArrayList<CardDownloadData> cards;
|
||||
private JComboBox jComboBox1;
|
||||
private JLabel jLabel1;
|
||||
private static boolean offlineMode = false;
|
||||
|
|
@ -60,14 +60,12 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
|
||||
private ExecutorService executor = Executors.newFixedThreadPool(10);
|
||||
|
||||
public static final Proxy.Type[] types = Proxy.Type.values();
|
||||
|
||||
public static void main(String[] args) {
|
||||
startDownload(null, null, null);
|
||||
}
|
||||
|
||||
public static void startDownload(JFrame frame, List<Card> allCards, String imagesPath) {
|
||||
ArrayList<CardInfo> cards = getNeededCards(allCards, imagesPath);
|
||||
public static void startDownload(JFrame frame, List<CardInfo> allCards, String imagesPath) {
|
||||
ArrayList<CardDownloadData> cards = getNeededCards(allCards, imagesPath);
|
||||
|
||||
/*
|
||||
* if (cards == null || cards.size() == 0) {
|
||||
|
|
@ -99,33 +97,15 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
this.cancel = cancel;
|
||||
}
|
||||
|
||||
public DownloadPictures(ArrayList<CardInfo> cards, String imagesPath) {
|
||||
public DownloadPictures(ArrayList<CardDownloadData> cards, String imagesPath) {
|
||||
this.cards = cards;
|
||||
this.imagesPath = imagesPath;
|
||||
|
||||
//addr = new JTextField("Proxy Address");
|
||||
//port = new JTextField("Proxy Port");
|
||||
bar = new JProgressBar(this);
|
||||
|
||||
JPanel p0 = new JPanel();
|
||||
p0.setLayout(new BoxLayout(p0, BoxLayout.Y_AXIS));
|
||||
|
||||
// Proxy Choice
|
||||
/*ButtonGroup bg = new ButtonGroup();
|
||||
String[] labels = { "No Proxy", "HTTP Proxy", "SOCKS Proxy" };
|
||||
for (int i = 0; i < types.length; i++) {
|
||||
JRadioButton rb = new JRadioButton(labels[i]);
|
||||
rb.addChangeListener(new ProxyHandler(i));
|
||||
bg.add(rb);
|
||||
p0.add(rb);
|
||||
if (i == 0)
|
||||
rb.setSelected(true);
|
||||
}*/
|
||||
|
||||
// Proxy config
|
||||
//p0.add(addr);
|
||||
//p0.add(port);
|
||||
|
||||
p0.add(Box.createVerticalStrut(5));
|
||||
jLabel1 = new JLabel();
|
||||
jLabel1.setText("Please select server:");
|
||||
|
|
@ -206,11 +186,11 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
dlg = new JOptionPane(p0, JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[1]);
|
||||
}
|
||||
|
||||
public static boolean checkForNewCards(List<Card> allCards, String imagesPath) {
|
||||
public static boolean checkForNewCards(List<CardInfo> allCards, String imagesPath) {
|
||||
TFile file;
|
||||
for (Card card : allCards) {
|
||||
if (card.getCardNumber() > 0 && !card.getExpansionSetCode().isEmpty()) {
|
||||
CardInfo url = new CardInfo(card.getName(), card.getExpansionSetCode(), card.getCardNumber(),card.getUsesVariousArt(),0 , false, card.canTransform(), card.isNightCard());
|
||||
for (CardInfo card : allCards) {
|
||||
if (card.getCardNumber() > 0 && !card.getSetCode().isEmpty()) {
|
||||
CardDownloadData url = new CardDownloadData(card.getName(), card.getSetCode(), card.getCardNumber(), usesVariousArt(card), 0, false, card.isDoubleFaced(), card.isNightCard());
|
||||
file = new TFile(CardImageUtils.getImagePath(url, imagesPath));
|
||||
if (!file.exists()) {
|
||||
return true;
|
||||
|
|
@ -220,47 +200,54 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
return false;
|
||||
}
|
||||
|
||||
private static ArrayList<CardInfo> getNeededCards(List<Card> allCards, String imagesPath) {
|
||||
private static boolean usesVariousArt(CardInfo card) {
|
||||
String className = card.getClassName();
|
||||
return Character.isDigit(className.charAt(className.length() - 1));
|
||||
}
|
||||
|
||||
ArrayList<CardInfo> cardsToDownload = new ArrayList<CardInfo>();
|
||||
private static String createDownloadName(CardInfo card) {
|
||||
String className = card.getClassName();
|
||||
return className.substring(className.lastIndexOf('.') + 1);
|
||||
}
|
||||
|
||||
private static ArrayList<CardDownloadData> getNeededCards(List<CardInfo> allCards, String imagesPath) {
|
||||
|
||||
ArrayList<CardDownloadData> cardsToDownload = new ArrayList<CardDownloadData>();
|
||||
|
||||
/**
|
||||
* read all card names and urls
|
||||
*/
|
||||
ArrayList<CardInfo> allCardsUrls = new ArrayList<CardInfo>();
|
||||
ArrayList<CardDownloadData> allCardsUrls = new ArrayList<CardDownloadData>();
|
||||
HashSet<String> ignoreUrls = SettingsManager.getIntance().getIgnoreUrls();
|
||||
|
||||
try {
|
||||
offlineMode = true;
|
||||
|
||||
for (Card card : allCards) {
|
||||
if (card.getCardNumber() > 0 && !card.getExpansionSetCode().isEmpty()
|
||||
&& !ignoreUrls.contains(card.getExpansionSetCode())) {
|
||||
for (CardInfo card : allCards) {
|
||||
if (card.getCardNumber() > 0 && !card.getSetCode().isEmpty()
|
||||
&& !ignoreUrls.contains(card.getSetCode())) {
|
||||
String cardName = card.getName();
|
||||
CardInfo url = new CardInfo(cardName, card.getExpansionSetCode(), card.getCardNumber(), card.getUsesVariousArt(), 0, false, card.canTransform(), card.isNightCard());
|
||||
CardDownloadData url = new CardDownloadData(cardName, card.getSetCode(), card.getCardNumber(), usesVariousArt(card), 0, false, card.isDoubleFaced(), card.isNightCard());
|
||||
if (url.getUsesVariousArt()) {
|
||||
url.setDownloadName(card.getClass().getName().replace(card.getClass().getPackage().getName() + ".", ""));
|
||||
}
|
||||
if (card.isFlipCard()) {
|
||||
url.setFlipCard(true);
|
||||
}
|
||||
if (card.isSplitCard()) {
|
||||
url.setSplitCard(true);
|
||||
url.setDownloadName(createDownloadName(card));
|
||||
}
|
||||
|
||||
url.setFlipCard(card.isFlipCard());
|
||||
url.setSplitCard(card.isSplitCard());
|
||||
|
||||
allCardsUrls.add(url);
|
||||
if (card.canTransform()) {
|
||||
if (card.isDoubleFaced()) {
|
||||
// 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(), card.getUsesVariousArt(), 0, false, card.canTransform(), true);
|
||||
url = new CardDownloadData(card.getSecondSideName(), card.getSetCode(), card.getCardNumber(), usesVariousArt(card), 0, false, card.isDoubleFaced(), true);
|
||||
allCardsUrls.add(url);
|
||||
}
|
||||
if (card.isFlipCard()) {
|
||||
if (card.getFlipCardName() == null || card.getFlipCardName().trim().isEmpty()) {
|
||||
throw new IllegalStateException("Flipped card can't have empty name.");
|
||||
}
|
||||
url = new CardInfo(card.getFlipCardName(), card.getExpansionSetCode(), card.getCardNumber(), card.getUsesVariousArt(), 0, false, card.canTransform(), card.isNightCard());
|
||||
url = new CardDownloadData(card.getFlipCardName(), card.getSetCode(), card.getCardNumber(), usesVariousArt(card), 0, false, card.isDoubleFaced(), card.isNightCard());
|
||||
url.setFlipCard(true);
|
||||
url.setFlippedSide(true);
|
||||
allCardsUrls.add(url);
|
||||
|
|
@ -269,7 +256,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
if (card.getCardNumber() < 1) {
|
||||
System.err.println("There was a critical error!");
|
||||
log.error("Card has no collector ID and won't be sent to client: " + card);
|
||||
} else if (card.getExpansionSetCode().isEmpty()) {
|
||||
} else if (card.getSetCode().isEmpty()) {
|
||||
System.err.println("There was a critical error!");
|
||||
log.error("Card has no set name and won't be sent to client:" + card);
|
||||
}
|
||||
|
|
@ -286,14 +273,14 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
/**
|
||||
* check to see which cards we already have
|
||||
*/
|
||||
for (CardInfo card : allCardsUrls) {
|
||||
for (CardDownloadData card : allCardsUrls) {
|
||||
file = new TFile(CardImageUtils.getImagePath(card, imagesPath));
|
||||
if (!file.exists()) {
|
||||
cardsToDownload.add(card);
|
||||
}
|
||||
}
|
||||
|
||||
for (CardInfo card : cardsToDownload) {
|
||||
for (CardDownloadData card : cardsToDownload) {
|
||||
if (card.isToken()) {
|
||||
log.info("Card to download: " + card.getName() + " (Token) ");
|
||||
} else {
|
||||
|
|
@ -308,8 +295,8 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
return cardsToDownload;
|
||||
}
|
||||
|
||||
private static ArrayList<CardInfo> getTokenCardUrls() throws RuntimeException {
|
||||
ArrayList<CardInfo> list = new ArrayList<CardInfo>();
|
||||
private static ArrayList<CardDownloadData> getTokenCardUrls() throws RuntimeException {
|
||||
ArrayList<CardDownloadData> list = new ArrayList<CardDownloadData>();
|
||||
InputStream in = DownloadPictures.class.getClassLoader().getResourceAsStream("card-pictures-tok.txt");
|
||||
|
||||
if (in == null) {
|
||||
|
|
@ -332,15 +319,15 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
if (params.length >= 4) {
|
||||
if (params[1].toLowerCase().equals("generate") && params[2].startsWith("TOK:")) {
|
||||
String set = params[2].substring(4);
|
||||
CardInfo card = new CardInfo(params[3], set, 0, false, 0, true);
|
||||
CardDownloadData card = new CardDownloadData(params[3], set, 0, false, 0, true);
|
||||
list.add(card);
|
||||
} else if (params[1].toLowerCase().equals("generate") && params[2].startsWith("EMBLEM:")) {
|
||||
String set = params[2].substring(7);
|
||||
CardInfo card = new CardInfo("Emblem " + params[3], set, 0, false,0, true);
|
||||
CardDownloadData card = new CardDownloadData("Emblem " + params[3], set, 0, false,0, true);
|
||||
list.add(card);
|
||||
} else if (params[1].toLowerCase().equals("generate") && params[2].startsWith("EMBLEM-:")) {
|
||||
String set = params[2].substring(8);
|
||||
CardInfo card = new CardInfo(params[3] + " Emblem", set, 0, false, 0, true);
|
||||
CardDownloadData card = new CardDownloadData(params[3] + " Emblem", set, 0, false, 0, true);
|
||||
list.add(card);
|
||||
}
|
||||
} else {
|
||||
|
|
@ -408,7 +395,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
for (int i = 0; i < cards.size() && !cancel; i++) {
|
||||
try {
|
||||
|
||||
CardInfo card = cards.get(i);
|
||||
CardDownloadData card = cards.get(i);
|
||||
|
||||
log.info("Downloading card: " + card.getName() + " (" + card.getSet() + ")");
|
||||
|
||||
|
|
@ -417,10 +404,9 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
if (card.getCollectorId() != 0) {
|
||||
continue;
|
||||
}
|
||||
url = cardImageSource.generateTokenUrl(card.getName(), card.getSet());
|
||||
url = cardImageSource.generateTokenUrl(card);
|
||||
} else {
|
||||
url = cardImageSource.generateURL(card.getCollectorId(), card.getDownloadName(), card.getSet(),
|
||||
card.isTwoFacedCard(), card.isSecondSide(), card.isFlipCard(), card.isSplitCard(), card.isFlippedSide());
|
||||
url = cardImageSource.generateURL(card);
|
||||
}
|
||||
|
||||
if (url != null) {
|
||||
|
|
@ -457,10 +443,10 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
|
||||
private final class DownloadTask implements Runnable {
|
||||
|
||||
private CardInfo card;
|
||||
private CardDownloadData card;
|
||||
private URL url;
|
||||
|
||||
public DownloadTask(CardInfo card, URL url) {
|
||||
public DownloadTask(CardDownloadData card, URL url) {
|
||||
this.card = card;
|
||||
this.url = url;
|
||||
}
|
||||
|
|
@ -573,10 +559,10 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
bar.setString(String.format("%d of %d cards finished! Please wait! [%.1f Mb]",
|
||||
card, count, mb));
|
||||
} else {
|
||||
Iterator<CardInfo> cardsIterator = DownloadPictures.this.cards.iterator();
|
||||
Iterator<CardDownloadData> cardsIterator = DownloadPictures.this.cards.iterator();
|
||||
while (cardsIterator.hasNext()) {
|
||||
CardInfo cardInfo = cardsIterator.next();
|
||||
TFile file = new TFile(CardImageUtils.getImagePath(cardInfo, imagesPath));
|
||||
CardDownloadData cardDownloadData = cardsIterator.next();
|
||||
TFile file = new TFile(CardImageUtils.getImagePath(cardDownloadData, imagesPath));
|
||||
if (file.exists()) {
|
||||
cardsIterator.remove();
|
||||
}
|
||||
|
|
@ -584,7 +570,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
count = DownloadPictures.this.cards.size();
|
||||
|
||||
if (count == 0) {
|
||||
bar.setString(String.format("0 cards remaining! Please close!", count));
|
||||
bar.setString("0 cards remaining! Please close!");
|
||||
} else {
|
||||
bar.setString(String.format("%d cards remaining! Please choose another source!", count));
|
||||
//executor = Executors.newFixedThreadPool(10);
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public class ImageCache {
|
|||
Integer type = Integer.parseInt(m.group(3));
|
||||
Integer collectorId = Integer.parseInt(m.group(4));
|
||||
|
||||
CardInfo info = new CardInfo(name, set, collectorId, usesVariousArt, type);
|
||||
CardDownloadData info = new CardDownloadData(name, set, collectorId, usesVariousArt, type);
|
||||
|
||||
if (collectorId == 0) {
|
||||
info.setToken(true);
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@ import de.schlichtherle.truezip.file.TFile;
|
|||
import java.util.HashMap;
|
||||
import mage.client.constants.Constants;
|
||||
import mage.client.dialog.PreferencesDialog;
|
||||
import org.mage.plugins.card.images.CardInfo;
|
||||
import org.mage.plugins.card.images.CardDownloadData;
|
||||
import org.mage.plugins.card.properties.SettingsManager;
|
||||
|
||||
public class CardImageUtils {
|
||||
|
||||
private static HashMap<CardInfo, String> pathCache = new HashMap<CardInfo, String>();
|
||||
private static HashMap<CardDownloadData, String> pathCache = new HashMap<CardDownloadData, String>();
|
||||
|
||||
/**
|
||||
* Get path to image for specific card.
|
||||
|
|
@ -18,7 +18,7 @@ public class CardImageUtils {
|
|||
* card to get path for
|
||||
* @return String if image exists, else null
|
||||
*/
|
||||
public static String getImagePath(CardInfo card) {
|
||||
public static String getImagePath(CardDownloadData card) {
|
||||
String filePath;
|
||||
|
||||
TFile file;
|
||||
|
|
@ -51,19 +51,19 @@ public class CardImageUtils {
|
|||
}
|
||||
}
|
||||
|
||||
private static String getTokenImagePath(CardInfo card) {
|
||||
private static String getTokenImagePath(CardDownloadData card) {
|
||||
String useDefault = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_IMAGES_USE_DEFAULT, "true");
|
||||
String path = useDefault.equals("true") ? null : PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_IMAGES_PATH, null);
|
||||
String filename = getImagePath(card, path);
|
||||
|
||||
TFile file = new TFile(filename);
|
||||
if (!file.exists()) {
|
||||
CardInfo updated = new CardInfo(card);
|
||||
CardDownloadData updated = new CardDownloadData(card);
|
||||
updated.setName(card.getName() + " 1");
|
||||
filename = getImagePath(updated, path);
|
||||
file = new TFile(filename);
|
||||
if (!file.exists()) {
|
||||
updated = new CardInfo(card);
|
||||
updated = new CardDownloadData(card);
|
||||
updated.setName(card.getName() + " 2");
|
||||
filename = getImagePath(updated, path);
|
||||
}
|
||||
|
|
@ -72,10 +72,10 @@ public class CardImageUtils {
|
|||
return filename;
|
||||
}
|
||||
|
||||
private static String searchForCardImage(CardInfo card) {
|
||||
private static String searchForCardImage(CardDownloadData card) {
|
||||
TFile file;
|
||||
String path;
|
||||
CardInfo c = new CardInfo(card);
|
||||
CardDownloadData c = new CardDownloadData(card);
|
||||
|
||||
for (String set : SettingsManager.getIntance().getTokenLookupOrder()) {
|
||||
c.setSet(set);
|
||||
|
|
@ -100,7 +100,7 @@ public class CardImageUtils {
|
|||
return set;
|
||||
}
|
||||
|
||||
private static String getImageDir(CardInfo card, String imagesPath) {
|
||||
private static String getImageDir(CardDownloadData card, String imagesPath) {
|
||||
if (card.getSet() == null) {
|
||||
return "";
|
||||
}
|
||||
|
|
@ -129,7 +129,7 @@ public class CardImageUtils {
|
|||
}
|
||||
}
|
||||
|
||||
public static String getImagePath(CardInfo card, String imagesPath) {
|
||||
public static String getImagePath(CardDownloadData card, String imagesPath) {
|
||||
String imageDir = getImageDir(card, imagesPath);
|
||||
String imageName;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue