aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCConstants.java2
-rw-r--r--main/src/cgeo/geocaching/connector/gc/Login.java24
2 files changed, 14 insertions, 12 deletions
diff --git a/main/src/cgeo/geocaching/connector/gc/GCConstants.java b/main/src/cgeo/geocaching/connector/gc/GCConstants.java
index c2aeffd..e93df14 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCConstants.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCConstants.java
@@ -127,7 +127,7 @@ public final class GCConstants {
public final static Pattern PATTERN_SEARCH_TOTALCOUNT = Pattern.compile("<span>Total Records\\D*(\\d+)<");
public final static Pattern PATTERN_SEARCH_RECAPTCHA = Pattern.compile("<script[^>]*src=\"[^\"]*/recaptcha/api/challenge\\?k=([^\"]+)\"[^>]*>");
public final static Pattern PATTERN_SEARCH_RECAPTCHACHALLENGE = Pattern.compile("challenge : '([^']+)'");
- public final static Pattern PATTERN_SEARCH_HIDDEN_DATE = Pattern.compile("<span class=\"small\">([\\d-/]{6,10})</span>");
+ public final static Pattern PATTERN_SEARCH_HIDDEN_DATE = Pattern.compile("<td valign=\"top\"[^<]+<span class=\"small\">([^<]+)</span>");
/**
* Patterns for waypoints
diff --git a/main/src/cgeo/geocaching/connector/gc/Login.java b/main/src/cgeo/geocaching/connector/gc/Login.java
index 2629339..0d8fb05 100644
--- a/main/src/cgeo/geocaching/connector/gc/Login.java
+++ b/main/src/cgeo/geocaching/connector/gc/Login.java
@@ -30,20 +30,22 @@ import java.util.Map;
public abstract class Login {
+ private static final String DEFAULT_CUSTOM_DATE_FORMAT = "MM/dd/yyyy";
+
private final static String ENGLISH = "<a href=\"#\">English&#9660;</a>";
// false = not logged in
private static boolean actualLoginStatus = false;
- private static String actualUserName = "";
+ private static String actualUserName = StringUtils.EMPTY;
private static int actualCachesFound = -1;
- private static String actualStatus = "";
+ private static String actualStatus = StringUtils.EMPTY;
- private final static Map<String, SimpleDateFormat> gcCustomDateFormats;
+ private final static Map<String, SimpleDateFormat> GC_CUSTOM_DATE_FORMATS;
public static final String LANGUAGE_CHANGE_URI = "http://www.geocaching.com/my/souvenirs.aspx";
static {
final String[] formats = new String[] {
- "MM/dd/yyyy",
+ DEFAULT_CUSTOM_DATE_FORMAT,
"yyyy-MM-dd",
"yyyy/MM/dd",
"dd/MMM/yyyy",
@@ -58,7 +60,7 @@ public abstract class Login {
map.put(format, new SimpleDateFormat(format, Locale.ENGLISH));
}
- gcCustomDateFormats = Collections.unmodifiableMap(map);
+ GC_CUSTOM_DATE_FORMATS = Collections.unmodifiableMap(map);
}
public static StatusCode login() {
@@ -321,14 +323,14 @@ public abstract class Login {
final String trimmed = input.trim();
- if (gcCustomDateFormats.containsKey(format)) {
+ if (GC_CUSTOM_DATE_FORMATS.containsKey(format)) {
try {
- return gcCustomDateFormats.get(format).parse(trimmed);
+ return GC_CUSTOM_DATE_FORMATS.get(format).parse(trimmed);
} catch (final ParseException e) {
}
}
- for (final SimpleDateFormat sdf : gcCustomDateFormats.values()) {
+ for (final SimpleDateFormat sdf : GC_CUSTOM_DATE_FORMATS.values()) {
try {
return sdf.parse(trimmed);
} catch (final ParseException e) {
@@ -344,11 +346,11 @@ public abstract class Login {
public static SimpleDateFormat getCustomGcDateFormat() {
final String format = Settings.getGcCustomDate();
- if (gcCustomDateFormats.containsKey(format)) {
- return gcCustomDateFormats.get(format);
+ if (GC_CUSTOM_DATE_FORMATS.containsKey(format)) {
+ return GC_CUSTOM_DATE_FORMATS.get(format);
}
- return gcCustomDateFormats.get("MM/dd/yyyy");
+ return GC_CUSTOM_DATE_FORMATS.get(DEFAULT_CUSTOM_DATE_FORMAT);
}
/**