mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 21:12:04 -08:00
Merge
This commit is contained in:
parent
b733f911f7
commit
89dd981075
287 changed files with 3420 additions and 2315 deletions
|
|
@ -96,12 +96,12 @@ public final class Constants {
|
|||
}
|
||||
|
||||
public enum SortBy {
|
||||
|
||||
CARD_TYPE("Card Type"),
|
||||
CASTING_COST("Casting Cost"),
|
||||
RARITY("Rarity"),
|
||||
COLOR("Color"),
|
||||
COLOR_IDENTITY("Color Identity"),
|
||||
NAME("Name"),
|
||||
RARITY("Rarity"),
|
||||
UNSORTED("Unsorted");
|
||||
|
||||
private final String text;
|
||||
|
|
@ -117,6 +117,8 @@ public final class Constants {
|
|||
|
||||
public static SortBy getByString(String text) {
|
||||
switch (text) {
|
||||
case "Card Type":
|
||||
return CARD_TYPE;
|
||||
case "Casting Cost":
|
||||
return CASTING_COST;
|
||||
case "Rarity":
|
||||
|
|
|
|||
|
|
@ -135,6 +135,15 @@ public class DeckArea extends javax.swing.JPanel {
|
|||
hiddenCards.clear();
|
||||
loadDeck(lastDeck, lastBigCard);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void duplicateCards(Collection<CardView> cards) {
|
||||
sideboardList.deselectAll();
|
||||
for (CardView card : cards) {
|
||||
CardView newCard = new CardView(card);
|
||||
deckList.addCardView(newCard, true);
|
||||
}
|
||||
}
|
||||
});
|
||||
sideboardList.addDragCardGridListener(new DragCardGrid.DragCardGridListener() {
|
||||
@Override
|
||||
|
|
@ -156,6 +165,15 @@ public class DeckArea extends javax.swing.JPanel {
|
|||
hiddenCards.clear();
|
||||
loadDeck(lastDeck, lastBigCard);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void duplicateCards(Collection<CardView> cards) {
|
||||
deckList.deselectAll();
|
||||
for (CardView card : cards) {
|
||||
CardView newCard = new CardView(card);
|
||||
sideboardList.addCardView(newCard, true);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -223,9 +241,8 @@ public class DeckArea extends javax.swing.JPanel {
|
|||
}
|
||||
|
||||
public void setDeckEditorMode(DeckEditorMode mode) {
|
||||
// Maybe we need this? Right now it isn't needed. Will add if it is.
|
||||
//this.deckList.setDeckEditorMode(mode);
|
||||
//this.sideboardList.setDeckEditorMode(mode);
|
||||
this.deckList.setDeckEditorMode(mode);
|
||||
this.sideboardList.setDeckEditorMode(mode);
|
||||
}
|
||||
|
||||
private Set<Card> filterHidden(Set<Card> cards) {
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
package mage.client.deckeditor;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import javax.swing.*;
|
||||
|
||||
public class DeckImportFromClipboardDialog extends JDialog {
|
||||
|
||||
|
|
@ -24,11 +24,13 @@ public class DeckImportFromClipboardDialog extends JDialog {
|
|||
getRootPane().setDefaultButton(buttonOK);
|
||||
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onOK();
|
||||
}
|
||||
});
|
||||
buttonCancel.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onCancel();
|
||||
}
|
||||
|
|
@ -36,6 +38,7 @@ public class DeckImportFromClipboardDialog extends JDialog {
|
|||
|
||||
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
|
||||
addWindowListener(new WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosing(WindowEvent e) {
|
||||
onCancel();
|
||||
}
|
||||
|
|
@ -43,6 +46,7 @@ public class DeckImportFromClipboardDialog extends JDialog {
|
|||
|
||||
// Close on "ESC"
|
||||
contentPane.registerKeyboardAction(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onCancel();
|
||||
}
|
||||
|
|
@ -89,8 +93,9 @@ public class DeckImportFromClipboardDialog extends JDialog {
|
|||
"Import from Clipboard", javax.swing.border.TitledBorder.CENTER,
|
||||
javax.swing.border.TitledBorder.TOP, new java.awt.Font("Dialog", java.awt.Font.PLAIN, 12),
|
||||
java.awt.Color.BLACK), contentPane.getBorder()));
|
||||
|
||||
|
||||
contentPane.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
|
||||
@Override
|
||||
public void propertyChange(java.beans.PropertyChangeEvent e) {
|
||||
if ("border".equals(e.getPropertyName())) {
|
||||
throw new RuntimeException();
|
||||
|
|
@ -99,6 +104,7 @@ public class DeckImportFromClipboardDialog extends JDialog {
|
|||
});
|
||||
|
||||
contentPane.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
|
||||
@Override
|
||||
public void propertyChange(java.beans.PropertyChangeEvent e) {
|
||||
if ("border".equals(e.getPropertyName())) {
|
||||
throw new RuntimeException();
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.awt.image.BufferedImage;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
|
@ -33,7 +34,6 @@ import mage.client.components.MageComponents;
|
|||
import mage.client.dialog.PreferencesDialog;
|
||||
import mage.client.plugins.impl.Plugins;
|
||||
import mage.client.util.DefaultActionCallback;
|
||||
import mage.client.util.ImageHelper;
|
||||
import mage.client.util.gui.ArrowBuilder;
|
||||
import mage.client.util.gui.ArrowUtil;
|
||||
import mage.client.util.gui.GuiDisplayUtil;
|
||||
|
|
@ -80,6 +80,7 @@ public class MageActionCallback implements ActionCallback {
|
|||
|
||||
CLOSED, NORMAL, ROTATED
|
||||
}
|
||||
private Date enlargeredViewOpened;
|
||||
private volatile EnlargedWindowState enlargedWindowState = EnlargedWindowState.CLOSED;
|
||||
//private volatile boolean enlargedImageWindowOpen = false;
|
||||
// shows the alternative card the normal card or the alternative card (copy source, other flip side, other transformed side)
|
||||
|
|
@ -115,25 +116,8 @@ public class MageActionCallback implements ActionCallback {
|
|||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent e, final TransferData data) {
|
||||
hideTooltipPopup();
|
||||
cancelTimeout();
|
||||
|
||||
this.tooltipCard = data.card;
|
||||
this.popupData = data;
|
||||
|
||||
Component parentComponent = SwingUtilities.getRoot(data.component);
|
||||
Point parentPoint = parentComponent.getLocationOnScreen();
|
||||
|
||||
if (data.locationOnScreen == null) {
|
||||
data.locationOnScreen = data.component.getLocationOnScreen();
|
||||
}
|
||||
|
||||
ArrowUtil.drawArrowsForTargets(data, parentPoint);
|
||||
ArrowUtil.drawArrowsForSource(data, parentPoint);
|
||||
ArrowUtil.drawArrowsForPairedCards(data, parentPoint);
|
||||
ArrowUtil.drawArrowsForEnchantPlayers(data, parentPoint);
|
||||
|
||||
showTooltipPopup(data, parentComponent, parentPoint);
|
||||
handleOverNewView(data);
|
||||
}
|
||||
|
||||
private void showTooltipPopup(final TransferData data, final Component parentComponent, final Point parentPoint) {
|
||||
|
|
@ -170,7 +154,11 @@ public class MageActionCallback implements ActionCallback {
|
|||
public void run() {
|
||||
ThreadUtils.sleep(tooltipDelay);
|
||||
|
||||
if (tooltipCard == null || !tooltipCard.equals(data.card) || SessionHandler.getSession() == null || !popupTextWindowOpen || !enlargedWindowState.equals(EnlargedWindowState.CLOSED)) {
|
||||
if (tooltipCard == null
|
||||
|| !tooltipCard.equals(data.card)
|
||||
|| SessionHandler.getSession() == null
|
||||
|| !popupTextWindowOpen
|
||||
|| !enlargedWindowState.equals(EnlargedWindowState.CLOSED)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -192,7 +180,8 @@ public class MageActionCallback implements ActionCallback {
|
|||
SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (!popupTextWindowOpen || !enlargedWindowState.equals(EnlargedWindowState.CLOSED)) {
|
||||
if (!popupTextWindowOpen
|
||||
|| !enlargedWindowState.equals(EnlargedWindowState.CLOSED)) {
|
||||
return;
|
||||
}
|
||||
if (data.locationOnScreen == null) {
|
||||
|
|
@ -282,6 +271,17 @@ public class MageActionCallback implements ActionCallback {
|
|||
|
||||
@Override
|
||||
public void mouseMoved(MouseEvent e, TransferData transferData) {
|
||||
if (!Plugins.getInstance().isCardPluginLoaded()) {
|
||||
return;
|
||||
}
|
||||
if (!popupData.card.equals(transferData.card)) {
|
||||
this.popupData = transferData;
|
||||
handleOverNewView(transferData);
|
||||
|
||||
}
|
||||
if (bigCard == null) {
|
||||
return;
|
||||
}
|
||||
handlePopup(transferData);
|
||||
}
|
||||
|
||||
|
|
@ -376,16 +376,28 @@ public class MageActionCallback implements ActionCallback {
|
|||
}
|
||||
}
|
||||
|
||||
private void handlePopup(TransferData transferData) {
|
||||
if (!Plugins.getInstance().isCardPluginLoaded()) {
|
||||
return;
|
||||
}
|
||||
if (bigCard == null) {
|
||||
return;
|
||||
private void handleOverNewView(TransferData data) {
|
||||
hideTooltipPopup();
|
||||
cancelTimeout();
|
||||
Component parentComponent = SwingUtilities.getRoot(data.component);
|
||||
Point parentPoint = parentComponent.getLocationOnScreen();
|
||||
|
||||
if (data.locationOnScreen == null) {
|
||||
data.locationOnScreen = data.component.getLocationOnScreen();
|
||||
}
|
||||
|
||||
ArrowUtil.drawArrowsForTargets(data, parentPoint);
|
||||
ArrowUtil.drawArrowsForSource(data, parentPoint);
|
||||
ArrowUtil.drawArrowsForPairedCards(data, parentPoint);
|
||||
ArrowUtil.drawArrowsForEnchantPlayers(data, parentPoint);
|
||||
tooltipCard = data.card;
|
||||
showTooltipPopup(data, parentComponent, parentPoint);
|
||||
}
|
||||
|
||||
private void handlePopup(TransferData transferData) {
|
||||
MageCard mageCard = (MageCard) transferData.component;
|
||||
if (!popupTextWindowOpen || mageCard.getOriginal().getId() != bigCard.getCardId()) {
|
||||
if (!popupTextWindowOpen
|
||||
|| mageCard.getOriginal().getId() != bigCard.getCardId()) {
|
||||
if (bigCard.getWidth() > 0) {
|
||||
synchronized (MageActionCallback.class) {
|
||||
if (!popupTextWindowOpen || mageCard.getOriginal().getId() != bigCard.getCardId()) {
|
||||
|
|
@ -401,6 +413,7 @@ public class MageActionCallback implements ActionCallback {
|
|||
popupTextWindowOpen = true;
|
||||
}
|
||||
if (!enlargedWindowState.equals(EnlargedWindowState.CLOSED)) {
|
||||
cancelTimeout();
|
||||
displayEnlargedCard(mageCard.getOriginal(), transferData);
|
||||
}
|
||||
}
|
||||
|
|
@ -455,12 +468,18 @@ public class MageActionCallback implements ActionCallback {
|
|||
int notches = e.getWheelRotation();
|
||||
if (!enlargedWindowState.equals(EnlargedWindowState.CLOSED)) {
|
||||
// same move direction will be ignored, opposite direction closes the enlarged window
|
||||
if (enlargeMode.equals(EnlargeMode.NORMAL)) {
|
||||
if (new Date().getTime() - enlargeredViewOpened.getTime() > 1000) {
|
||||
// if the opening is back more than 1 seconds close anyway
|
||||
hideEnlargedCard();
|
||||
handleOverNewView(transferData);
|
||||
} else if (enlargeMode.equals(EnlargeMode.NORMAL)) {
|
||||
if (notches > 0) {
|
||||
hideEnlargedCard();
|
||||
handleOverNewView(transferData);
|
||||
}
|
||||
} else if (notches < 0) {
|
||||
hideEnlargedCard();
|
||||
handleOverNewView(transferData);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
@ -516,7 +535,7 @@ public class MageActionCallback implements ActionCallback {
|
|||
}
|
||||
|
||||
private void displayEnlargedCard(final CardView cardView, final TransferData transferData) {
|
||||
ThreadUtils.threadPool2.submit(new Runnable() {
|
||||
ThreadUtils.threadPool3.submit(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (cardView == null) {
|
||||
|
|
@ -608,6 +627,7 @@ public class MageActionCallback implements ActionCallback {
|
|||
bigCard.hideTextComponent();
|
||||
bigCard.addJXPanel(mageCard.getOriginal().getId(), panel);
|
||||
}
|
||||
enlargeredViewOpened = new Date();
|
||||
}
|
||||
|
||||
private synchronized void startHideTimeout() {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package mage.client.util;
|
||||
|
||||
import java.util.Comparator;
|
||||
import mage.view.CardView;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public class CardViewCardTypeComparator implements Comparator<CardView> {
|
||||
|
||||
@Override
|
||||
public int compare(CardView o1, CardView o2) {
|
||||
return o1.getCardTypes().toString().compareTo(o2.getCardTypes().toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -320,6 +320,8 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
|
||||
/**
|
||||
* Overridden by different card rendering styles
|
||||
*
|
||||
* @param g
|
||||
*/
|
||||
protected abstract void paintCard(Graphics2D g);
|
||||
|
||||
|
|
@ -722,7 +724,7 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
|
|||
sb.append("\n").append(card.getLoyalty());
|
||||
}
|
||||
if (card.getRules() == null) {
|
||||
card.overrideRules(new ArrayList<String>());
|
||||
card.overrideRules(new ArrayList<>());
|
||||
}
|
||||
for (String rule : card.getRules()) {
|
||||
sb.append("\n").append(rule);
|
||||
|
|
|
|||
|
|
@ -153,6 +153,10 @@ public class Downloader extends AbstractLaternaBean implements Disposable {
|
|||
} finally {
|
||||
try {
|
||||
os.close();
|
||||
if (!dst.isValid()) {
|
||||
dst.delete();
|
||||
logger.warn("Resource not found " + job.getName() + " from " + job.getSource().toString());
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
logger.warn("While closing", ex);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,12 @@ package org.mage.plugins.card.dl.sources;
|
|||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import mage.cards.ExpansionSet;
|
||||
import mage.cards.Sets;
|
||||
import org.mage.plugins.card.dl.DownloadJob;
|
||||
import static org.mage.plugins.card.dl.DownloadJob.fromURL;
|
||||
import static org.mage.plugins.card.dl.DownloadJob.toFile;
|
||||
|
|
@ -14,90 +18,97 @@ public class GathererSets implements Iterable<DownloadJob> {
|
|||
private static final File DEFAULT_OUT_DIR = new File("plugins" + File.separator + "images" + SETS_PATH);
|
||||
private static File outDir = DEFAULT_OUT_DIR;
|
||||
|
||||
private static final String[] symbols = {"10E", "9ED", "8ED", "7ED", "6ED", "5ED", "4ED", "3ED", "2ED", "LEB", "LEA",
|
||||
"HOP",
|
||||
"ARN", "ATQ", "LEG", "DRK", "FEM", "HML",
|
||||
"ICE", "ALL", "CSP",
|
||||
"MIR", "VIS", "WTH",
|
||||
"TMP", "STH", "EXO",
|
||||
"USG", "ULG", "UDS",
|
||||
"MMQ", "NMS", "PCY",
|
||||
"INV", "PLS", "APC",
|
||||
"ODY", "TOR", "JUD",
|
||||
"ONS", "LGN", "SCG",
|
||||
"MRD", "DST", "5DN",
|
||||
"CHK", "BOK", "SOK",
|
||||
"RAV", "GPT", "DIS",
|
||||
"TSP", "TSB", "PLC", "FUT",
|
||||
"LRW", "MOR",
|
||||
"SHM", "EVE",
|
||||
"MED", "ME2", "ME3", "ME4",
|
||||
"POR", "PO2", "PTK",
|
||||
"ARC",
|
||||
"W16"};
|
||||
private static final String[] symbols = {"10E", "9ED", "8ED", "7ED", "6ED", "5ED", "4ED", "3ED", "2ED", "LEB", "LEA",
|
||||
"HOP",
|
||||
"ARN", "ATQ", "LEG", "DRK", "FEM", "HML",
|
||||
"ICE", "ALL", "CSP",
|
||||
"MIR", "VIS", "WTH",
|
||||
"TMP", "STH", "EXO",
|
||||
"USG", "ULG", "UDS",
|
||||
"MMQ", "NEM", "PCY",
|
||||
"INV", "PLS", "APC",
|
||||
"ODY", "TOR", "JUD",
|
||||
"ONS", "LGN", "SCG",
|
||||
"MRD", "DST", "5DN",
|
||||
"CHK", "BOK", "SOK",
|
||||
"RAV", "GPT", "DIS",
|
||||
"TSP", "TSB", "PLC", "FUT",
|
||||
"LRW", "MOR",
|
||||
"SHM", "EVE",
|
||||
"MED", "ME2", "ME3", "ME4",
|
||||
"POR", "PO2", "PTK",
|
||||
"ARC", "DD3EVG",
|
||||
"W16"};
|
||||
|
||||
private static final String[] withMythics = {"M10", "M11", "M12", "M13", "M14", "M15", "ORI",
|
||||
"ANB",
|
||||
"DDF", "DDG", "DDH", "DDI", "DDJ", "DDK", "DDL", "DDM", "DDN",
|
||||
"DD3", "DD3B", "DDO", "DDP", "DDQ", "DDR", "DDS",
|
||||
"FVD", "FVE", "FVL", "FVR",
|
||||
"V12", "V13", "V14", "V15", "V16",
|
||||
"ALA", "CON", "ARB",
|
||||
"ZEN", "WWK", "ROE",
|
||||
"SOM", "MBS", "NPH",
|
||||
"CMD", "C13", "C14", "C15", "C16", "CMA",
|
||||
"PC2", "PCA",
|
||||
"ISD", "DKA", "AVR",
|
||||
"RTR", "GTC", "DGM",
|
||||
"MMA", "MM2", "EMA", "MM3",
|
||||
"THS", "BNG", "JOU",
|
||||
"CNS", "CN2",
|
||||
"VMA", "TPR",
|
||||
"KTK", "FRF", "DTK",
|
||||
"BFZ", "EXP", "OGW",
|
||||
"SOI", "EMN",
|
||||
"KLD", "MPS", "AER",
|
||||
"AKH", "HOU"
|
||||
};
|
||||
"ANB",
|
||||
"DDF", "DDG", "DDH", "DDI", "DDJ", "DDK", "DDL", "DDM", "DDN",
|
||||
"DD3DVD", "DD3GLV", "DD3JVC", "DDO", "DDP", "DDQ", "DDR", "DDS",
|
||||
"ALA", "CON", "ARB",
|
||||
"ZEN", "WWK", "ROE",
|
||||
"SOM", "MBS", "NPH",
|
||||
"CMD", "C13", "C14", "C15", "C16", "CMA",
|
||||
"PC2", "PCA",
|
||||
"ISD", "DKA", "AVR",
|
||||
"RTR", "GTC", "DGM",
|
||||
"MMA", "MM2", "EMA", "MM3",
|
||||
"THS", "BNG", "JOU",
|
||||
"CNS", "CN2",
|
||||
"VMA", "TPR",
|
||||
"KTK", "FRF", "DTK",
|
||||
"BFZ", "OGW",
|
||||
"SOI", "EMN",
|
||||
"KLD", "MPS", "AER",
|
||||
"AKH", "HOU"
|
||||
};
|
||||
|
||||
private static final String[] onlyMythics = {
|
||||
"DRB", "V09", "V12", "V12", "V13", "V14", "V15", "V16", "EXP"
|
||||
};
|
||||
|
||||
private static final HashMap<String, String> symbolsReplacements = new HashMap<>();
|
||||
|
||||
static {
|
||||
symbolsReplacements.put("2ED", "2U");
|
||||
symbolsReplacements.put("3ED", "3E");
|
||||
symbolsReplacements.put("4ED", "4E");
|
||||
symbolsReplacements.put("5ED", "5E");
|
||||
symbolsReplacements.put("6ED", "6E");
|
||||
symbolsReplacements.put("7ED", "7E");
|
||||
symbolsReplacements.put("ALL", "AL");
|
||||
symbolsReplacements.put("APC", "AP");
|
||||
symbolsReplacements.put("ARN", "AN");
|
||||
symbolsReplacements.put("ATQ", "AQ");
|
||||
symbolsReplacements.put("LEG", "LE");
|
||||
symbolsReplacements.put("CMA", "CM1");
|
||||
symbolsReplacements.put("DD3DVD", "DD3_DVD");
|
||||
symbolsReplacements.put("DD3EVG", "DD3_EVG");
|
||||
symbolsReplacements.put("DD3GLV", "DD3_GLV");
|
||||
symbolsReplacements.put("DD3JVC", "DD3_JVC");
|
||||
symbolsReplacements.put("DRK", "DK");
|
||||
symbolsReplacements.put("EXO", "EX");
|
||||
symbolsReplacements.put("FEM", "FE");
|
||||
symbolsReplacements.put("HML", "HM");
|
||||
symbolsReplacements.put("ICE", "IA");
|
||||
symbolsReplacements.put("ALL", "AL");
|
||||
symbolsReplacements.put("APC", "AP");
|
||||
symbolsReplacements.put("TMP", "TE");
|
||||
symbolsReplacements.put("INV", "IN");
|
||||
symbolsReplacements.put("LEA", "1E");
|
||||
symbolsReplacements.put("LEB", "2E");
|
||||
symbolsReplacements.put("LEG", "LE");
|
||||
symbolsReplacements.put("MIR", "MI");
|
||||
symbolsReplacements.put("MMQ", "MM");
|
||||
symbolsReplacements.put("NEM", "NE");
|
||||
symbolsReplacements.put("ODY", "OD");
|
||||
symbolsReplacements.put("PCY", "PR");
|
||||
symbolsReplacements.put("PLS", "PS");
|
||||
symbolsReplacements.put("WTH", "WL");
|
||||
symbolsReplacements.put("POR", "PO");
|
||||
symbolsReplacements.put("PO2", "P2");
|
||||
symbolsReplacements.put("PTK", "PK");
|
||||
symbolsReplacements.put("STH", "ST");
|
||||
symbolsReplacements.put("TMP", "TE");
|
||||
symbolsReplacements.put("UDS", "CG");
|
||||
symbolsReplacements.put("ULG", "GU");
|
||||
symbolsReplacements.put("USG", "UZ");
|
||||
symbolsReplacements.put("UDS", "CG");
|
||||
symbolsReplacements.put("ODY", "OD");
|
||||
symbolsReplacements.put("MMQ", "MM");
|
||||
symbolsReplacements.put("NMS", "NE");
|
||||
symbolsReplacements.put("PCY", "PR");
|
||||
symbolsReplacements.put("STH", "ST");
|
||||
symbolsReplacements.put("EXO", "EX");
|
||||
symbolsReplacements.put("VIS", "VI");
|
||||
symbolsReplacements.put("MIR", "MI");
|
||||
symbolsReplacements.put("7ED", "7E");
|
||||
symbolsReplacements.put("6ED", "6E");
|
||||
symbolsReplacements.put("5ED", "5E");
|
||||
symbolsReplacements.put("4ED", "4E");
|
||||
symbolsReplacements.put("3ED", "3E");
|
||||
symbolsReplacements.put("2ED", "2U");
|
||||
symbolsReplacements.put("LEB", "2E");
|
||||
symbolsReplacements.put("LEA", "1E");
|
||||
symbolsReplacements.put("DD3A", "DD3");
|
||||
symbolsReplacements.put("DD3B", "DD3");
|
||||
symbolsReplacements.put("DD3C", "DD3");
|
||||
symbolsReplacements.put("DD3D", "DD3");
|
||||
symbolsReplacements.put("WTH", "WL");
|
||||
}
|
||||
|
||||
public GathererSets(String path) {
|
||||
|
|
@ -110,17 +121,33 @@ public class GathererSets implements Iterable<DownloadJob> {
|
|||
|
||||
@Override
|
||||
public Iterator<DownloadJob> iterator() {
|
||||
Calendar c = Calendar.getInstance();
|
||||
c.setTime(new Date());
|
||||
c.add(Calendar.DATE, -14);
|
||||
Date compareDate = c.getTime();
|
||||
ArrayList<DownloadJob> jobs = new ArrayList<>();
|
||||
for (String symbol : symbols) {
|
||||
jobs.add(generateDownloadJob(symbol, "C"));
|
||||
jobs.add(generateDownloadJob(symbol, "U"));
|
||||
jobs.add(generateDownloadJob(symbol, "R"));
|
||||
ExpansionSet exp = Sets.findSet(symbol);
|
||||
if (exp != null && exp.getReleaseDate().before(compareDate)) {
|
||||
jobs.add(generateDownloadJob(symbol, "C"));
|
||||
jobs.add(generateDownloadJob(symbol, "U"));
|
||||
jobs.add(generateDownloadJob(symbol, "R"));
|
||||
}
|
||||
}
|
||||
for (String symbol : withMythics) {
|
||||
jobs.add(generateDownloadJob(symbol, "C"));
|
||||
jobs.add(generateDownloadJob(symbol, "U"));
|
||||
jobs.add(generateDownloadJob(symbol, "R"));
|
||||
jobs.add(generateDownloadJob(symbol, "M"));
|
||||
ExpansionSet exp = Sets.findSet(symbol);
|
||||
if (exp != null && exp.getReleaseDate().before(compareDate)) {
|
||||
jobs.add(generateDownloadJob(symbol, "C"));
|
||||
jobs.add(generateDownloadJob(symbol, "U"));
|
||||
jobs.add(generateDownloadJob(symbol, "R"));
|
||||
jobs.add(generateDownloadJob(symbol, "M"));
|
||||
}
|
||||
}
|
||||
for (String symbol : onlyMythics) {
|
||||
ExpansionSet exp = Sets.findSet(symbol);
|
||||
if (exp != null && exp.getReleaseDate().before(compareDate)) {
|
||||
jobs.add(generateDownloadJob(symbol, "M"));
|
||||
}
|
||||
}
|
||||
return jobs.iterator();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,12 +28,9 @@
|
|||
package org.mage.plugins.card.dl.sources;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
import java.util.logging.Level;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.mage.plugins.card.images.CardDownloadData;
|
||||
import org.mage.plugins.card.images.DownloadPictures;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -54,7 +51,7 @@ public class GrabbagImageSource implements CardImageSource {
|
|||
|
||||
@Override
|
||||
public String getSourceName() {
|
||||
return "http://magiccards.info/scans/en/" ;
|
||||
return "http://magiccards.info/scans/en/";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -67,9 +64,9 @@ public class GrabbagImageSource implements CardImageSource {
|
|||
if (copyUrlToImage == null) {
|
||||
setupLinks();
|
||||
}
|
||||
try {
|
||||
try {
|
||||
Thread.sleep(2000);
|
||||
} catch (InterruptedException ex) {
|
||||
} catch (InterruptedException ex) {
|
||||
}
|
||||
|
||||
for (String key : copyUrlToImageDone.keySet()) {
|
||||
|
|
@ -114,29 +111,29 @@ public class GrabbagImageSource implements CardImageSource {
|
|||
if (copyUrlToImage != null) {
|
||||
return;
|
||||
}
|
||||
copyUrlToImage = new HashMap<String, String>();
|
||||
copyImageToUrl = new HashMap<String, String>();
|
||||
copyUrlToImageDone = new HashMap<String, Integer>();
|
||||
copyUrlToImage = new HashMap<>();
|
||||
copyImageToUrl = new HashMap<>();
|
||||
copyUrlToImageDone = new HashMap<>();
|
||||
|
||||
//http://anonymouse.org/cgi-bin/anon-www.cgi/http://magiccards.info/scans/en/arena/42.jpg
|
||||
copyUrlToImage.put("apac/1.jpg", "APAC.zip/APAC/Forest 3.full.jpg");
|
||||
copyUrlToImage.put("apac/10.jpg", "APAC.zip/APAC/Swamp.5.full.jpg");
|
||||
copyUrlToImage.put("apac/10.jpg", "APAC.zip/APAC/Swamp.5.full.jpg");
|
||||
copyUrlToImage.put("apac/11.jpg", "APAC.zip/APAC/Forest 2.full.jpg");
|
||||
copyUrlToImage.put("apac/12.jpg", "APAC.zip/APAC/Island.7.full.jpg");
|
||||
copyUrlToImage.put("apac/13.jpg", "APAC.zip/APAC/Mountain.8.full.jpg");
|
||||
copyUrlToImage.put("apac/14.jpg", "APAC.zip/APAC/Plains.4.full.jpg");
|
||||
copyUrlToImage.put("apac/12.jpg", "APAC.zip/APAC/Island.7.full.jpg");
|
||||
copyUrlToImage.put("apac/13.jpg", "APAC.zip/APAC/Mountain.8.full.jpg");
|
||||
copyUrlToImage.put("apac/14.jpg", "APAC.zip/APAC/Plains.4.full.jpg");
|
||||
copyUrlToImage.put("apac/15.jpg", "APAC.zip/APAC/Swamp 2.full.jpg");
|
||||
copyUrlToImage.put("apac/15.jpg", "APAC.zip/APAC/Swamp.15.full.jpg");
|
||||
copyUrlToImage.put("apac/2.jpg", "APAC.zip/APAC/Island 2.full.jpg");
|
||||
copyUrlToImage.put("apac/2.jpg", "APAC.zip/APAC/Island.2.full.jpg");
|
||||
copyUrlToImage.put("apac/3.jpg", "APAC.zip/APAC/Mountain.3.full.jpg");
|
||||
copyUrlToImage.put("apac/3.jpg", "APAC.zip/APAC/Mountain.3.full.jpg");
|
||||
copyUrlToImage.put("apac/4.jpg", "APAC.zip/APAC/Plains 2.full.jpg");
|
||||
copyUrlToImage.put("apac/4.jpg", "APAC.zip/APAC/Plains.9.full.jpg");
|
||||
copyUrlToImage.put("apac/5.jpg", "APAC.zip/APAC/Swamp.10.full.jpg");
|
||||
copyUrlToImage.put("apac/5.jpg", "APAC.zip/APAC/Swamp.10.full.jpg");
|
||||
copyUrlToImage.put("apac/6.jpg", "APAC.zip/APAC/Forest 1.full.jpg");
|
||||
copyUrlToImage.put("apac/7.jpg", "APAC.zip/APAC/Island.12.full.jpg");
|
||||
copyUrlToImage.put("apac/8.jpg", "APAC.zip/APAC/Mountain.13.full.jpg");
|
||||
copyUrlToImage.put("apac/9.jpg", "APAC.zip/APAC/Plains.14.full.jpg");
|
||||
copyUrlToImage.put("apac/7.jpg", "APAC.zip/APAC/Island.12.full.jpg");
|
||||
copyUrlToImage.put("apac/8.jpg", "APAC.zip/APAC/Mountain.13.full.jpg");
|
||||
copyUrlToImage.put("apac/9.jpg", "APAC.zip/APAC/Plains.14.full.jpg");
|
||||
copyUrlToImage.put("arena/1.jpg", "ARENA.zip/ARENA/Plains 8.full.jpg");
|
||||
copyUrlToImage.put("arena/1.jpg", "ARENA.zip/ARENA/Plains.1.full.jpg");
|
||||
copyUrlToImage.put("arena/10.jpg", "ARENA.zip/ARENA/Swamp 8.full.jpg");
|
||||
|
|
@ -156,25 +153,25 @@ public class GrabbagImageSource implements CardImageSource {
|
|||
copyUrlToImage.put("arena/20.jpg", "ARENA.zip/ARENA/Pillage.full.jpg");
|
||||
copyUrlToImage.put("arena/21.jpg", "ARENA.zip/ARENA/Enlightened Tutor.full.jpg");
|
||||
copyUrlToImage.put("arena/22.jpg", "ARENA.zip/ARENA/Stupor.full.jpg");
|
||||
copyUrlToImage.put("arena/23.jpg", "ARENA.zip/ARENA/Plains.75.full.jpg");
|
||||
copyUrlToImage.put("arena/24.jpg", "ARENA.zip/ARENA/Island.9.full.jpg");
|
||||
copyUrlToImage.put("arena/25.jpg", "ARENA.zip/ARENA/Swamp.77.full.jpg");
|
||||
copyUrlToImage.put("arena/26.jpg", "ARENA.zip/ARENA/Mountain.70.full.jpg");
|
||||
copyUrlToImage.put("arena/23.jpg", "ARENA.zip/ARENA/Plains.75.full.jpg");
|
||||
copyUrlToImage.put("arena/24.jpg", "ARENA.zip/ARENA/Island.9.full.jpg");
|
||||
copyUrlToImage.put("arena/25.jpg", "ARENA.zip/ARENA/Swamp.77.full.jpg");
|
||||
copyUrlToImage.put("arena/26.jpg", "ARENA.zip/ARENA/Mountain.70.full.jpg");
|
||||
copyUrlToImage.put("arena/27.jpg", "ARENA.zip/ARENA/Forest 8.full.jpg");
|
||||
copyUrlToImage.put("arena/28.jpg", "ARENA.zip/ARENA/Creeping Mold.full.jpg");
|
||||
copyUrlToImage.put("arena/29.jpg", "ARENA.zip/ARENA/Dismiss.full.jpg");
|
||||
copyUrlToImage.put("arena/3.jpg", "ARENA.zip/ARENA/Swamp.69.full.jpg");
|
||||
copyUrlToImage.put("arena/3.jpg", "ARENA.zip/ARENA/Swamp.69.full.jpg");
|
||||
copyUrlToImage.put("arena/30.jpg", "ARENA.zip/ARENA/Fling.full.jpg");
|
||||
copyUrlToImage.put("arena/31.jpg", "ARENA.zip/ARENA/Empyrial Armor.full.jpg");
|
||||
copyUrlToImage.put("arena/32.jpg", "ARENA.zip/ARENA/Plains.67.full.jpg");
|
||||
copyUrlToImage.put("arena/33.jpg", "ARENA.zip/ARENA/Island.76.full.jpg");
|
||||
copyUrlToImage.put("arena/34.jpg", "ARENA.zip/ARENA/Swamp.55.full.jpg");
|
||||
copyUrlToImage.put("arena/32.jpg", "ARENA.zip/ARENA/Plains.67.full.jpg");
|
||||
copyUrlToImage.put("arena/33.jpg", "ARENA.zip/ARENA/Island.76.full.jpg");
|
||||
copyUrlToImage.put("arena/34.jpg", "ARENA.zip/ARENA/Swamp.55.full.jpg");
|
||||
copyUrlToImage.put("arena/35.jpg", "ARENA.zip/ARENA/Mountain 6.full.jpg");
|
||||
copyUrlToImage.put("arena/35.jpg", "ARENA.zip/ARENA/Mountain.78.full.jpg");
|
||||
copyUrlToImage.put("arena/36.jpg", "ARENA.zip/ARENA/Forest.71.full.jpg");
|
||||
copyUrlToImage.put("arena/36.jpg", "ARENA.zip/ARENA/Forest.71.full.jpg");
|
||||
copyUrlToImage.put("arena/37.jpg", "ARENA.zip/ARENA/Diabolic Edict.full.jpg");
|
||||
copyUrlToImage.put("arena/38.jpg", "ARENA.zip/ARENA/Gaea's Blessing.full.jpg");
|
||||
copyUrlToImage.put("arena/39.jpg", "ARENA.zip/ARENA/Island.68.full.jpg");
|
||||
copyUrlToImage.put("arena/39.jpg", "ARENA.zip/ARENA/Island.68.full.jpg");
|
||||
copyUrlToImage.put("arena/4.jpg", "ARENA.zip/ARENA/Mountain 5.full.jpg");
|
||||
copyUrlToImage.put("arena/40.jpg", "ARENA.zip/ARENA/Forest 6.full.jpg");
|
||||
copyUrlToImage.put("arena/40.jpg", "ARENA.zip/ARENA/Forest.5.full.jpg");
|
||||
|
|
@ -182,20 +179,20 @@ public class GrabbagImageSource implements CardImageSource {
|
|||
copyUrlToImage.put("arena/42.jpg", "ARENA.zip/ARENA/Arc Lightning.full.jpg");
|
||||
copyUrlToImage.put("arena/43.jpg", "ARENA.zip/ARENA/Dauthi Slayer.full.jpg");
|
||||
copyUrlToImage.put("arena/44.jpg", "ARENA.zip/ARENA/Mana Leak.full.jpg");
|
||||
copyUrlToImage.put("arena/45.jpg", "ARENA.zip/ARENA/Plains.53.full.jpg");
|
||||
copyUrlToImage.put("arena/46.jpg", "ARENA.zip/ARENA/Island.54.full.jpg");
|
||||
copyUrlToImage.put("arena/47.jpg", "ARENA.zip/ARENA/Swamp.47.full.jpg");
|
||||
copyUrlToImage.put("arena/48.jpg", "ARENA.zip/ARENA/Mountain.48.full.jpg");
|
||||
copyUrlToImage.put("arena/49.jpg", "ARENA.zip/ARENA/Forest.57.full.jpg");
|
||||
copyUrlToImage.put("arena/5.jpg", "ARENA.zip/ARENA/Forest.40.full.jpg");
|
||||
copyUrlToImage.put("arena/45.jpg", "ARENA.zip/ARENA/Plains.53.full.jpg");
|
||||
copyUrlToImage.put("arena/46.jpg", "ARENA.zip/ARENA/Island.54.full.jpg");
|
||||
copyUrlToImage.put("arena/47.jpg", "ARENA.zip/ARENA/Swamp.47.full.jpg");
|
||||
copyUrlToImage.put("arena/48.jpg", "ARENA.zip/ARENA/Mountain.48.full.jpg");
|
||||
copyUrlToImage.put("arena/49.jpg", "ARENA.zip/ARENA/Forest.57.full.jpg");
|
||||
copyUrlToImage.put("arena/5.jpg", "ARENA.zip/ARENA/Forest.40.full.jpg");
|
||||
copyUrlToImage.put("arena/50.jpg", "ARENA.zip/ARENA/Skirk Marauder.full.jpg");
|
||||
copyUrlToImage.put("arena/51.jpg", "ARENA.zip/ARENA/Elvish Aberration.full.jpg");
|
||||
copyUrlToImage.put("arena/52.jpg", "ARENA.zip/ARENA/Bonesplitter.full.jpg");
|
||||
copyUrlToImage.put("arena/53.jpg", "ARENA.zip/ARENA/Plains.45.full.jpg");
|
||||
copyUrlToImage.put("arena/54.jpg", "ARENA.zip/ARENA/Island.46.full.jpg");
|
||||
copyUrlToImage.put("arena/55.jpg", "ARENA.zip/ARENA/Swamp.34.full.jpg");
|
||||
copyUrlToImage.put("arena/56.jpg", "ARENA.zip/ARENA/Mountain.35.full.jpg");
|
||||
copyUrlToImage.put("arena/57.jpg", "ARENA.zip/ARENA/Forest.36.full.jpg");
|
||||
copyUrlToImage.put("arena/53.jpg", "ARENA.zip/ARENA/Plains.45.full.jpg");
|
||||
copyUrlToImage.put("arena/54.jpg", "ARENA.zip/ARENA/Island.46.full.jpg");
|
||||
copyUrlToImage.put("arena/55.jpg", "ARENA.zip/ARENA/Swamp.34.full.jpg");
|
||||
copyUrlToImage.put("arena/56.jpg", "ARENA.zip/ARENA/Mountain.35.full.jpg");
|
||||
copyUrlToImage.put("arena/57.jpg", "ARENA.zip/ARENA/Forest.36.full.jpg");
|
||||
copyUrlToImage.put("arena/58.jpg", "ARENA.zip/ARENA/Darksteel Ingot.full.jpg");
|
||||
copyUrlToImage.put("arena/59.jpg", "ARENA.zip/ARENA/Serum Visions.full.jpg");
|
||||
copyUrlToImage.put("arena/6.jpg", "ARENA.zip/ARENA/Disenchant.full.jpg");
|
||||
|
|
@ -206,46 +203,46 @@ public class GrabbagImageSource implements CardImageSource {
|
|||
copyUrlToImage.put("arena/64.jpg", "ARENA.zip/ARENA/Goblin Mime.full.jpg");
|
||||
copyUrlToImage.put("arena/65.jpg", "ARENA.zip/ARENA/Granny's Payback.full.jpg");
|
||||
copyUrlToImage.put("arena/66.jpg", "ARENA.zip/ARENA/Ashnod's Coupon.full.jpg");
|
||||
copyUrlToImage.put("arena/67.jpg", "ARENA.zip/ARENA/Plains.32.full.jpg");
|
||||
copyUrlToImage.put("arena/68.jpg", "ARENA.zip/ARENA/Island.33.full.jpg");
|
||||
copyUrlToImage.put("arena/69.jpg", "ARENA.zip/ARENA/Swamp.25.full.jpg");
|
||||
copyUrlToImage.put("arena/67.jpg", "ARENA.zip/ARENA/Plains.32.full.jpg");
|
||||
copyUrlToImage.put("arena/68.jpg", "ARENA.zip/ARENA/Island.33.full.jpg");
|
||||
copyUrlToImage.put("arena/69.jpg", "ARENA.zip/ARENA/Swamp.25.full.jpg");
|
||||
copyUrlToImage.put("arena/7.jpg", "ARENA.zip/ARENA/Fireball.full.jpg");
|
||||
copyUrlToImage.put("arena/70.jpg", "ARENA.zip/ARENA/Mountain.26.full.jpg");
|
||||
copyUrlToImage.put("arena/71.jpg", "ARENA.zip/ARENA/Forest.27.full.jpg");
|
||||
copyUrlToImage.put("arena/70.jpg", "ARENA.zip/ARENA/Mountain.26.full.jpg");
|
||||
copyUrlToImage.put("arena/71.jpg", "ARENA.zip/ARENA/Forest.27.full.jpg");
|
||||
copyUrlToImage.put("arena/72.jpg", "ARENA.zip/ARENA/Genju of the Spires.full.jpg");
|
||||
copyUrlToImage.put("arena/73.jpg", "ARENA.zip/ARENA/Okina Nightwatch.full.jpg");
|
||||
copyUrlToImage.put("arena/74.jpg", "ARENA.zip/ARENA/Skyknight Legionnaire.full.jpg");
|
||||
copyUrlToImage.put("arena/75.jpg", "ARENA.zip/ARENA/Plains.23.full.jpg");
|
||||
copyUrlToImage.put("arena/76.jpg", "ARENA.zip/ARENA/Island.24.full.jpg");
|
||||
copyUrlToImage.put("arena/77.jpg", "ARENA.zip/ARENA/Swamp.10.full.jpg");
|
||||
copyUrlToImage.put("arena/78.jpg", "ARENA.zip/ARENA/Mountain.11.full.jpg");
|
||||
copyUrlToImage.put("arena/79.jpg", "ARENA.zip/ARENA/Forest.12.full.jpg");
|
||||
copyUrlToImage.put("arena/75.jpg", "ARENA.zip/ARENA/Plains.23.full.jpg");
|
||||
copyUrlToImage.put("arena/76.jpg", "ARENA.zip/ARENA/Island.24.full.jpg");
|
||||
copyUrlToImage.put("arena/77.jpg", "ARENA.zip/ARENA/Swamp.10.full.jpg");
|
||||
copyUrlToImage.put("arena/78.jpg", "ARENA.zip/ARENA/Mountain.11.full.jpg");
|
||||
copyUrlToImage.put("arena/79.jpg", "ARENA.zip/ARENA/Forest.12.full.jpg");
|
||||
copyUrlToImage.put("arena/8.jpg", "ARENA.zip/ARENA/Plains 1.full.jpg");
|
||||
copyUrlToImage.put("arena/8.jpg", "ARENA.zip/ARENA/Plains.8.full.jpg");
|
||||
copyUrlToImage.put("arena/80.jpg", "ARENA.zip/ARENA/Castigate.full.jpg");
|
||||
copyUrlToImage.put("arena/81.jpg", "ARENA.zip/ARENA/Wee Dragonauts.full.jpg");
|
||||
copyUrlToImage.put("arena/82.jpg", "ARENA.zip/ARENA/Coiling Oracle.full.jpg");
|
||||
copyUrlToImage.put("arena/83.jpg", "ARENA.zip/ARENA/Surging Flame.full.jpg");
|
||||
copyUrlToImage.put("arena/9.jpg", "ARENA.zip/ARENA/Island.2.full.jpg");
|
||||
copyUrlToImage.put("euro/1.jpg", "EURO.zip/EURO/Forest.6.full.jpg");
|
||||
copyUrlToImage.put("euro/10.jpg", "EURO.zip/EURO/Swamp.5.full.jpg");
|
||||
copyUrlToImage.put("arena/9.jpg", "ARENA.zip/ARENA/Island.2.full.jpg");
|
||||
copyUrlToImage.put("euro/1.jpg", "EURO.zip/EURO/Forest.6.full.jpg");
|
||||
copyUrlToImage.put("euro/10.jpg", "EURO.zip/EURO/Swamp.5.full.jpg");
|
||||
copyUrlToImage.put("euro/11.jpg", "EURO.zip/EURO/Forest 2.full.jpg");
|
||||
copyUrlToImage.put("euro/11.jpg", "EURO.zip/EURO/Forest.1.full.jpg");
|
||||
copyUrlToImage.put("euro/12.jpg", "EURO.zip/EURO/Island.7.full.jpg");
|
||||
copyUrlToImage.put("euro/13.jpg", "EURO.zip/EURO/Mountain.8.full.jpg");
|
||||
copyUrlToImage.put("euro/14.jpg", "EURO.zip/EURO/Plains.4.full.jpg");
|
||||
copyUrlToImage.put("euro/12.jpg", "EURO.zip/EURO/Island.7.full.jpg");
|
||||
copyUrlToImage.put("euro/13.jpg", "EURO.zip/EURO/Mountain.8.full.jpg");
|
||||
copyUrlToImage.put("euro/14.jpg", "EURO.zip/EURO/Plains.4.full.jpg");
|
||||
copyUrlToImage.put("euro/15.jpg", "EURO.zip/EURO/Swamp 2.full.jpg");
|
||||
copyUrlToImage.put("euro/15.jpg", "EURO.zip/EURO/Swamp.15.full.jpg");
|
||||
copyUrlToImage.put("euro/2.jpg", "EURO.zip/EURO/Island 2.full.jpg");
|
||||
copyUrlToImage.put("euro/2.jpg", "EURO.zip/EURO/Island.2.full.jpg");
|
||||
copyUrlToImage.put("euro/3.jpg", "EURO.zip/EURO/Mountain.3.full.jpg");
|
||||
copyUrlToImage.put("euro/3.jpg", "EURO.zip/EURO/Mountain.3.full.jpg");
|
||||
copyUrlToImage.put("euro/4.jpg", "EURO.zip/EURO/Plains 2.full.jpg");
|
||||
copyUrlToImage.put("euro/4.jpg", "EURO.zip/EURO/Plains.9.full.jpg");
|
||||
copyUrlToImage.put("euro/5.jpg", "EURO.zip/EURO/Swamp.10.full.jpg");
|
||||
copyUrlToImage.put("euro/6.jpg", "EURO.zip/EURO/Forest.11.full.jpg");
|
||||
copyUrlToImage.put("euro/7.jpg", "EURO.zip/EURO/Island.12.full.jpg");
|
||||
copyUrlToImage.put("euro/8.jpg", "EURO.zip/EURO/Mountain.13.full.jpg");
|
||||
copyUrlToImage.put("euro/9.jpg", "EURO.zip/EURO/Plains.14.full.jpg");
|
||||
copyUrlToImage.put("euro/5.jpg", "EURO.zip/EURO/Swamp.10.full.jpg");
|
||||
copyUrlToImage.put("euro/6.jpg", "EURO.zip/EURO/Forest.11.full.jpg");
|
||||
copyUrlToImage.put("euro/7.jpg", "EURO.zip/EURO/Island.12.full.jpg");
|
||||
copyUrlToImage.put("euro/8.jpg", "EURO.zip/EURO/Mountain.13.full.jpg");
|
||||
copyUrlToImage.put("euro/9.jpg", "EURO.zip/EURO/Plains.14.full.jpg");
|
||||
copyUrlToImage.put("exp/1.jpg", "EXP.zip/EXP/Prairie Stream.full.jpg");
|
||||
copyUrlToImage.put("exp/10.jpg", "EXP.zip/EXP/Temple Garden.full.jpg");
|
||||
copyUrlToImage.put("exp/11.jpg", "EXP.zip/EXP/Godless Shrine.full.jpg");
|
||||
|
|
@ -1246,9 +1243,7 @@ public class GrabbagImageSource implements CardImageSource {
|
|||
copyUrlToImage.put("mbp/145.jpg", "MBP.zip/MBP/Dread Defiler.full.jpg");
|
||||
copyUrlToImage.put("mbp/146.jpg", "MBP.zip/MBP/Tyrant of Valakut.full.jpg");
|
||||
copyUrlToImage.put("mbp/147.jpg", "MBP.zip/MBP/Gladehart Cavalry.full.jpg");
|
||||
copyUrlToImage.put("mbp/148.jpg", "MBP.zip/MBP/Goblin Dark-Dwellers.full.jpg");
|
||||
|
||||
|
||||
copyUrlToImage.put("mbp/148.jpg", "MBP.zip/MBP/Goblin Dark-Dwellers.full.jpg");
|
||||
|
||||
for (String key : copyUrlToImage.keySet()) {
|
||||
copyUrlToImageDone.put(key, maxTimes);
|
||||
|
|
@ -1271,7 +1266,7 @@ public class GrabbagImageSource implements CardImageSource {
|
|||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Boolean isTokenSource() {
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ import java.util.ArrayList;
|
|||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
|
@ -57,11 +56,11 @@ import net.java.truevfs.access.TFileOutputStream;
|
|||
import net.java.truevfs.access.TVFS;
|
||||
import net.java.truevfs.kernel.spec.FsSyncException;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.mage.plugins.card.dl.sources.AltMtgOnlTokensImageSource;
|
||||
import org.mage.plugins.card.dl.sources.CardImageSource;
|
||||
import org.mage.plugins.card.dl.sources.GrabbagImageSource;
|
||||
import org.mage.plugins.card.dl.sources.MagicCardsImageSource;
|
||||
import org.mage.plugins.card.dl.sources.MtgOnlTokensImageSource;
|
||||
import org.mage.plugins.card.dl.sources.AltMtgOnlTokensImageSource;
|
||||
import org.mage.plugins.card.dl.sources.GrabbagImageSource;
|
||||
import org.mage.plugins.card.dl.sources.MythicspoilerComSource;
|
||||
import org.mage.plugins.card.dl.sources.TokensMtgImageSource;
|
||||
import org.mage.plugins.card.dl.sources.WizardCardsImageSource;
|
||||
|
|
@ -183,10 +182,10 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
break;
|
||||
case 5:
|
||||
cardImageSource = AltMtgOnlTokensImageSource.getInstance();
|
||||
break;
|
||||
break;
|
||||
case 6:
|
||||
cardImageSource = GrabbagImageSource.getInstance();
|
||||
break;
|
||||
break;
|
||||
}
|
||||
int count = DownloadPictures.this.cards.size();
|
||||
float mb = (count * cardImageSource.getAverageSize()) / 1024;
|
||||
|
|
@ -565,7 +564,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
private final URL url;
|
||||
private final int count;
|
||||
private final String actualFilename;
|
||||
private boolean useSpecifiedPaths;
|
||||
private final boolean useSpecifiedPaths;
|
||||
|
||||
public DownloadTask(CardDownloadData card, URL url, int count) {
|
||||
this.card = card;
|
||||
|
|
@ -597,17 +596,15 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
String imagePath;
|
||||
if (useSpecifiedPaths) {
|
||||
if (card != null && card.isToken()) {
|
||||
imagePath = CardImageUtils.getTokenBasePath() + actualFilename;;
|
||||
imagePath = CardImageUtils.getTokenBasePath() + actualFilename;
|
||||
} else if (card != null) {
|
||||
imagePath = CardImageUtils.getImageBasePath() + actualFilename;
|
||||
} else {
|
||||
if (card != null) {
|
||||
imagePath = CardImageUtils.getImageBasePath() + actualFilename;
|
||||
} else {
|
||||
imagePath = Constants.IO.imageBaseDir;
|
||||
}
|
||||
imagePath = Constants.IO.imageBaseDir;
|
||||
}
|
||||
|
||||
|
||||
String tmpFile = filePath + "temporary" + actualFilename;
|
||||
temporaryFile = new File(tmpFile.toString());
|
||||
temporaryFile = new File(tmpFile);
|
||||
if (!temporaryFile.exists()) {
|
||||
temporaryFile.getParentFile().mkdirs();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue