diff options
| author | blafoo <github@blafoo.de> | 2012-05-16 21:55:49 +0200 |
|---|---|---|
| committer | blafoo <github@blafoo.de> | 2012-05-16 21:55:49 +0200 |
| commit | e19127c1e27ee445c1249396badd23d03cffb6bf (patch) | |
| tree | f3380eeb84d86788dd92afaf835a3d0bb6ad3051 /main | |
| parent | b7ea5565f8a9e48d1ca0841479793a3ef535e2c2 (diff) | |
| download | cgeo-e19127c1e27ee445c1249396badd23d03cffb6bf.zip cgeo-e19127c1e27ee445c1249396badd23d03cffb6bf.tar.gz cgeo-e19127c1e27ee445c1249396badd23d03cffb6bf.tar.bz2 | |
Handle "Renew Your Membership!". Fixes #1224
Diffstat (limited to 'main')
| -rw-r--r-- | main/src/cgeo/geocaching/Settings.java | 3 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/connector/gc/GCConstants.java | 2 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/connector/gc/Login.java | 6 |
3 files changed, 10 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/Settings.java b/main/src/cgeo/geocaching/Settings.java index 82ab132..6e03465 100644 --- a/main/src/cgeo/geocaching/Settings.java +++ b/main/src/cgeo/geocaching/Settings.java @@ -1,6 +1,7 @@ package cgeo.geocaching; import cgeo.geocaching.apps.cache.navi.NavigationAppFactory.NavigationAppsEnum; +import cgeo.geocaching.connector.gc.GCConstants; import cgeo.geocaching.connector.gc.Login; import cgeo.geocaching.enumerations.CacheType; import cgeo.geocaching.enumerations.LiveMapStrategy.Strategy; @@ -265,7 +266,7 @@ public final class Settings { if (memberStatus == null) { return false; } - return "Premium Member".equalsIgnoreCase(memberStatus); + return GCConstants.MEMBER_STATUS_PM.equalsIgnoreCase(memberStatus); } public static String getMemberStatus() { diff --git a/main/src/cgeo/geocaching/connector/gc/GCConstants.java b/main/src/cgeo/geocaching/connector/gc/GCConstants.java index 8d3a1ae..96991f8 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCConstants.java +++ b/main/src/cgeo/geocaching/connector/gc/GCConstants.java @@ -65,6 +65,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\">([^<]+)</span>"); + public static final String MEMBER_STATUS_RENEW = "<a id=\"ctl00_hlRenew"; + public static final String MEMBER_STATUS_PM = "Premium Member"; /** Use replaceAll("[,.]","") on the resulting string before converting to an int */ public static final Pattern PATTERN_CACHES_FOUND = Pattern.compile("title=\"Caches Found\"[\\s\\w=\"/.]*/>\\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\""); diff --git a/main/src/cgeo/geocaching/connector/gc/Login.java b/main/src/cgeo/geocaching/connector/gc/Login.java index 113f581..c342dee 100644 --- a/main/src/cgeo/geocaching/connector/gc/Login.java +++ b/main/src/cgeo/geocaching/connector/gc/Login.java @@ -193,6 +193,9 @@ public abstract class Login { setActualUserName(BaseUtils.getMatch(page, GCConstants.PATTERN_LOGIN_NAME, true, "???")); setActualCachesFound(Integer.parseInt(BaseUtils.getMatch(page, GCConstants.PATTERN_CACHES_FOUND, true, "0").replaceAll("[,.]", ""))); Settings.setMemberStatus(BaseUtils.getMatch(page, GCConstants.PATTERN_MEMBER_STATUS, true, null)); + if ( page.contains(GCConstants.MEMBER_STATUS_RENEW) ) { + Settings.setMemberStatus(GCConstants.MEMBER_STATUS_PM); + } return true; } @@ -235,6 +238,9 @@ public abstract class Login { final String profile = BaseUtils.replaceWhitespace(Network.getResponseData(Network.getRequest("http://www.geocaching.com/my/"))); Settings.setMemberStatus(BaseUtils.getMatch(profile, GCConstants.PATTERN_MEMBER_STATUS, true, null)); + if (profile.contains(GCConstants.MEMBER_STATUS_RENEW)) { + Settings.setMemberStatus(GCConstants.MEMBER_STATUS_PM); + } setActualCachesFound(Integer.parseInt(BaseUtils.getMatch(profile, GCConstants.PATTERN_CACHES_FOUND, true, "-1").replaceAll("[,.]", ""))); |
