aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/connector/gc
diff options
context:
space:
mode:
authorSammysHP <sven@sammyshp.de>2012-05-08 23:46:32 +0200
committerSammysHP <sven@sammyshp.de>2012-05-08 23:46:32 +0200
commitbfae2ebb59bb481a85ad4c19e9ce1fb7cec6248e (patch)
tree6b3733e1514171718d238273a14bad60d566e11d /main/src/cgeo/geocaching/connector/gc
parent26364ec2e322d44ae235b6cdb8827b5d12efa7b5 (diff)
downloadcgeo-bfae2ebb59bb481a85ad4c19e9ce1fb7cec6248e.zip
cgeo-bfae2ebb59bb481a85ad4c19e9ce1fb7cec6248e.tar.gz
cgeo-bfae2ebb59bb481a85ad4c19e9ce1fb7cec6248e.tar.bz2
Refactoring: Move some strings into GCConstants
Fix: issue with gc.com update Tests are not green because mocked data was not updated.
Diffstat (limited to 'main/src/cgeo/geocaching/connector/gc')
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCConstants.java13
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCParser.java19
2 files changed, 19 insertions, 13 deletions
diff --git a/main/src/cgeo/geocaching/connector/gc/GCConstants.java b/main/src/cgeo/geocaching/connector/gc/GCConstants.java
index 21dde03..ac38972 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCConstants.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCConstants.java
@@ -28,7 +28,7 @@ public final class GCConstants {
public final static Pattern PATTERN_HINT = Pattern.compile("<div id=\"div_hint\"[^>]*>(.*?)</div>");
public final static Pattern PATTERN_DESC = Pattern.compile("<span id=\"ctl00_ContentBody_LongDescription\">(.*?)</span>[^<]*</div>[^<]*<p>[^<]*</p>[^<]*<p>[^<]*<strong>\\W*Additional Hints</strong>");
public final static Pattern PATTERN_SHORTDESC = Pattern.compile("<span id=\"ctl00_ContentBody_ShortDescription\">(.*?)</span>[^\\w^<]*</div>");
- public final static Pattern PATTERN_GEOCODE = Pattern.compile("<meta name=\"og:url\" content=\"[^\"]+/(GC[0-9A-Z]+)\"");
+ public final static Pattern PATTERN_GEOCODE = Pattern.compile("class=\"CoordInfoCode\">(GC[0-9A-Z]+)</span>");
public final static Pattern PATTERN_CACHEID = Pattern.compile("/seek/log\\.aspx\\?ID=(\\d+)");
public final static Pattern PATTERN_GUID = Pattern.compile(Pattern.quote("&wid=") + "([0-9a-z\\-]+)" + Pattern.quote("&"));
public final static Pattern PATTERN_SIZE = Pattern.compile("<div class=\"CacheSize[^\"]*\">[^<]*<p[^>]*>[^S]*Size[^:]*:[^<]*<span[^>]*>[^<]*<img src=\"[^\"]*/icons/container/[a-z_]+\\.gif\" alt=\"\\w+: ([^\"]+)\"[^>]*>[^<]*<small>[^<]*</small>[^<]*</span>[^<]*</p>");
@@ -155,6 +155,17 @@ public final class GCConstants {
/** Live Map since 14.02.2012 */
public final static Pattern PATTERN_USERSESSION = Pattern.compile("UserSession\\('([^']+)'");
public final static Pattern PATTERN_SESSIONTOKEN = Pattern.compile("sessionToken:'([^']+)'");
+
+ public final static String STRING_PREMIUMONLY_2 = "Sorry, the owner of this listing has made it viewable to Premium Members only.";
+ public final static String STRING_PREMIUMONLY_1 = "has chosen to make this cache listing visible to Premium Members only.";
+ public final static String STRING_UNPUBLISHED_OWNER = "Cache is Unpublished";
+ public final static String STRING_UNPUBLISHED_OTHER = "you cannot view this cache listing until it has been published";
+ public final static String STRING_UNKNOWN_ERROR = "An Error Has Occurred";
+ public final static String STRING_CACHEINFORMATIONTABLE = "<div id=\"ctl00_ContentBody_CacheInformationTable\" class=\"CacheInformationTable\">";
+ public final static String STRING_DISABLED = "<li>This cache is temporarily unavailable.";
+ public final static String STRING_ARCHIVED = "<li>This cache has been archived,";
+ public final static String STRING_CACHEDETAILS = "id=\"cacheDetails\"";
+
/** Number of logs to retrieve from GC.com */
public final static int NUMBER_OF_LOGS = 35;
diff --git a/main/src/cgeo/geocaching/connector/gc/GCParser.java b/main/src/cgeo/geocaching/connector/gc/GCParser.java
index 37c5a96..a986a7b 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCParser.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCParser.java
@@ -338,31 +338,26 @@ public abstract class GCParser {
final SearchResult searchResult = new SearchResult();
- if (page.contains("Cache is Unpublished") || page.contains("you cannot view this cache listing until it has been published")) {
+ if (page.contains(GCConstants.STRING_UNPUBLISHED_OTHER) || page.contains(GCConstants.STRING_UNPUBLISHED_OWNER)) {
searchResult.setError(StatusCode.UNPUBLISHED_CACHE);
return searchResult;
}
- if (page.contains("Sorry, the owner of this listing has made it viewable to Premium Members only.")) {
- searchResult.setError(StatusCode.PREMIUM_ONLY);
- return searchResult;
- }
-
- if (page.contains("has chosen to make this cache listing visible to Premium Members only.")) {
+ if (page.contains(GCConstants.STRING_PREMIUMONLY_1) || page.contains(GCConstants.STRING_PREMIUMONLY_2)) {
searchResult.setError(StatusCode.PREMIUM_ONLY);
return searchResult;
}
final String cacheName = Html.fromHtml(BaseUtils.getMatch(page, GCConstants.PATTERN_NAME, true, "")).toString();
- if ("An Error Has Occurred".equalsIgnoreCase(cacheName)) {
+ if (GCConstants.STRING_UNKNOWN_ERROR.equalsIgnoreCase(cacheName)) {
searchResult.setError(StatusCode.UNKNOWN_ERROR);
return searchResult;
}
final cgCache cache = new cgCache();
- cache.setDisabled(page.contains("<li>This cache is temporarily unavailable."));
+ cache.setDisabled(page.contains(GCConstants.STRING_DISABLED));
- cache.setArchived(page.contains("<li>This cache has been archived,"));
+ cache.setArchived(page.contains(GCConstants.STRING_ARCHIVED));
cache.setPremiumMembersOnly(BaseUtils.matches(page, GCConstants.PATTERN_PREMIUMMEMBERS));
@@ -390,7 +385,7 @@ public abstract class GCParser {
String tableInside = page;
- int pos = tableInside.indexOf("id=\"cacheDetails\"");
+ int pos = tableInside.indexOf(GCConstants.STRING_CACHEDETAILS);
if (pos == -1) {
Log.e("cgeoBase.parseCache: ID \"cacheDetails\" not found on page");
return null;
@@ -398,7 +393,7 @@ public abstract class GCParser {
tableInside = tableInside.substring(pos);
- pos = tableInside.indexOf("<div class=\"CacheInformationTable\"");
+ pos = tableInside.indexOf(GCConstants.STRING_CACHEINFORMATIONTABLE);
if (pos == -1) {
Log.e("cgeoBase.parseCache: class \"CacheInformationTable\" not found on page");
return null;