X-Git-Url: https://git.hedgecode.org/?p=chesshog-scanner.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fscanner%2Fportal%2FChessBombScanner.java;fp=src%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fscanner%2Fportal%2FChessBombScanner.java;h=9084f5a05ddb4c9c55f7b7e5ea4396c1b50c42cf;hp=7b19256218f7c9e56938b1a14ac70ef9bfc0acfe;hb=cbcefd2f85fa56b769bc211a134c7df1e97ef0be;hpb=8b5e21d880364363f4f8d51e126c1db91f8e2c4c diff --git a/src/main/java/org/hedgecode/chess/scanner/portal/ChessBombScanner.java b/src/main/java/org/hedgecode/chess/scanner/portal/ChessBombScanner.java index 7b19256..9084f5a 100644 --- a/src/main/java/org/hedgecode/chess/scanner/portal/ChessBombScanner.java +++ b/src/main/java/org/hedgecode/chess/scanner/portal/ChessBombScanner.java @@ -44,7 +44,7 @@ public class ChessBombScanner extends AbstractSettingsScanner { public PGNTournament scanTournament(String tournamentId) throws ChessHogScannerException { String decodeTournament = decodeUrlByRegex( assignUrl(tournamentId, null), - getSettings().getTournamentGamesUrlRegex() + getSettings().getTournamentJsonUrlRegex() ); TournamentFormat tournamentFormat = Format.formatTournament(decodeTournament); @@ -87,9 +87,24 @@ public class ChessBombScanner extends AbstractSettingsScanner { @Override public PGNGame scanGame(String gameId, String tournamentId) throws ChessHogScannerException { - String decodeGame = decodeUrlByRegex( + return scanGameByRegex( assignUrl(gameId, tournamentId, true), - getSettings().getGameUrlRegex() + getSettings().getGameJsonUrlRegex() + ); + } + + @Override + public PGNGame scanUrl(String gameUrl) throws ChessHogScannerException { + return scanGameByRegex( + gameUrl, + getSettings().getGameJsonUrlRegex() + ); + } + + private PGNGame scanGameByRegex(String gameUrl, String regex) throws ChessHogScannerException { + String decodeGame = decodeUrlByRegex( + gameUrl, + regex ); GameFormat gameFormat = Format.formatGame(decodeGame); @@ -100,18 +115,21 @@ public class ChessBombScanner extends AbstractSettingsScanner { ); } - @Override - public PGNGame scanUrl(String gameUrl) throws ChessHogScannerException { - return null; - } private String decodeUrlByRegex(String url, String regex) throws ChessHogScannerException { String encodeString = match( url, regex ); + if (encodeString == null) { + throw new ChessHogScannerException( + String.format("Failed to decode source data for requesting URL: %s", url) + ); + } return new String( - Base64.getDecoder().decode(encodeString) + Base64.getDecoder().decode( + encodeString + ) ); }