From 12b420d68b697e862e1cee472dcbcf50bac9f558 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Wed, 15 Nov 2017 00:09:31 +0400 Subject: [PATCH] Add new logs and checks in symbols download (for easy setup and fix settings) --- .../plugins/card/dl/sources/GathererSets.java | 66 ++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GathererSets.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GathererSets.java index 41a6fb93dc2..e3a117a51b9 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GathererSets.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GathererSets.java @@ -9,11 +9,15 @@ 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; +import org.apache.log4j.Logger; public class GathererSets implements Iterable { + private static final Logger logger = Logger.getLogger(GathererSets.class); + private static final String SETS_PATH = File.separator + "sets"; private static final File DEFAULT_OUT_DIR = new File("plugins" + File.separator + "images" + SETS_PATH); private static File outDir = DEFAULT_OUT_DIR; @@ -60,6 +64,8 @@ public class GathererSets implements Iterable { "SOI", "EMN", "KLD", "AER", "AKH", "HOU", + "XLN", "C17", + "RIX", "DOM", "M19", // not released "E01" }; @@ -105,7 +111,7 @@ public class GathererSets implements Iterable { symbolsReplacements.put("PCY", "PR"); symbolsReplacements.put("PLS", "PS"); symbolsReplacements.put("POR", "PO"); - symbolsReplacements.put("PO2", "P2"); + symbolsReplacements.put("P02", "P2"); symbolsReplacements.put("PTK", "PK"); symbolsReplacements.put("STH", "ST"); symbolsReplacements.put("TMP", "TE"); @@ -124,6 +130,42 @@ public class GathererSets implements Iterable { } } + // checks for wrong card settings and support (easy to control what all good) + private static final HashMap setsToDonwload = new HashMap<>(); + + private void CheckSearchResult(String searchCode, ExpansionSet foundedExp, boolean canDownloadTask){ + + // duplicated in settings + ExpansionSet existsExp = setsToDonwload.get(searchCode); + if (existsExp != null) { + logger.error(String.format("Symbols: founded duplicated code: %s", searchCode)); + } else { + setsToDonwload.put(searchCode, foundedExp); + } + + // not found + if (foundedExp == null) { + logger.error(String.format("Symbols: can't find set by code: %s", searchCode)); + return; + } + + // checks for founded sets only + + // to early to download + if (!canDownloadTask){ + logger.warn(String.format("Symbols: early to download, set is not released: %s (%s) after %s", searchCode, foundedExp.getName(), foundedExp.getReleaseDate())); + } + } + + private void AnalyseSearchResult(){ + // analyze supported sets and show wrong settings (who without symbol settings) + for (ExpansionSet set : Sets.getInstance().values()) { + if (setsToDonwload.get(set.getCode()) == null) { + logger.warn(String.format("Symbols: set is not configured: %s (%s)", set.getCode(), set.getName())); + } + } + } + @Override public Iterator iterator() { Calendar c = Calendar.getInstance(); @@ -131,35 +173,57 @@ public class GathererSets implements Iterable { c.add(Calendar.DATE, +14); // Try to load the symbols eralies 14 days before release date Date compareDate = c.getTime(); ArrayList jobs = new ArrayList<>(); + boolean canDownload = false; + + setsToDonwload.clear(); + for (String symbol : symbols) { ExpansionSet exp = Sets.findSet(symbol); + canDownload = false; if (exp != null && exp.getReleaseDate().before(compareDate)) { + canDownload = true; jobs.add(generateDownloadJob(symbol, "C", "C")); jobs.add(generateDownloadJob(symbol, "U", "U")); jobs.add(generateDownloadJob(symbol, "R", "R")); } + CheckSearchResult(symbol, exp, canDownload); } + for (String symbol : withMythics) { ExpansionSet exp = Sets.findSet(symbol); + canDownload = false; if (exp != null && exp.getReleaseDate().before(compareDate)) { + canDownload = true; jobs.add(generateDownloadJob(symbol, "C", "C")); jobs.add(generateDownloadJob(symbol, "U", "U")); jobs.add(generateDownloadJob(symbol, "R", "R")); jobs.add(generateDownloadJob(symbol, "M", "M")); } + CheckSearchResult(symbol, exp, canDownload); } + for (String symbol : onlyMythics) { ExpansionSet exp = Sets.findSet(symbol); + canDownload = false; if (exp != null && exp.getReleaseDate().before(compareDate)) { + canDownload = true; jobs.add(generateDownloadJob(symbol, "M", "M")); } } + for (String symbol : onlyMythicsAsSpecial) { ExpansionSet exp = Sets.findSet(symbol); + canDownload = false; if (exp != null && exp.getReleaseDate().before(compareDate)) { + canDownload = true; jobs.add(generateDownloadJob(symbol, "M", "S")); } + CheckSearchResult(symbol, exp, canDownload); } + + // check wrong settings + AnalyseSearchResult(); + return jobs.iterator(); }