aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorblafoo <github@blafoo.de>2012-05-16 21:55:49 +0200
committerblafoo <github@blafoo.de>2012-05-16 21:55:49 +0200
commite19127c1e27ee445c1249396badd23d03cffb6bf (patch)
treef3380eeb84d86788dd92afaf835a3d0bb6ad3051 /main
parentb7ea5565f8a9e48d1ca0841479793a3ef535e2c2 (diff)
downloadcgeo-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.java3
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCConstants.java2
-rw-r--r--main/src/cgeo/geocaching/connector/gc/Login.java6
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("[,.]", "")));