From 25ccd0fd5d5a640bc2dac646f2d760b5d64b989b Mon Sep 17 00:00:00 2001 From: gotty Date: Sun, 19 Jan 2020 00:00:04 +0300 Subject: [PATCH] [LIB-13] Stub scanners for some portals --- .../hedgecode/chess/scanner/ChessHogScanner.java | 4 ++ .../chess/scanner/portal/Chess24Scanner.java | 71 ++++++++++++++++++++++ .../chess/scanner/portal/ChessBombScanner.java | 3 +- .../chess/scanner/portal/ChessComScanner.java | 71 ++++++++++++++++++++++ .../chess/scanner/portal/ChessGamesScanner.java | 3 +- .../chess/scanner/portal/LiChessScanner.java | 3 +- src/main/resources/settings/chess24.settings | 2 + src/main/resources/settings/chesscom.settings | 2 + 8 files changed, 156 insertions(+), 3 deletions(-) create mode 100644 src/main/java/org/hedgecode/chess/scanner/portal/Chess24Scanner.java create mode 100644 src/main/java/org/hedgecode/chess/scanner/portal/ChessComScanner.java create mode 100644 src/main/resources/settings/chess24.settings create mode 100644 src/main/resources/settings/chesscom.settings diff --git a/src/main/java/org/hedgecode/chess/scanner/ChessHogScanner.java b/src/main/java/org/hedgecode/chess/scanner/ChessHogScanner.java index fdb5036..91a05c8 100644 --- a/src/main/java/org/hedgecode/chess/scanner/ChessHogScanner.java +++ b/src/main/java/org/hedgecode/chess/scanner/ChessHogScanner.java @@ -24,7 +24,9 @@ import java.util.Map; import java.util.Set; import org.hedgecode.chess.scanner.entity.PGNGame; +import org.hedgecode.chess.scanner.portal.Chess24Scanner; import org.hedgecode.chess.scanner.portal.ChessBombScanner; +import org.hedgecode.chess.scanner.portal.ChessComScanner; import org.hedgecode.chess.scanner.portal.ChessGamesScanner; import org.hedgecode.chess.scanner.portal.LiChessScanner; @@ -42,6 +44,8 @@ public final class ChessHogScanner { put( ScannerType.CHESSGAMES, new ChessGamesScanner() ); put( ScannerType.LICHESS, new LiChessScanner() ); put( ScannerType.CHESSBOMB, new ChessBombScanner() ); + put( ScannerType.CHESS24, new Chess24Scanner() ); + put( ScannerType.CHESSCOM, new ChessComScanner() ); } }; diff --git a/src/main/java/org/hedgecode/chess/scanner/portal/Chess24Scanner.java b/src/main/java/org/hedgecode/chess/scanner/portal/Chess24Scanner.java new file mode 100644 index 0000000..6d4b18c --- /dev/null +++ b/src/main/java/org/hedgecode/chess/scanner/portal/Chess24Scanner.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2019-2020. Developed by Hedgecode. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.hedgecode.chess.scanner.portal; + +import org.hedgecode.chess.scanner.ChessHogScannerException; +import org.hedgecode.chess.scanner.Scanner; +import org.hedgecode.chess.scanner.entity.PGNGame; +import org.hedgecode.chess.scanner.entity.PGNTournament; + +/** + * Chess24Scanner + * + * @author Dmitry Samoshin aka gotty + */ +public class Chess24Scanner extends AbstractSettingsScanner implements Scanner { + + private static final String SETTINGS_FILENAME = "chess24.settings"; + + @Override + protected String getResourceName() { + return SETTINGS_FILENAME; + } + + @Override + public PGNTournament scanTournament(String tournamentId) throws ChessHogScannerException { + throw new ChessHogScannerException( + "The scanner functional of portal chess24.com is under development!" + ); + } + + @Override + public PGNTournament findTournament(String tournamentName) throws ChessHogScannerException { + throw new ChessHogScannerException( + "The scanner functional of portal chess24.com is under development!" + ); + } + + @Override + public PGNGame scanGame(String gameId) throws ChessHogScannerException { + return scanGame(gameId, null); + } + + @Override + public PGNGame scanGame(String gameId, String tournamentId) throws ChessHogScannerException { + throw new ChessHogScannerException( + "The scanner functional of portal chess24.com is under development!" + ); + } + + @Override + public PGNGame scanUrl(String gameUrl) throws ChessHogScannerException { + throw new ChessHogScannerException( + "The scanner functional of portal chess24.com is under development!" + ); + } + +} 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 0a7c2ae..6139ed4 100644 --- a/src/main/java/org/hedgecode/chess/scanner/portal/ChessBombScanner.java +++ b/src/main/java/org/hedgecode/chess/scanner/portal/ChessBombScanner.java @@ -19,6 +19,7 @@ package org.hedgecode.chess.scanner.portal; import java.util.Base64; import org.hedgecode.chess.scanner.ChessHogScannerException; +import org.hedgecode.chess.scanner.Scanner; import org.hedgecode.chess.scanner.entity.PGNGame; import org.hedgecode.chess.scanner.entity.PGNTournament; import org.hedgecode.chess.scanner.format.chessbomb.ArenaFormat; @@ -31,7 +32,7 @@ import org.hedgecode.chess.scanner.format.chessbomb.TournamentFormat; * * @author Dmitry Samoshin aka gotty */ -public class ChessBombScanner extends AbstractSettingsScanner { +public class ChessBombScanner extends AbstractSettingsScanner implements Scanner { private static final String SETTINGS_FILENAME = "chessbomb.settings"; diff --git a/src/main/java/org/hedgecode/chess/scanner/portal/ChessComScanner.java b/src/main/java/org/hedgecode/chess/scanner/portal/ChessComScanner.java new file mode 100644 index 0000000..a7f94cd --- /dev/null +++ b/src/main/java/org/hedgecode/chess/scanner/portal/ChessComScanner.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2019-2020. Developed by Hedgecode. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.hedgecode.chess.scanner.portal; + +import org.hedgecode.chess.scanner.ChessHogScannerException; +import org.hedgecode.chess.scanner.Scanner; +import org.hedgecode.chess.scanner.entity.PGNGame; +import org.hedgecode.chess.scanner.entity.PGNTournament; + +/** + * ChessComScanner + * + * @author Dmitry Samoshin aka gotty + */ +public class ChessComScanner extends AbstractSettingsScanner implements Scanner { + + private static final String SETTINGS_FILENAME = "chesscom.settings"; + + @Override + protected String getResourceName() { + return SETTINGS_FILENAME; + } + + @Override + public PGNTournament scanTournament(String tournamentId) throws ChessHogScannerException { + throw new ChessHogScannerException( + "The scanner functional of portal chess.com is under development!" + ); + } + + @Override + public PGNTournament findTournament(String tournamentName) throws ChessHogScannerException { + throw new ChessHogScannerException( + "The scanner functional of portal chess.com is under development!" + ); + } + + @Override + public PGNGame scanGame(String gameId) throws ChessHogScannerException { + return scanGame(gameId, null); + } + + @Override + public PGNGame scanGame(String gameId, String tournamentId) throws ChessHogScannerException { + throw new ChessHogScannerException( + "The scanner functional of portal chess.com is under development!" + ); + } + + @Override + public PGNGame scanUrl(String gameUrl) throws ChessHogScannerException { + throw new ChessHogScannerException( + "The scanner functional of portal chess.com is under development!" + ); + } + +} 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 28493cf..dfca440 100644 --- a/src/main/java/org/hedgecode/chess/scanner/portal/ChessGamesScanner.java +++ b/src/main/java/org/hedgecode/chess/scanner/portal/ChessGamesScanner.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; import org.hedgecode.chess.scanner.ChessHogScannerException; +import org.hedgecode.chess.scanner.Scanner; import org.hedgecode.chess.scanner.entity.PGNGame; import org.hedgecode.chess.scanner.entity.PGNTournament; @@ -29,7 +30,7 @@ import org.hedgecode.chess.scanner.entity.PGNTournament; * * @author Dmitry Samoshin aka gotty */ -public class ChessGamesScanner extends AbstractSettingsScanner { +public class ChessGamesScanner extends AbstractSettingsScanner implements Scanner { private static final String SETTINGS_FILENAME = "chessgames.settings"; diff --git a/src/main/java/org/hedgecode/chess/scanner/portal/LiChessScanner.java b/src/main/java/org/hedgecode/chess/scanner/portal/LiChessScanner.java index 18497a1..e43795a 100644 --- a/src/main/java/org/hedgecode/chess/scanner/portal/LiChessScanner.java +++ b/src/main/java/org/hedgecode/chess/scanner/portal/LiChessScanner.java @@ -21,6 +21,7 @@ import java.util.List; import org.apache.commons.text.StringEscapeUtils; import org.hedgecode.chess.scanner.ChessHogScannerException; +import org.hedgecode.chess.scanner.Scanner; import org.hedgecode.chess.scanner.entity.PGNGame; import org.hedgecode.chess.scanner.entity.PGNTournament; import org.hedgecode.chess.scanner.format.lichess.Format; @@ -33,7 +34,7 @@ import static org.hedgecode.chess.scanner.ChessHogScannerConstants.*; * * @author Dmitry Samoshin aka gotty */ -public class LiChessScanner extends AbstractSettingsScanner { +public class LiChessScanner extends AbstractSettingsScanner implements Scanner { private static final String SETTINGS_FILENAME = "lichess.settings"; diff --git a/src/main/resources/settings/chess24.settings b/src/main/resources/settings/chess24.settings new file mode 100644 index 0000000..7a73a41 --- /dev/null +++ b/src/main/resources/settings/chess24.settings @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/src/main/resources/settings/chesscom.settings b/src/main/resources/settings/chesscom.settings new file mode 100644 index 0000000..7a73a41 --- /dev/null +++ b/src/main/resources/settings/chesscom.settings @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file -- 2.10.0