diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2013-08-05 18:37:50 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2013-08-05 18:37:50 +0200 |
| commit | 0751fb4bcb9f7a0b6916b81e686e777ec0cb0500 (patch) | |
| tree | 0590ca26baeddb6fed4bea2ac11fd6ff4ffce8f4 | |
| parent | 92eb649abc3b7c398c47864db8064b4a5c14d263 (diff) | |
| download | cgeo-0751fb4bcb9f7a0b6916b81e686e777ec0cb0500.zip cgeo-0751fb4bcb9f7a0b6916b81e686e777ec0cb0500.tar.gz cgeo-0751fb4bcb9f7a0b6916b81e686e777ec0cb0500.tar.bz2 | |
fix #2966: Event cache: parse the date from search results
| -rw-r--r-- | main/src/cgeo/geocaching/connector/gc/GCConstants.java | 2 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/connector/gc/Login.java | 24 |
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▼</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); } /** |
