diff options
| author | blafoo <github@blafoo.de> | 2012-02-12 09:25:36 +0100 |
|---|---|---|
| committer | blafoo <github@blafoo.de> | 2012-02-12 09:25:36 +0100 |
| commit | 27cb6c53dbfb77f874c70f3804c1f1a9c2207cb0 (patch) | |
| tree | 1a8601dd1e6df0e124dadd97d079586e194ebf73 | |
| parent | fdbb52ced77f0e2a9273ee5b9efb2796e22ceb48 (diff) | |
| download | cgeo-27cb6c53dbfb77f874c70f3804c1f1a9c2207cb0.zip cgeo-27cb6c53dbfb77f874c70f3804c1f1a9c2207cb0.tar.gz cgeo-27cb6c53dbfb77f874c70f3804c1f1a9c2207cb0.tar.bz2 | |
Parse caches found correctly. Fixes #1107
| -rw-r--r-- | main/src/cgeo/geocaching/GCConstants.java | 3 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgBase.java | 4 | ||||
| -rw-r--r-- | tests/src/cgeo/geocaching/GCConstantsTest.java | 3 |
3 files changed, 6 insertions, 4 deletions
diff --git a/main/src/cgeo/geocaching/GCConstants.java b/main/src/cgeo/geocaching/GCConstants.java index 6127a7f..3e5c7c1 100644 --- a/main/src/cgeo/geocaching/GCConstants.java +++ b/main/src/cgeo/geocaching/GCConstants.java @@ -56,7 +56,8 @@ public final class GCConstants { // Info box top-right public static final Pattern PATTERN_LOGIN_NAME = Pattern.compile("\"SignedInProfileLink\">([^<]+)</a>"); public static final Pattern PATTERN_MEMBER_STATUS = Pattern.compile("<span id=\"ctl00_litPMLevel\" style=\"display: block;\">([^<]+)</span>"); - public static final Pattern PATTERN_CACHES_FOUND = Pattern.compile("title=\"Caches Found\"\\s*/>\\s*(\\d+)"); + /** Use replaceAll(",","") on the resulting string before converting to an int */ + public static final Pattern PATTERN_CACHES_FOUND = Pattern.compile("title=\"Caches Found\"\\s*/>\\s*([\\d,]+)"); public static final Pattern PATTERN_AVATAR_IMAGE_PROFILE_PAGE = Pattern.compile("<img src=\"(http://img.geocaching.com/user/avatar/[0-9a-f-]+\\.jpg)\"[^>]*\\salt=\"Avatar\""); public static final Pattern PATTERN_LOGIN_NAME_LOGIN_PAGE = Pattern.compile("<span class=\"Success\">You are logged in as[^<]*<strong[^>]*>([^<]+)</strong>[^<]*</span>"); public static final Pattern PATTERN_USERLOGGEDIN = Pattern.compile("<strong>Hello, <a href=\"/my/default.aspx\" title=\"View Profile for[^\"]*\" class=\"SignedInProfileLink\">(.*?)</a></strong>"); diff --git a/main/src/cgeo/geocaching/cgBase.java b/main/src/cgeo/geocaching/cgBase.java index e14d4c7..debb0d3 100644 --- a/main/src/cgeo/geocaching/cgBase.java +++ b/main/src/cgeo/geocaching/cgBase.java @@ -364,7 +364,7 @@ public class cgBase { if (cgBase.isActualLoginStatus()) { cgBase.setActualUserName(BaseUtils.getMatch(page, GCConstants.PATTERN_LOGIN_NAME, true, "???")); cgBase.setActualMemberStatus(BaseUtils.getMatch(page, GCConstants.PATTERN_MEMBER_STATUS, true, "???")); - cgBase.setActualCachesFound(Integer.parseInt(BaseUtils.getMatch(page, GCConstants.PATTERN_CACHES_FOUND, true, "0"))); + cgBase.setActualCachesFound(Integer.parseInt(BaseUtils.getMatch(page, GCConstants.PATTERN_CACHES_FOUND, true, "0").replaceAll(",", ""))); return true; } @@ -1414,7 +1414,7 @@ public class cgBase { Settings.setMemberStatus(BaseUtils.getMatch(profile, GCConstants.PATTERN_MEMBER_STATUS, true, null)); - setActualCachesFound(Integer.parseInt(BaseUtils.getMatch(profile, GCConstants.PATTERN_CACHES_FOUND, true, "-1"))); + setActualCachesFound(Integer.parseInt(BaseUtils.getMatch(profile, GCConstants.PATTERN_CACHES_FOUND, true, "-1").replaceAll(",", ""))); final String avatarURL = BaseUtils.getMatch(profile, GCConstants.PATTERN_AVATAR_IMAGE_PROFILE_PAGE, false, null); if (null != avatarURL) { diff --git a/tests/src/cgeo/geocaching/GCConstantsTest.java b/tests/src/cgeo/geocaching/GCConstantsTest.java index be7b5a8..696273d 100644 --- a/tests/src/cgeo/geocaching/GCConstantsTest.java +++ b/tests/src/cgeo/geocaching/GCConstantsTest.java @@ -20,9 +20,10 @@ public class GCConstantsTest extends AndroidTestCase { public static void testCacheCount() { assertCacheCount(149, "<strong><img src=\"/images/icons/icon_smile.png\" title=\"Caches Found\" /> 149</strong>"); assertCacheCount(491, MockedCache.readCachePage("GC2CJPF")); + assertCacheCount(1510, "<strong><img src=\"/images/icons/icon_smile.png\" title=\"Caches Found\" /> 1,510 · <img src=\"/images/challenges/types/sm/challenge.png\" title=\"Challenges Completed\" /> 2</strong>"); } private static void assertCacheCount(final int count, final String html) { - assertEquals(count, Integer.valueOf(BaseUtils.getMatch(html, GCConstants.PATTERN_CACHES_FOUND, true, "0")).intValue()); + assertEquals(count, Integer.parseInt(BaseUtils.getMatch(html, GCConstants.PATTERN_CACHES_FOUND, true, "0").replaceAll(",", ""))); } } |
