mirror of
https://github.com/magefree/mage.git
synced 2025-12-30 07:22:03 -08:00
Added 4 missing duel sets and the already implemented cards. Some changes to logging of download. Some fixes to token download configuration.
This commit is contained in:
parent
d52ab85018
commit
44c797f88e
280 changed files with 14206 additions and 92 deletions
|
|
@ -73,16 +73,21 @@ public class ConstructedFormats {
|
|||
"Planechase 2012",
|
||||
"Planechase",
|
||||
"Portal", "Portal Second Age", "Portal Three Kingdoms","Starter 1999","Starter 2000",
|
||||
|
||||
"Duel Decks: Elves vs. Goblins",
|
||||
"Duel Decks: Jace vs. Chandra",
|
||||
"Duel Decks: Divine vs. Demonic",
|
||||
"Duel Decks: Garruk vs. Liliana",
|
||||
"Duel Decks: Phyrexia vs. the Coalition",
|
||||
"Duel Decks: Elspeth vs. Tezzeret",
|
||||
"Duel Decks: Knights vs. Dragons",
|
||||
"Duel Decks: Ajani vs. Nicol Bolas",
|
||||
"Duel Decks: Venser vs. Koth",
|
||||
"Duel Decks: Izzet vs. Golgari",
|
||||
"Duel Decks: Sorin vs. Tibalt",
|
||||
"Duel Decks: Heroes vs. Monsters",
|
||||
"Duel Decks: Jace vs. Vraska",
|
||||
"Duel Decks: Speed vs. Cunning",
|
||||
"Guru",
|
||||
"Unhinged",
|
||||
};
|
||||
|
|
@ -470,6 +475,9 @@ public class ConstructedFormats {
|
|||
if (format.equals("Duel Decks: Garruk vs. Liliana")) {
|
||||
return Arrays.asList("DDD");
|
||||
}
|
||||
if (format.equals("Duel Decks: Phyrexia vs. the Coalition")) {
|
||||
return Arrays.asList("DDE");
|
||||
}
|
||||
if (format.equals("Duel Decks: Elspeth vs. Tezzeret")) {
|
||||
return Arrays.asList("DDF");
|
||||
}
|
||||
|
|
@ -482,14 +490,21 @@ public class ConstructedFormats {
|
|||
if (format.equals("Duel Decks: Venser vs. Koth")) {
|
||||
return Arrays.asList("DDI");
|
||||
}
|
||||
if (format.equals("Duel Decks: Izzet vs. Golgari")) {
|
||||
return Arrays.asList("DDJ");
|
||||
}
|
||||
if (format.equals("Duel Decks: Sorin vs. Tibalt")) {
|
||||
return Arrays.asList("DDK");
|
||||
}
|
||||
if (format.equals("Duel Decks: Heroes vs. Monsters")) {
|
||||
return Arrays.asList("DDL");
|
||||
}
|
||||
if (format.equals("Duel Decks: Jace vs. Vraska")) {
|
||||
return Arrays.asList("DDM");
|
||||
}
|
||||
|
||||
|
||||
if (format.equals("Duel Decks: Speed vs. Cunning")) {
|
||||
return Arrays.asList("DDN");
|
||||
}
|
||||
|
||||
if (format.equals(STANDARD)) {
|
||||
return standard;
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public class GathererSets implements Iterable<DownloadJob> {
|
|||
"POR", "PO2", "PTK"};
|
||||
|
||||
private static final String[] withMythics = {"M10", "M11", "M12", "M13", "M14", "M15",
|
||||
"DDF", "DDL",
|
||||
"DDF", "DDG", "DDH", "DDI", "DDJ", "DDK", "DDL", "DDM", "DDN",
|
||||
"ALA", "CON", "ARB",
|
||||
"ZEN", "WWK", "ROE",
|
||||
"SOM", "MBS", "NPH",
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ import org.mage.plugins.card.utils.CardImageUtils;
|
|||
public class MagicCardsImageSource implements CardImageSource {
|
||||
|
||||
private static CardImageSource instance = new MagicCardsImageSource();
|
||||
private static final Map<String, String> setNameReplacement = new HashMap<String, String>() {
|
||||
|
||||
|
||||
private static final Map<String, String> setNameTokenReplacement = new HashMap<String, String>() {
|
||||
{
|
||||
put("C14", "commander-2014-edition");
|
||||
put("KTK", "khans-of-tarkir");
|
||||
|
|
@ -66,12 +66,14 @@ public class MagicCardsImageSource implements CardImageSource {
|
|||
put("DDD", "duel-decks-garruk-vs-liliana");
|
||||
put("DDE", "duel-decks-phyrexia-vs-the-coalition");
|
||||
put("DDF", "duel-decks-elspeth-vs-tezzeret");
|
||||
put("DDG", "duel-decks-knight-vs-dragon");
|
||||
put("DDG", "duel-decks-knights-vs-dragons");
|
||||
put("DDH", "duel-decks-ajani-vs-nicol-bolas");
|
||||
put("DDI", "duel-decks-venser-vs-koth");
|
||||
put("DDJ", "duel-decks-izzet-vs-golgari");
|
||||
put("DDK", "duel-decks-sorin-vs-tibalt");
|
||||
put("DDL", "duel-decks-heroes-vs-monsters");
|
||||
put("DDM", "duel-decks-jace-vs-vraska");
|
||||
put("DDN", "duel-decks-speed-vs-cunning");
|
||||
|
||||
}
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
|
@ -92,6 +94,7 @@ public class MagicCardsImageSource implements CardImageSource {
|
|||
throw new Exception("Wrong parameters for image: collector id: " + collectorId + ",card set: " + cardSet);
|
||||
}
|
||||
String set = CardImageUtils.updateSet(cardSet, true);
|
||||
|
||||
String preferedLanguage = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_IMAGES_PREF_LANGUAGE, "en");
|
||||
|
||||
StringBuilder url = new StringBuilder("http://magiccards.info/scans/").append(preferedLanguage).append("/");
|
||||
|
|
@ -119,8 +122,8 @@ public class MagicCardsImageSource implements CardImageSource {
|
|||
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());
|
||||
if (setNameTokenReplacement.containsKey(card.getSet())) {
|
||||
set = setNameTokenReplacement.get(card.getSet());
|
||||
} else {
|
||||
set += "-" + card.getSet();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,61 @@
|
|||
package org.mage.plugins.card.images;
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Proxy;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import javax.imageio.IIOImage;
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.imageio.ImageWriteParam;
|
||||
import javax.imageio.ImageWriter;
|
||||
import javax.imageio.stream.FileImageOutputStream;
|
||||
import javax.swing.Box;
|
||||
import javax.swing.BoxLayout;
|
||||
import javax.swing.ComboBoxModel;
|
||||
import javax.swing.DefaultBoundedRangeModel;
|
||||
import javax.swing.DefaultComboBoxModel;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JProgressBar;
|
||||
import mage.cards.repository.CardInfo;
|
||||
import mage.client.constants.Constants;
|
||||
import mage.client.dialog.PreferencesDialog;
|
||||
import mage.client.util.sets.ConstructedFormats;
|
||||
import mage.remote.Connection;
|
||||
import static mage.remote.Connection.ProxyType.HTTP;
|
||||
import static mage.remote.Connection.ProxyType.SOCKS;
|
||||
import net.java.truevfs.access.TFile;
|
||||
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.constants.Constants;
|
||||
import org.mage.plugins.card.dl.sources.CardImageSource;
|
||||
import org.mage.plugins.card.dl.sources.MagicCardsImageSource;
|
||||
import org.mage.plugins.card.dl.sources.MtgImageSource;
|
||||
|
|
@ -13,44 +63,20 @@ import org.mage.plugins.card.dl.sources.WizardCardsImageSource;
|
|||
import org.mage.plugins.card.properties.SettingsManager;
|
||||
import org.mage.plugins.card.utils.CardImageUtils;
|
||||
|
||||
import javax.imageio.IIOImage;
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.imageio.ImageWriteParam;
|
||||
import javax.imageio.ImageWriter;
|
||||
import javax.imageio.stream.FileImageOutputStream;
|
||||
import javax.swing.*;
|
||||
import java.awt.Component;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Proxy;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import net.java.truevfs.access.TFile;
|
||||
import net.java.truevfs.access.TFileOutputStream;
|
||||
import net.java.truevfs.access.TVFS;
|
||||
import net.java.truevfs.kernel.spec.FsSyncException;
|
||||
|
||||
public class DownloadPictures extends DefaultBoundedRangeModel implements Runnable {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(DownloadPictures.class);
|
||||
|
||||
private JProgressBar bar;
|
||||
private JOptionPane dlg;
|
||||
private final JOptionPane dlg;
|
||||
private boolean cancel;
|
||||
private JButton closeButton;
|
||||
private final JButton closeButton;
|
||||
private JButton startDownloadButton;
|
||||
private int cardIndex;
|
||||
private ArrayList<CardDownloadData> cards;
|
||||
private ArrayList<CardDownloadData> type2cards;
|
||||
private JComboBox jComboBox1;
|
||||
private JLabel jLabel1;
|
||||
private final JComboBox jComboBox1;
|
||||
private final JLabel jLabel1;
|
||||
private static boolean offlineMode = false;
|
||||
private JCheckBox checkBox;
|
||||
private final Object sync = new Object();
|
||||
|
|
@ -59,7 +85,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
|
||||
private Proxy p = Proxy.NO_PROXY;
|
||||
|
||||
private ExecutorService executor = Executors.newFixedThreadPool(10);
|
||||
private final ExecutorService executor = Executors.newFixedThreadPool(10);
|
||||
|
||||
public static void main(String[] args) {
|
||||
startDownload(null, null);
|
||||
|
|
@ -230,8 +256,10 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
/**
|
||||
* get filter for Standard Type 2 cards
|
||||
*/
|
||||
Set<String> type2SetsFilter = new HashSet<String>();
|
||||
Set<String> type2SetsFilter = new HashSet<>();
|
||||
type2SetsFilter.addAll(ConstructedFormats.getSetsByFormat(ConstructedFormats.STANDARD));
|
||||
|
||||
int numberCardImages = allCards.size();
|
||||
|
||||
try {
|
||||
offlineMode = true;
|
||||
|
|
@ -272,19 +300,19 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
} else {
|
||||
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);
|
||||
logger.error("Card has no collector ID and won't be sent to client: " + card);
|
||||
} 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);
|
||||
logger.error("Card has no set name and won't be sent to client:" + card);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
allCardsUrls.addAll(getTokenCardUrls());
|
||||
} catch (Exception e) {
|
||||
log.error(e);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error(e);
|
||||
}
|
||||
int numberTokenImages = allCardsUrls.size() - numberCardImages;
|
||||
TFile file;
|
||||
|
||||
/**
|
||||
|
|
@ -297,14 +325,17 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
}
|
||||
}
|
||||
|
||||
for (CardDownloadData card : cardsToDownload) {
|
||||
if (card.isToken()) {
|
||||
log.info("Card to download: " + card.getName() + " (Token) ");
|
||||
} else {
|
||||
try {
|
||||
log.info("Card to download: " + card.getName() + " (" + card.getSet() + ")");
|
||||
} catch (Exception e) {
|
||||
log.error(e);
|
||||
logger.info("Check download images (total cards: " + numberCardImages + ", total tokens: " + numberTokenImages + ") => Missing images: " + cardsToDownload.size());
|
||||
if (logger.isDebugEnabled()) {
|
||||
for (CardDownloadData card : cardsToDownload) {
|
||||
if (card.isToken()) {
|
||||
logger.debug("Card to download: " + card.getName() + " (Token) ");
|
||||
} else {
|
||||
try {
|
||||
logger.debug("Card to download: " + card.getName() + " (" + card.getSet() + ")");
|
||||
} catch (Exception e) {
|
||||
logger.error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -313,11 +344,11 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
}
|
||||
|
||||
private static ArrayList<CardDownloadData> getTokenCardUrls() throws RuntimeException {
|
||||
ArrayList<CardDownloadData> list = new ArrayList<CardDownloadData>();
|
||||
ArrayList<CardDownloadData> list = new ArrayList<>();
|
||||
InputStream in = DownloadPictures.class.getClassLoader().getResourceAsStream("card-pictures-tok.txt");
|
||||
|
||||
if (in == null) {
|
||||
log.error("resources input stream is null");
|
||||
logger.error("resources input stream is null");
|
||||
return list;
|
||||
}
|
||||
|
||||
|
|
@ -352,28 +383,28 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
list.add(card);
|
||||
}
|
||||
} else {
|
||||
log.error("wrong format for image urls: " + line);
|
||||
logger.error("wrong format for image urls: " + line);
|
||||
}
|
||||
}
|
||||
line = reader.readLine();
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
log.error(ex);
|
||||
logger.error(ex);
|
||||
throw new RuntimeException("DownloadPictures : readFile() error");
|
||||
} finally {
|
||||
if (input != null) {
|
||||
try {
|
||||
input.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.error("Input close failed:", e);
|
||||
}
|
||||
}
|
||||
if (reader != null) {
|
||||
try {
|
||||
reader.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.error("Reader close failed:", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -422,7 +453,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
|
||||
CardDownloadData card = cardsToDownload.get(i);
|
||||
|
||||
log.info("Downloading card: " + card.getName() + " (" + card.getSet() + ")");
|
||||
logger.debug("Downloading card: " + card.getName() + " (" + card.getSet() + ")");
|
||||
|
||||
String url;
|
||||
if (ignoreUrls.contains(card.getSet()) || card.isToken()) {
|
||||
|
|
@ -435,7 +466,6 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
}
|
||||
|
||||
if (url != null) {
|
||||
Logger.getLogger(this.getClass()).info(url);
|
||||
Runnable task = new DownloadTask(card, new URL(url), cardsToDownload.size());
|
||||
executor.execute(task);
|
||||
} else {
|
||||
|
|
@ -445,7 +475,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
log.error(ex, ex);
|
||||
logger.error(ex, ex);
|
||||
}
|
||||
}
|
||||
executor.shutdown();
|
||||
|
|
@ -458,7 +488,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
try {
|
||||
TVFS.umount();
|
||||
} catch (FsSyncException e) {
|
||||
e.printStackTrace();
|
||||
logger.fatal("Couldn't unmount zip files", e);
|
||||
JOptionPane.showMessageDialog(null, "Couldn't unmount zip files", "Error", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
finally {
|
||||
|
|
@ -514,7 +544,8 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
// Logger.getLogger(this.getClass()).info(url.toString());
|
||||
URLConnection httpConn = url.openConnection(p);
|
||||
httpConn.connect();
|
||||
if (((HttpURLConnection) httpConn).getResponseCode() == 200) {
|
||||
int responseCode = ((HttpURLConnection) httpConn).getResponseCode();
|
||||
if (responseCode == 200) {
|
||||
try (BufferedInputStream in = new BufferedInputStream(((HttpURLConnection) httpConn).getInputStream())) {
|
||||
//try (BufferedInputStream in = new BufferedInputStream(url.openConnection(p).getInputStream())) {
|
||||
out = new BufferedOutputStream(new TFileOutputStream(temporaryFile));
|
||||
|
|
@ -558,11 +589,14 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
temporaryFile.delete();
|
||||
}
|
||||
} else {
|
||||
Logger.getLogger(this.getClass()).error(convertStreamToString(((HttpURLConnection) httpConn).getErrorStream()));
|
||||
logger.warn("Image download failed - responseCode: " + responseCode + " url: " + url.toString());
|
||||
if (logger.isDebugEnabled()) { // Shows the returned html from the request to the web server
|
||||
logger.debug("Return ed HTML ERROR:\n" + convertStreamToString(((HttpURLConnection) httpConn).getErrorStream()));
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error(e, e);
|
||||
logger.error(e, e);
|
||||
}
|
||||
|
||||
synchronized (sync) {
|
||||
|
|
@ -621,7 +655,5 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
|
|||
}
|
||||
}
|
||||
|
||||
private static final Logger log = Logger.getLogger(DownloadPictures.class);
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,18 @@
|
|||
|Generate|TOK:DDN|Goblin|
|
||||
|
||||
|Generate|TOK:KTK|Bear|
|
||||
|Generate|TOK:KTK|Bird|
|
||||
|Generate|TOK:KTK|Goblin|
|
||||
|Generate|TOK:KTK|Morph|
|
||||
|Generate|TOK:KTK|Snake|
|
||||
|Generate|TOK:KTK|Spirit Warrior|
|
||||
|Generate|TOK:KTK|Spirit|
|
||||
|Generate|TOK:KTK|Vampire|
|
||||
|Generate|TOK:KTK|Warrior 1|
|
||||
|Generate|TOK:KTK|Warrior 2|
|
||||
|Generate|TOK:KTK|Zombie|
|
||||
|Generate|EMBLEM!:KTK|Emblem Sarkhan, the Dragonspeaker|
|
||||
|Generate|EMBLEM!:KTK|Emblem Sorin, Solemn Visitor|
|
||||
#|Generate|TOK:KTK|Bear|
|
||||
#|Generate|TOK:KTK|Bird|
|
||||
#|Generate|TOK:KTK|Goblin|
|
||||
#|Generate|TOK:KTK|Morph|
|
||||
#|Generate|TOK:KTK|Snake|
|
||||
#|Generate|TOK:KTK|Spirit Warrior|
|
||||
#|Generate|TOK:KTK|Spirit|
|
||||
#|Generate|TOK:KTK|Vampire|
|
||||
#|Generate|TOK:KTK|Warrior 1|
|
||||
#|Generate|TOK:KTK|Warrior 2|
|
||||
#|Generate|TOK:KTK|Zombie|
|
||||
#|Generate|EMBLEM!:KTK|Emblem Sarkhan, the Dragonspeaker|
|
||||
#|Generate|EMBLEM!:KTK|Emblem Sorin, Solemn Visitor|
|
||||
|
||||
|Generate|TOK:M15|Sliver|
|
||||
|Generate|TOK:M15|Soldier|
|
||||
|
|
@ -45,6 +46,8 @@
|
|||
|Generate|TOK:JOU|Spider|
|
||||
|Generate|TOK:JOU|Snake|
|
||||
|
||||
|Generate|TOK:DDM|Assassin|
|
||||
|
||||
|Generate|TOK:BNG|Bird 1|
|
||||
|Generate|TOK:BNG|Cat Soldier|
|
||||
|Generate|TOK:BNG|Soldier|
|
||||
|
|
@ -105,6 +108,8 @@
|
|||
|
||||
|Generate|TOK:DGM|Elemental|
|
||||
|
||||
|Generate|TOK:DDK|Spirit|
|
||||
|
||||
|Generate|TOK:GTC|Angel|
|
||||
|Generate|TOK:GTC|Rat|
|
||||
|Generate|TOK:GTC|Frog Lizard|
|
||||
|
|
@ -129,6 +134,8 @@
|
|||
|
||||
|Generate|EMBLEM-:M13|Liliana of the Dark Realms|
|
||||
|
||||
|Generate|TOK:DDJ|Saproling|
|
||||
|
||||
|Generate|TOK:M13|Cat|
|
||||
|Generate|TOK:M13|Goat|
|
||||
|Generate|TOK:M13|Soldier|
|
||||
|
|
@ -186,6 +193,8 @@
|
|||
|Generate|TOK:NPH|Golem|
|
||||
|Generate|TOK:NPH|Myr|
|
||||
|
||||
|Generate|TOK:DDG|Goblin|
|
||||
|
||||
|Generate|TOK:MBS|Germ|
|
||||
|Generate|TOK:MBS|Zombie|
|
||||
|Generate|TOK:MBS|Golem|
|
||||
|
|
@ -220,9 +229,9 @@
|
|||
|Generate|TOK:ROE|Ooze|
|
||||
|Generate|TOK:ROE|Tuktuk the Returned|
|
||||
|
||||
|Generate|TOK:PVC|Saproling|
|
||||
|Generate|TOK:PVC|Hornet|
|
||||
|Generate|TOK:PVC|Minion|
|
||||
|Generate|TOK:DDE|Saproling|
|
||||
|Generate|TOK:DDE|Hornet|
|
||||
|Generate|TOK:DDE|Minion|
|
||||
|
||||
|Generate|TOK:WWK|Soldier Ally|
|
||||
|Generate|TOK:WWK|Dragon|
|
||||
|
|
@ -261,10 +270,14 @@
|
|||
|Generate|TOK:ARB|Dragon|
|
||||
|Generate|TOK:ARB|Zombie Wizard|
|
||||
|
||||
|Generate|TOK:DDC|Spirit|
|
||||
|Generate|TOK:DDC|Demon|
|
||||
|Generate|TOK:DDC|Thrull|
|
||||
|
||||
|Generate|TOK:CON|Angel|
|
||||
|Generate|TOK:CON|Elemental|
|
||||
|
||||
|Generate|TOK:JVC|Elemental Shaman|
|
||||
|Generate|TOK:DD2|Elemental Shaman|
|
||||
|
||||
|Generate|TOK:ALA|Soldier|
|
||||
|Generate|TOK:ALA|Beast|
|
||||
|
|
|
|||
|
|
@ -63,7 +63,8 @@ ddc=dvd
|
|||
dd2=jvc
|
||||
ddd=gvl
|
||||
unh=uh
|
||||
dde=pvc
|
||||
# Remove setname as soon as the images can be downloaded
|
||||
ignore.urls=TOK,EMBLEM
|
||||
ignore.urls=TOK
|
||||
# sets ordered by release time (newest goes first)
|
||||
token.lookup.order=KTK,M15,VMA,CNS,JOU,BNG,THS,DDL,M14,MMA,DGM,GTC,RTR,M13,AVR,DDI,DKA,ISD,M12,NPH,MBS,SOM,M11,ROE,PVC,WWK,ZEN,M10,GVL,ARB,DVD,CFX,JVC,ALA,EVE,SHM,EVG,MOR,LRW,10E,CLS,CHK
|
||||
token.lookup.order=KTK,M15,VMA,CNS,JOU,BNG,THS,DDL,M14,MMA,DGM,GTC,RTR,M13,AVR,DDI,DKA,ISD,M12,NPH,MBS,SOM,M11,ROE,DDE,WWK,ZEN,M10,GVL,ARB,DVD,CFX,JVC,ALA,EVE,SHM,EVG,MOR,LRW,10E,CLS,CHK
|
||||
Loading…
Add table
Add a link
Reference in a new issue