mtg-decks-downloader

Tool to download Magic: The Gathering decklists from the Internet
git clone https://kevincorvisier.fr/git/mtg-decks-downloader.git
Log | Files | Refs | README

commit 807e446aa359be9264ea1dea5bab69ebbfd421f7
parent 780405973dd11a06ee19c15b9c482ae436886b6e
Author: Kevin Corvisier <git@kevincorvisier.fr>
Date:   Sun, 20 Oct 2024 13:20:54 +0900

Extract the stop condition methods from the decklist consumer interface
Diffstat:
Asrc/main/java/fr/kevincorvisier/mtg/dd/StopCondition.java | 10++++++++++
Msrc/main/java/fr/kevincorvisier/mtg/dd/consumers/DecklistConsumer.java | 4----
Msrc/main/java/fr/kevincorvisier/mtg/dd/consumers/DefaultDecklistConsumer.java | 3++-
Msrc/main/java/fr/kevincorvisier/mtg/dd/downloaders/TcdecksDecklistDownloader.java | 6++++--
4 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/main/java/fr/kevincorvisier/mtg/dd/StopCondition.java b/src/main/java/fr/kevincorvisier/mtg/dd/StopCondition.java @@ -0,0 +1,10 @@ +package fr.kevincorvisier.mtg.dd; + +import fr.kevincorvisier.mtg.dd.model.DeckItem; + +public interface StopCondition +{ + int capacity(); + + int capacity(final DeckItem deck); +} diff --git a/src/main/java/fr/kevincorvisier/mtg/dd/consumers/DecklistConsumer.java b/src/main/java/fr/kevincorvisier/mtg/dd/consumers/DecklistConsumer.java @@ -6,10 +6,6 @@ import fr.kevincorvisier.mtg.dd.model.DeckItem; public interface DecklistConsumer { - int capacity(); - - int capacity(final DeckItem deck); - void consume(final DeckItem deck); void saveToFolder() throws IOException; diff --git a/src/main/java/fr/kevincorvisier/mtg/dd/consumers/DefaultDecklistConsumer.java b/src/main/java/fr/kevincorvisier/mtg/dd/consumers/DefaultDecklistConsumer.java @@ -21,6 +21,7 @@ import org.springframework.stereotype.Service; import fr.kevincorvisier.mtg.dd.Cache; import fr.kevincorvisier.mtg.dd.Crawler; +import fr.kevincorvisier.mtg.dd.StopCondition; import fr.kevincorvisier.mtg.dd.model.DeckItem; import fr.kevincorvisier.mtg.dd.model.DeckItemComparator; import fr.kevincorvisier.mtg.dd.mtgo.MagicOnlineFileReader; @@ -32,7 +33,7 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @Service @RequiredArgsConstructor -public class DefaultDecklistConsumer implements DecklistConsumer +public class DefaultDecklistConsumer implements DecklistConsumer, StopCondition { private final Map<String, Map<String, DeckItem>> downloadedByDeckNameByPlayerName = new HashMap<>(); private final Set<Integer> downloadedContent = new HashSet<>(); diff --git a/src/main/java/fr/kevincorvisier/mtg/dd/downloaders/TcdecksDecklistDownloader.java b/src/main/java/fr/kevincorvisier/mtg/dd/downloaders/TcdecksDecklistDownloader.java @@ -16,6 +16,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import fr.kevincorvisier.mtg.dd.Crawler; +import fr.kevincorvisier.mtg.dd.StopCondition; import fr.kevincorvisier.mtg.dd.consumers.DecklistConsumer; import fr.kevincorvisier.mtg.dd.model.DeckItemFactory; import lombok.RequiredArgsConstructor; @@ -41,6 +42,7 @@ public class TcdecksDecklistDownloader implements DecklistDownloader private final Crawler crawler; private final DeckItemFactory deckItemFactory; private final DecklistConsumer consumer; + private final StopCondition stopCondition; @Value("${tcdecks.tournament.players.min}") private final int tournamentMinPlayers; @@ -112,7 +114,7 @@ public class TcdecksDecklistDownloader implements DecklistDownloader for (final URL tournament : tournaments) downloadTournament(tournament); - } while (consumer.capacity() > 0); + } while (stopCondition.capacity() > 0); } private void downloadArchetype(final URL url, final String archetype) throws MalformedURLException @@ -150,7 +152,7 @@ public class TcdecksDecklistDownloader implements DecklistDownloader consumer.consume(deckItemFactory.create(downloadUrl, player.getText(), archetype, LocalDate.parse(date.getText(), DateTimeFormatter.ofPattern("dd/MM/yyyy")))); } - } while (consumer.capacity() > 0); + } while (stopCondition.capacity() > 0); } private void downloadTournament(final URL url) throws MalformedURLException