From bf129ce387cb8e9604c26f91d47c40c9164bec73 Mon Sep 17 00:00:00 2001 From: "marcin.sciesinski" Date: Thu, 18 Feb 2021 21:32:15 -0800 Subject: [PATCH] Getting rid of the MtG stuff in the project --- .../async/handler/MtgCardsRequestHandler.java | 72 ------- .../async/handler/RootUriRequestHandler.java | 4 - .../gempukku/lotro/builder/ServerBuilder.java | 12 -- .../main/java/com/gempukku/mtg/CardData.java | 31 --- .../java/com/gempukku/mtg/MtgCardServer.java | 105 ---------- .../com/gempukku/mtg/MtgDataProvider.java | 13 -- .../mtg/ProviderNotFoundException.java | 4 - .../java/com/gempukku/mtg/SetCardData.java | 27 --- .../mtg/TimestampedCardCollection.java | 21 -- .../com/gempukku/mtg/provider/RetryUtil.java | 22 --- .../com/gempukku/mtg/provider/Retryable.java | 7 - .../mtggoldfish/MtgGoldfishCardSet.java | 19 -- .../mtggoldfish/MtgGoldfishProvider.java | 185 ------------------ .../provider/tcgplayer/TCGPlayerProvider.java | 22 --- 14 files changed, 544 deletions(-) delete mode 100644 gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/MtgCardsRequestHandler.java delete mode 100644 gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/CardData.java delete mode 100644 gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/MtgCardServer.java delete mode 100644 gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/MtgDataProvider.java delete mode 100644 gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/ProviderNotFoundException.java delete mode 100644 gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/SetCardData.java delete mode 100644 gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/TimestampedCardCollection.java delete mode 100644 gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/RetryUtil.java delete mode 100644 gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/Retryable.java delete mode 100644 gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/mtggoldfish/MtgGoldfishCardSet.java delete mode 100644 gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/mtggoldfish/MtgGoldfishProvider.java delete mode 100644 gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/tcgplayer/TCGPlayerProvider.java diff --git a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/MtgCardsRequestHandler.java b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/MtgCardsRequestHandler.java deleted file mode 100644 index 78e16452b..000000000 --- a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/MtgCardsRequestHandler.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.gempukku.lotro.async.handler; - -import com.gempukku.lotro.async.HttpProcessingException; -import com.gempukku.lotro.async.ResponseWriter; -import com.gempukku.mtg.MtgCardServer; -import com.gempukku.mtg.ProviderNotFoundException; -import io.netty.handler.codec.http.HttpHeaderNames; -import io.netty.handler.codec.http.HttpHeaders; -import io.netty.handler.codec.http.HttpRequest; -import io.netty.handler.codec.http.QueryStringDecoder; -import io.netty.util.AsciiString; - -import java.lang.reflect.Type; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class MtgCardsRequestHandler implements UriRequestHandler { - private MtgCardServer _mtgCardServer; - - public MtgCardsRequestHandler(Map context) { - _mtgCardServer = (MtgCardServer) context.get(MtgCardServer.class); - } - - @Override - public void handleRequest(String uri, HttpRequest request, Map context, ResponseWriter responseWriter, String remoteIp) throws Exception { - QueryStringDecoder queryDecoder = new QueryStringDecoder(request.getUri()); - String provider = getQueryParameterSafely(queryDecoder, "provider"); - String updateMarker = getQueryParameterSafely(queryDecoder, "update"); - - if (provider != null) { - processCardListRequest(responseWriter, provider, updateMarker); - } else { - processProviderListRequest(responseWriter); - } - } - - private void processProviderListRequest(ResponseWriter responseWriter) { - byte[] dataProvidersResponse = _mtgCardServer.getDataProvidersResponse(); - - Map headers = new HashMap(); - headers.put(HttpHeaderNames.CONTENT_TYPE, "application/json; charset=UTF-8"); - - responseWriter.writeByteResponse(dataProvidersResponse, headers); - } - - private void processCardListRequest(ResponseWriter responseWriter, String provider, String updateMarker) throws Exception { - try { - MtgCardServer.CardDatabaseHolder cardDatabaseHolder = _mtgCardServer.getCardDatabaseHolder(provider); - if (cardDatabaseHolder == null) - throw new HttpProcessingException(204); - else if (updateMarker != null && updateMarker.equals(String.valueOf(cardDatabaseHolder.getUpdateDate()))) - throw new HttpProcessingException(304); - - Map headers = new HashMap(); - headers.put(HttpHeaderNames.CONTENT_TYPE, "application/json; charset=UTF-8"); - headers.put(HttpHeaderNames.ETAG, String.valueOf(cardDatabaseHolder.getUpdateDate())); - - responseWriter.writeByteResponse(cardDatabaseHolder.getBytes(), headers); - } catch (ProviderNotFoundException exp) { - throw new HttpProcessingException(404); - } - } - - protected String getQueryParameterSafely(QueryStringDecoder queryStringDecoder, String parameterName) { - List parameterValues = queryStringDecoder.parameters().get(parameterName); - if (parameterValues != null && parameterValues.size() > 0) - return parameterValues.get(0); - else - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/RootUriRequestHandler.java b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/RootUriRequestHandler.java index b78af8df5..91128254a 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/RootUriRequestHandler.java +++ b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/RootUriRequestHandler.java @@ -32,7 +32,6 @@ public class RootUriRequestHandler implements UriRequestHandler { private ServerStatsRequestHandler _serverStatsRequestHandler; private PlayerStatsRequestHandler _playerStatsRequestHandler; private TournamentRequestHandler _tournamentRequestHandler; - private MtgCardsRequestHandler _mtgCardsRequestHandler; private SoloDraftRequestHandler _soloDraftRequestHandler; private Pattern originPattern; @@ -58,7 +57,6 @@ public class RootUriRequestHandler implements UriRequestHandler { _serverStatsRequestHandler = new ServerStatsRequestHandler(context); _playerStatsRequestHandler = new PlayerStatsRequestHandler(context); _tournamentRequestHandler = new TournamentRequestHandler(context); - _mtgCardsRequestHandler = new MtgCardsRequestHandler(context); _soloDraftRequestHandler = new SoloDraftRequestHandler(context); } @@ -66,8 +64,6 @@ public class RootUriRequestHandler implements UriRequestHandler { public void handleRequest(String uri, HttpRequest request, Map context, ResponseWriter responseWriter, String remoteIp) throws Exception { if (uri.startsWith(_webContextPath)) { _webRequestHandler.handleRequest(uri.substring(_webContextPath.length()), request, context, responseWriter, remoteIp); - } else if (uri.equals("/mtg-cards/database.json")) { - _mtgCardsRequestHandler.handleRequest(uri, request, context, responseWriter, remoteIp); } else if (uri.equals("/gemp-lotr")) { responseWriter.writeError(301, Collections.singletonMap("Location", "/gemp-lotr/")); } else if (uri.equals(_serverContextPath)) { diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/builder/ServerBuilder.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/builder/ServerBuilder.java index 2846d07ef..662d05c7a 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/builder/ServerBuilder.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/builder/ServerBuilder.java @@ -16,7 +16,6 @@ import com.gempukku.lotro.packs.PacksStorage; import com.gempukku.lotro.service.AdminService; import com.gempukku.lotro.service.LoggedUserHolder; import com.gempukku.lotro.tournament.*; -import com.gempukku.mtg.MtgCardServer; import java.lang.reflect.Type; import java.util.Map; @@ -114,8 +113,6 @@ public class ServerBuilder { pairingMechanismRegistry, extract(objectMap, CardSets.class) )); - - objectMap.put(MtgCardServer.class, new MtgCardServer()); } private static T extract(Map objectMap, Class clazz) { @@ -126,21 +123,12 @@ public class ServerBuilder { } public static void constructObjects(Map objectMap) { - if (isMtgEnabled()) - extract(objectMap, MtgCardServer.class).startServer(); extract(objectMap, HallServer.class).startServer(); extract(objectMap, LotroServer.class).startServer(); extract(objectMap, ChatServer.class).startServer(); } - private static boolean isMtgEnabled() { - String mtgEnabled = ApplicationConfiguration.getProperty("mtg.enabled"); - return mtgEnabled != null && mtgEnabled.equals("true"); - } - public static void destroyObjects(Map objectMap) { - if (isMtgEnabled()) - extract(objectMap, MtgCardServer.class).stopServer(); extract(objectMap, HallServer.class).stopServer(); extract(objectMap, LotroServer.class).stopServer(); extract(objectMap, ChatServer.class).stopServer(); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/CardData.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/CardData.java deleted file mode 100644 index fd30360b0..000000000 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/CardData.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.gempukku.mtg; - -public class CardData { - private final String _id; - private final String _name; - private final int _price; - private final String _link; - - public CardData(String id, String name, int price, String link) { - _name = name; - _id = id; - _link = link; - _price = price; - } - - public String getId() { - return _id; - } - - public String getName() { - return _name; - } - - public int getPrice() { - return _price; - } - - public String getLink() { - return _link; - } -} diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/MtgCardServer.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/MtgCardServer.java deleted file mode 100644 index 2abc947ee..000000000 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/MtgCardServer.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.gempukku.mtg; - -import com.gempukku.lotro.AbstractServer; -import com.gempukku.mtg.provider.mtggoldfish.MtgGoldfishProvider; -import org.json.simple.JSONArray; - -import java.nio.charset.Charset; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -public class MtgCardServer extends AbstractServer { - private Map _dataProviders = new HashMap(); - - private Map _providersData = Collections.synchronizedMap(new HashMap()); - - public MtgCardServer() { - _dataProviders.put("mtgGoldFish", new MtgGoldfishProvider()); - } - - public CardDatabaseHolder getCardDatabaseHolder(String providerName) throws ProviderNotFoundException { - if (!_dataProviders.containsKey(providerName)) - throw new ProviderNotFoundException(); - return _providersData.get(providerName); - } - - public byte[] getDataProvidersResponse() { - final JSONArray providers = new JSONArray(); - for (Map.Entry stringMtgDataProviderEntry : _dataProviders.entrySet()) { - Map provider = new LinkedHashMap(); - provider.put("id", stringMtgDataProviderEntry.getKey()); - provider.put("name", stringMtgDataProviderEntry.getValue().getDisplayName()); - providers.add(provider); - } - - return providers.toJSONString().getBytes(Charset.forName("UTF-8")); - } - - @Override - protected void cleanup() { - for (Map.Entry dataProviderEntry : _dataProviders.entrySet()) { - final String key = dataProviderEntry.getKey(); - MtgDataProvider dataProvider = dataProviderEntry.getValue(); - if (dataProvider.shouldBeUpdated()) { - dataProvider.update( - new MtgDataProvider.UpdateCallback() { - @Override - public void callback(TimestampedCardCollection result) { - _providersData.put(key, new CardDatabaseHolder(marshallData(result.getSetCardDataList()), result.getUpdateDate())); - } - }); - } - } - } - - public static byte[] marshallData(List setCardDataList) { - JSONArray allSets = new JSONArray(); - for (SetCardData setCardData : setCardDataList) { - List setArray = new LinkedList(); - - for (CardData cardData : setCardData.getAllCards()) { - Map cardObject = new LinkedHashMap(); - cardObject.put("id", cardData.getId()); - cardObject.put("name", cardData.getName()); - cardObject.put("price", cardData.getPrice()); - String link = cardData.getLink(); - if (link != null) - cardObject.put("link", link); - setArray.add(cardObject); - } - - Map setObject = new LinkedHashMap(); - setObject.put("name", setCardData.getSetName()); - String setLink = setCardData.getSetLink(); - if (setLink != null) - setObject.put("link", setLink); - setObject.put("cards", setArray); - - allSets.add(setObject); - } - - return allSets.toJSONString().getBytes(Charset.forName("UTF-8")); - } - - public class CardDatabaseHolder { - private long _updateDate; - private byte[] _bytes; - - public CardDatabaseHolder(byte[] bytes, long updateDate) { - _bytes = bytes; - _updateDate = updateDate; - } - - public long getUpdateDate() { - return _updateDate; - } - - public byte[] getBytes() { - return _bytes; - } - } -} diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/MtgDataProvider.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/MtgDataProvider.java deleted file mode 100644 index 1f632ced2..000000000 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/MtgDataProvider.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gempukku.mtg; - -public interface MtgDataProvider { - boolean shouldBeUpdated(); - - void update(UpdateCallback updateCallback); - - String getDisplayName(); - - interface UpdateCallback { - void callback(TimestampedCardCollection result); - } -} diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/ProviderNotFoundException.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/ProviderNotFoundException.java deleted file mode 100644 index dd0913e1c..000000000 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/ProviderNotFoundException.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.gempukku.mtg; - -public class ProviderNotFoundException extends Exception { -} diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/SetCardData.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/SetCardData.java deleted file mode 100644 index e76b6eb9e..000000000 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/SetCardData.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gempukku.mtg; - -import java.util.List; - -public class SetCardData { - private String _setName; - private String _setLink; - private List _allCards; - - public SetCardData(String setName, String setLink, List allCards) { - _setName = setName; - _setLink = setLink; - _allCards = allCards; - } - - public List getAllCards() { - return _allCards; - } - - public String getSetName() { - return _setName; - } - - public String getSetLink() { - return _setLink; - } -} diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/TimestampedCardCollection.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/TimestampedCardCollection.java deleted file mode 100644 index 6b8544bf9..000000000 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/TimestampedCardCollection.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gempukku.mtg; - -import java.util.List; - -public class TimestampedCardCollection { - private final long _updateDate; - private final List _setCardDataList; - - public TimestampedCardCollection(long updateDate, List setCardDataList) { - _updateDate = updateDate; - _setCardDataList = setCardDataList; - } - - public List getSetCardDataList() { - return _setCardDataList; - } - - public long getUpdateDate() { - return _updateDate; - } -} diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/RetryUtil.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/RetryUtil.java deleted file mode 100644 index 4bb221fea..000000000 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/RetryUtil.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gempukku.mtg.provider; - -public class RetryUtil { - public static T executeInRetry(Retryable task, int retries) throws U { - int retryCount = 0; - while (true) { - try { - return task.execute(); - } catch (Exception exp) { - if (task.isRetryable(exp)) { - retryCount++; - if (retryCount == retries) - throw (U) exp; - } else if (exp instanceof RuntimeException) { - throw (RuntimeException) exp; - } else { - throw new RuntimeException(exp); - } - } - } - } -} diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/Retryable.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/Retryable.java deleted file mode 100644 index 6d61ca522..000000000 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/Retryable.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.gempukku.mtg.provider; - -public interface Retryable { - T execute() throws U; - - boolean isRetryable(Exception exception); -} \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/mtggoldfish/MtgGoldfishCardSet.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/mtggoldfish/MtgGoldfishCardSet.java deleted file mode 100644 index 948036519..000000000 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/mtggoldfish/MtgGoldfishCardSet.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gempukku.mtg.provider.mtggoldfish; - -public class MtgGoldfishCardSet { - private String _urlPostfix; - private String _infoLine; - - public MtgGoldfishCardSet(String urlPostfix, String infoLine) { - _urlPostfix = urlPostfix; - _infoLine = infoLine; - } - - public String getInfoLine() { - return _infoLine; - } - - public String getUrlPostfix() { - return _urlPostfix; - } -} diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/mtggoldfish/MtgGoldfishProvider.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/mtggoldfish/MtgGoldfishProvider.java deleted file mode 100644 index 0c477b797..000000000 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/mtggoldfish/MtgGoldfishProvider.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.gempukku.mtg.provider.mtggoldfish; - -import com.gempukku.mtg.*; -import com.gempukku.mtg.provider.RetryUtil; -import com.gempukku.mtg.provider.Retryable; -import org.apache.log4j.Logger; -import org.jsoup.HttpStatusException; -import org.jsoup.Jsoup; -import org.jsoup.nodes.Document; -import org.jsoup.nodes.Element; -import org.jsoup.select.Elements; - -import java.io.IOException; -import java.net.URL; -import java.nio.charset.Charset; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.LinkedList; -import java.util.List; -import java.util.TimeZone; -import java.util.concurrent.ThreadLocalRandom; - -public class MtgGoldfishProvider implements MtgDataProvider { - private static final Logger LOG = Logger.getLogger(MtgGoldfishProvider.class); - - private static final long DOWNLOAD_EVERY = 24L * 60 * 60 * 1000; - - private static final int SLEEP_MINIMUM = 8 * 1000; - private static final int SLEEP_MAXIMUM = 12 * 1000; - - private static final int TIMEOUT = 5 * 60 * 1000; - private static final int RETRY_MAX = 5; - - private long _nextStart; - - public MtgGoldfishProvider() { - try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - sdf.setTimeZone(TimeZone.getTimeZone("EST")); - long someDownloadTime = sdf.parse("2015-01-01 04:25:00").getTime(); - - long number = (System.currentTimeMillis() - someDownloadTime) / DOWNLOAD_EVERY; - - _nextStart = someDownloadTime + number * DOWNLOAD_EVERY; - } catch (ParseException exp) { - // ignore - } - } - - @Override - public String getDisplayName() { - return "MtgGoldFish.com"; - } - - @Override - public boolean shouldBeUpdated() { - return _nextStart < System.currentTimeMillis(); - } - - @Override - public void update(final UpdateCallback updateCallback) { - _nextStart += DOWNLOAD_EVERY; - Thread thr = new Thread( - new Runnable() { - @Override - public void run() { - updateCallback.callback(updateDatabase()); - } - }); - thr.start(); - } - - private TimestampedCardCollection updateDatabase() { - long updateDate = System.currentTimeMillis(); - - final List resultArray = new LinkedList(); - try { - List mtgCardSets = downloadSetListWithRetry(); - for (final MtgGoldfishCardSet mtgCardSet : mtgCardSets) { - downloadSetWithRetry(resultArray, mtgCardSet); - } - } catch (IOException exp) { - LOG.error("Unable to download card list", exp); - } - return new TimestampedCardCollection(updateDate, resultArray); - } - - private List downloadSetListWithRetry() throws IOException { - return RetryUtil.executeInRetry( - new Retryable, IOException>() { - @Override - public List execute() throws IOException { - return downloadSetList(); - } - - @Override - public boolean isRetryable(Exception exception) { - return exception instanceof IOException; - } - }, RETRY_MAX); - } - - private List downloadSetList() throws IOException { - List results = new LinkedList(); - Document doc = Jsoup.connect("http://www.mtggoldfish.com/prices/paper/standard").get(); - String[] priceListTypes = new String[]{"Standard", "Modern", "Legacy", "Special"}; - for (String priceListType : priceListTypes) { - Elements cardElements = doc.select(".priceList-setMenu-" + priceListType); - Elements setImages = cardElements.select("li img"); - for (Element setImage : setImages) { - String uriPostfix = setImage.attr("alt"); - String setName = setImage.parent().text(); - results.add(new MtgGoldfishCardSet(uriPostfix, setName)); - } - } - - return results; - } - - private void downloadSetWithRetry(final List resultArray, final MtgGoldfishCardSet mtgCardSet) throws IOException { - try { - RetryUtil.executeInRetry( - new Retryable() { - @Override - public Void execute() throws IOException { - downloadSet(mtgCardSet, resultArray); - return null; - } - - @Override - public boolean isRetryable(Exception exception) { - return exception instanceof IOException; - } - }, RETRY_MAX); - } catch (HttpStatusException exp) { - // Unable to download the set - skip it - } - } - - private void downloadSet(MtgGoldfishCardSet mtgCardSet, List result) throws IOException { - try { - Thread.sleep(getSleepTime()); - } catch (InterruptedException e) { - // Ignore - } - String link = "http://www.mtggoldfish.com/index/" + mtgCardSet.getUrlPostfix(); - Document doc = Jsoup.parse(new URL(link), TIMEOUT); - boolean isInPaper = (doc.select("#priceHistoryTabs [href=#tab-paper]").size() > 0); - if (isInPaper && !containsLinkSet(result, link)) { - List allCards = new LinkedList(); - - Elements cardElements = doc.select(".index-price-table-paper tbody tr"); - for (Element cardElement : cardElements) { - String cardName = cardElement.select("td:nth-of-type(1) a").text(); - String cardId = mtgCardSet.getUrlPostfix() + "-" + cardName; - float price = Float.parseFloat(cardElement.select("td:nth-of-type(4)").text().replace(",", "")); - allCards.add(new CardData(cardId, cardName, Math.round(price * 100), null)); - } - - boolean hasFoils = doc.select(".index-price-header-foil-switcher").size() > 0; - if (hasFoils) { - downloadSet(new MtgGoldfishCardSet(mtgCardSet.getUrlPostfix() + "_F", mtgCardSet.getInfoLine() + " ยท Foil"), result); - } - result.add(new SetCardData(mtgCardSet.getInfoLine(), link, allCards)); - } - } - - private boolean containsLinkSet(List result, String link) { - for (SetCardData setCardData : result) { - if (setCardData.getSetLink().equals(link)) - return true; - } - return false; - } - - private int getSleepTime() { - return SLEEP_MINIMUM + ThreadLocalRandom.current().nextInt(SLEEP_MAXIMUM - SLEEP_MINIMUM); - } - - public static void main(String[] args) { - MtgGoldfishProvider mtgCardServer = new MtgGoldfishProvider(); - TimestampedCardCollection timestampedCardCollection = mtgCardServer.updateDatabase(); - System.out.println(new String(MtgCardServer.marshallData(timestampedCardCollection.getSetCardDataList()), Charset.forName("UTF-8"))); - } -} diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/tcgplayer/TCGPlayerProvider.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/tcgplayer/TCGPlayerProvider.java deleted file mode 100644 index 0101a8da2..000000000 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/mtg/provider/tcgplayer/TCGPlayerProvider.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gempukku.mtg.provider.tcgplayer; - -import org.jsoup.Jsoup; -import org.jsoup.nodes.Document; -import org.jsoup.nodes.Element; - -import java.io.IOException; -import java.util.LinkedList; -import java.util.List; - -public class TCGPlayerProvider { - private List downloadSetList() throws IOException { - List results = new LinkedList(); - Document doc = Jsoup.connect("http://shop.tcgplayer.com/magic").get(); - for (Element element : doc.select("#SetName option")) { - String setName = element.attr("value"); - if (!setName.equals("All")) - results.add(setName); - } - return results; - } -}