X-Git-Url: https://git.hedgecode.org/?p=chesshog-scanner.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fscanner%2Fportal%2FChessGamesScanner.java;fp=src%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fscanner%2Fportal%2FChessGamesScanner.java;h=28493cf4a19a48d8dc244e9d08aaab6314f517d6;hp=7658ba1c6afd9186a8da4121e18512a95cdc41c2;hb=cbcefd2f85fa56b769bc211a134c7df1e97ef0be;hpb=8b5e21d880364363f4f8d51e126c1db91f8e2c4c diff --git a/src/main/java/org/hedgecode/chess/scanner/portal/ChessGamesScanner.java b/src/main/java/org/hedgecode/chess/scanner/portal/ChessGamesScanner.java index 7658ba1..28493cf 100644 --- a/src/main/java/org/hedgecode/chess/scanner/portal/ChessGamesScanner.java +++ b/src/main/java/org/hedgecode/chess/scanner/portal/ChessGamesScanner.java @@ -47,6 +47,7 @@ public class ChessGamesScanner extends AbstractSettingsScanner { @Override public PGNTournament findTournament(String tournamentName) throws ChessHogScannerException { + PGNTournament tournament = null; Map result = matchMap( assignUrl( tournamentName, true @@ -54,7 +55,6 @@ public class ChessGamesScanner extends AbstractSettingsScanner { getSettings().getTournamentQueryUrlRegex(), true ); - PGNTournament tournament = null; for (Map.Entry entry : result.entrySet()) { if (entry.getValue().contains(tournamentName)) { // todo: contains? tournament = new PGNTournament( @@ -74,6 +74,11 @@ public class ChessGamesScanner extends AbstractSettingsScanner { String pgn = request( assignUrl(gameId) ); + if (!isPgnFormat(pgn)) { + throw new ChessHogScannerException( + String.format("Failed to get PGN for requesting game ID: %s", gameId) + ); + } return new PGNGame( gameId, pgn ); @@ -86,7 +91,21 @@ public class ChessGamesScanner extends AbstractSettingsScanner { @Override public PGNGame scanUrl(String gameUrl) throws ChessHogScannerException { - return null; + String pgn = regex( + request( + gameUrl + ), + getSettings().getGameUrlRegex() + ); + if (pgn == null || !isPgnFormat(pgn)) { + throw new ChessHogScannerException( + String.format("Failed to get PGN for requesting URL: %s", gameUrl) + ); + } + return new PGNGame( + null, + pgn + ); } private void assignTournamentGames(PGNTournament tournament) throws ChessHogScannerException {