From d67d24bdcab48dcb21518a58c116fe23cd2356ae Mon Sep 17 00:00:00 2001 From: Bananeweizen Date: Wed, 3 Jul 2013 20:57:15 +0200 Subject: fix #2951: Amount of favorite points not shown in search results --- main/src/cgeo/geocaching/connector/gc/GCConstants.java | 6 +++--- main/src/cgeo/geocaching/connector/gc/GCParser.java | 11 +++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'main') diff --git a/main/src/cgeo/geocaching/connector/gc/GCConstants.java b/main/src/cgeo/geocaching/connector/gc/GCConstants.java index f2e2e69..e9aa4e2 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCConstants.java +++ b/main/src/cgeo/geocaching/connector/gc/GCConstants.java @@ -122,9 +122,9 @@ public final class GCConstants { public final static Pattern PATTERN_SEARCH_DIFFICULTY_TERRAIN = Pattern.compile("([0-5]([\\.,]5)?)/([0-5]([\\.,]5)?)
"); public final static Pattern PATTERN_SEARCH_CONTAINER = Pattern.compile("([0-9]+)"); - public final static Pattern PATTERN_SEARCH_TOTALCOUNT = Pattern.compile("Total Records[^<]*(\\d+)<\\/b>"); + public final static Pattern PATTERN_SEARCH_ID = Pattern.compile("name=\"CID\"[^v]*value=\"(\\d+)\""); + public final static Pattern PATTERN_SEARCH_FAVORITE = Pattern.compile("favorite-rank\">([0-9,.]+)"); + public final static Pattern PATTERN_SEARCH_TOTALCOUNT = Pattern.compile("Total Records\\D*(\\d+)<"); public final static Pattern PATTERN_SEARCH_RECAPTCHA = Pattern.compile("]*src=\"[^\"]*/recaptcha/api/challenge\\?k=([^\"]+)\"[^>]*>"); public final static Pattern PATTERN_SEARCH_RECAPTCHACHALLENGE = Pattern.compile("challenge : '([^']+)'"); diff --git a/main/src/cgeo/geocaching/connector/gc/GCParser.java b/main/src/cgeo/geocaching/connector/gc/GCParser.java index 3e26eb2..8464c7d 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCParser.java +++ b/main/src/cgeo/geocaching/connector/gc/GCParser.java @@ -237,7 +237,7 @@ public abstract class GCParser { // favorite count try { - result = TextUtils.getMatch(row, GCConstants.PATTERN_SEARCH_FAVORITE, false, 1, null, true); + result = getNumberString(TextUtils.getMatch(row, GCConstants.PATTERN_SEARCH_FAVORITE, false, 1, null, true)); if (null != result) { cache.setFavoritePoints(Integer.parseInt(result)); } @@ -626,7 +626,7 @@ public abstract class GCParser { while (matcherLog.find()) { final String typeStr = matcherLog.group(1); - final String countStr = matcherLog.group(2).replaceAll("[.,]", ""); + final String countStr = getNumberString(matcherLog.group(2)); if (StringUtils.isNotBlank(typeStr) && LogType.UNKNOWN != LogType.getByIconName(typeStr) @@ -736,6 +736,13 @@ public abstract class GCParser { return searchResult; } + private static String getNumberString(final String numberWithPunctuation) { + if (numberWithPunctuation == null) { + return null; + } + return numberWithPunctuation.replaceAll("[.,]", ""); + } + public static SearchResult searchByNextPage(final SearchResult search, boolean showCaptcha, RecaptchaReceiver recaptchaReceiver) { if (search == null) { return search; -- cgit v1.1