mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 11:32:00 -08:00
[M15] Added temp. fix for image download of M15 cards from Wizards side. Problems caused by new web design of wizards. Images are now added as png files. Png images are saved with a jpg suffix name but they are correctly displayed in XMage. Needs more work for a clean solution.
This commit is contained in:
parent
63612b4291
commit
03e6ccf4ab
1 changed files with 50 additions and 25 deletions
|
|
@ -69,36 +69,61 @@ public class WizardCardsImageSource implements CardImageSource {
|
||||||
private Map<String, String> getSetLinks(String cardSet) {
|
private Map<String, String> getSetLinks(String cardSet) {
|
||||||
Map<String, String> setLinks = new HashMap<>();
|
Map<String, String> setLinks = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
Document doc = Jsoup.connect("http://www.wizards.com/magic/tcg/article.aspx?x=mtg/tcg/" + setsAliases.get(cardSet)).get();
|
String urlDocument;
|
||||||
Elements cardsImages = doc.select("img[height$=370]");
|
if (cardSet.equals("M15")) {
|
||||||
for (int i = 0; i < cardsImages.size(); i++) {
|
urlDocument = "http://magic.wizards.com/en/content/magic-2015-core-set-card-set-archive-products-game-info";
|
||||||
String cardName = normalizeName(cardsImages.get(i).attr("title"));
|
Document doc = Jsoup.connect(urlDocument).get();
|
||||||
if (cardName != null && !cardName.isEmpty()) {
|
Elements cardsImages = doc.select("div.advanced-card img");
|
||||||
if (cardName.equals("Forest") || cardName.equals("Swamp") || cardName.equals("Mountain") || cardName.equals("Island") || cardName.equals("Plains")) {
|
for (int i = 0; i < cardsImages.size(); i++) {
|
||||||
int landNumber = 1;
|
String cardName = normalizeName(cardsImages.get(i).attr("alt"));
|
||||||
while (setLinks.get((cardName + landNumber).toLowerCase()) != null) {
|
if (cardName != null && !cardName.isEmpty()) {
|
||||||
landNumber++;
|
if (cardName.equals("Forest") || cardName.equals("Swamp") || cardName.equals("Mountain") || cardName.equals("Island") || cardName.equals("Plains")) {
|
||||||
|
int landNumber = 1;
|
||||||
|
while (setLinks.get((cardName + landNumber).toLowerCase()) != null) {
|
||||||
|
landNumber++;
|
||||||
|
}
|
||||||
|
cardName += landNumber;
|
||||||
}
|
}
|
||||||
cardName += landNumber;
|
setLinks.put(cardName.toLowerCase(), cardsImages.get(i).attr("src"));
|
||||||
|
} else {
|
||||||
|
setLinks.put(Integer.toString(i), cardsImages.get(i).attr("src"));
|
||||||
}
|
}
|
||||||
setLinks.put(cardName.toLowerCase(), cardsImages.get(i).attr("src"));
|
|
||||||
} else {
|
|
||||||
setLinks.put(Integer.toString(i), cardsImages.get(i).attr("src"));
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
} else {
|
||||||
cardsImages = doc.select("img[height$=470]");
|
urlDocument = "http://www.wizards.com/magic/tcg/article.aspx?x=mtg/tcg/" + setsAliases.get(cardSet);
|
||||||
for (int i = 0; i < cardsImages.size(); i++) {
|
Document doc = Jsoup.connect(urlDocument).get();
|
||||||
String cardName = normalizeName(cardsImages.get(i).attr("title"));
|
Elements cardsImages = doc.select("img[height$=370]");
|
||||||
|
for (int i = 0; i < cardsImages.size(); i++) {
|
||||||
if (cardName != null && !cardName.isEmpty()) {
|
String cardName = normalizeName(cardsImages.get(i).attr("title"));
|
||||||
String[] cardNames = cardName.replace(")", "").split(" \\(");
|
if (cardName != null && !cardName.isEmpty()) {
|
||||||
for (String name : cardNames) {
|
if (cardName.equals("Forest") || cardName.equals("Swamp") || cardName.equals("Mountain") || cardName.equals("Island") || cardName.equals("Plains")) {
|
||||||
setLinks.put(name.toLowerCase(), cardsImages.get(i).attr("src"));
|
int landNumber = 1;
|
||||||
|
while (setLinks.get((cardName + landNumber).toLowerCase()) != null) {
|
||||||
|
landNumber++;
|
||||||
|
}
|
||||||
|
cardName += landNumber;
|
||||||
|
}
|
||||||
|
setLinks.put(cardName.toLowerCase(), cardsImages.get(i).attr("src"));
|
||||||
|
} else {
|
||||||
|
setLinks.put(Integer.toString(i), cardsImages.get(i).attr("src"));
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
setLinks.put(Integer.toString(i), cardsImages.get(i).attr("src"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cardsImages = doc.select("img[height$=470]");
|
||||||
|
for (int i = 0; i < cardsImages.size(); i++) {
|
||||||
|
String cardName = normalizeName(cardsImages.get(i).attr("title"));
|
||||||
|
|
||||||
|
if (cardName != null && !cardName.isEmpty()) {
|
||||||
|
String[] cardNames = cardName.replace(")", "").split(" \\(");
|
||||||
|
for (String name : cardNames) {
|
||||||
|
setLinks.put(name.toLowerCase(), cardsImages.get(i).attr("src"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setLinks.put(Integer.toString(i), cardsImages.get(i).attr("src"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
System.out.println("Exception when parsing the wizards page: " + ex.getMessage());
|
System.out.println("Exception when parsing the wizards page: " + ex.getMessage());
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue