X-Git-Url: https://git.hedgecode.org/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fscanner%2Fportal%2FAbstractSettingsScanner.java;fp=src%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fscanner%2Fportal%2FAbstractSettingsScanner.java;h=445b603706b90fb35ee463f0d94edcf83283dfae;hb=cbcefd2f85fa56b769bc211a134c7df1e97ef0be;hp=0910047ac0d4c11eebda5b5ec16780d48fb17e3b;hpb=8b5e21d880364363f4f8d51e126c1db91f8e2c4c;p=chesshog-scanner.git diff --git a/src/main/java/org/hedgecode/chess/scanner/portal/AbstractSettingsScanner.java b/src/main/java/org/hedgecode/chess/scanner/portal/AbstractSettingsScanner.java index 0910047..445b603 100644 --- a/src/main/java/org/hedgecode/chess/scanner/portal/AbstractSettingsScanner.java +++ b/src/main/java/org/hedgecode/chess/scanner/portal/AbstractSettingsScanner.java @@ -16,6 +16,9 @@ package org.hedgecode.chess.scanner.portal; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + import org.hedgecode.chess.scanner.ChessHogScannerException; import org.hedgecode.chess.scanner.Initiable; import org.hedgecode.chess.scanner.Settings; @@ -24,6 +27,7 @@ import org.hedgecode.chess.scanner.regex.RegexBuilder; import org.hedgecode.chess.scanner.regex.RegexParams; import org.hedgecode.chess.scanner.spi.ServiceRegistry; +import static org.hedgecode.chess.scanner.ChessHogScannerConstants.*; import static org.hedgecode.chess.scanner.regex.RegexBuilder.Type; /** @@ -102,6 +106,18 @@ public abstract class AbstractSettingsScanner extends AbstractRequestScanner imp ); } + protected String regex(String source, String regex) { + Matcher matcher = Pattern.compile(regex, Pattern.MULTILINE).matcher(source); + if (matcher.find()) { + return matcher.groupCount() > 0 ? matcher.group(1) : matcher.group(); + } + return null; + } + + protected boolean isPgnFormat(String source) { + return regex(source, PGN_DETECT_REGEX) != null; + } + private String assignUrlWithParams(String url, String params) { return params != null ? url.concat(params)