From b13394f03cd9e7c8a3ce299c7312b8528ea14d21 Mon Sep 17 00:00:00 2001 From: North <robyter@gmail> Date: Sun, 16 Jun 2013 17:19:10 +0300 Subject: [PATCH] refactoring to CardImageSource --- .../card/dl/sources/CardImageSource.java | 6 ++-- .../dl/sources/MagicCardsImageSource.java | 31 ++++++++++--------- .../dl/sources/WizardCardsImageSource.java | 25 ++++++++------- .../plugins/card/images/DownloadPictures.java | 9 ++---- 4 files changed, 37 insertions(+), 34 deletions(-) diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/CardImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/CardImageSource.java index dac76f4ed1..fa6c54aa94 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/CardImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/CardImageSource.java @@ -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(); } diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MagicCardsImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MagicCardsImageSource.java index 192e8c0fcd..5f340657f9 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MagicCardsImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MagicCardsImageSource.java @@ -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 diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java index d849cbc8ae..aa597c8dee 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java @@ -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; } -} \ No newline at end of file +} diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java index b985cf4aa9..36e73d4a36 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java @@ -60,8 +60,6 @@ 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); } @@ -399,10 +397,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) { @@ -566,7 +563,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);