public static List<Image> parseSpoiler(final String html) {
        final List<Image> cacheSpoilers = new ArrayList<>();
        final MatcherWrapper matcherSpoilersInside = new MatcherWrapper(GCConstants.PATTERN_SPOILER_IMAGE, html);
        while (matcherSpoilersInside.find()) {
            final String url = matcherSpoilersInside.group(1);

            String title = null;
            if (matcherSpoilersInside.group(2) != null) {
                title = matcherSpoilersInside.group(2);
            } else {
                title = LocalizationUtils.getString(R.string.image_listing_spoiler);
            }
            String description = LocalizationUtils.getString(R.string.image_listing_spoiler);
            if (matcherSpoilersInside.group(3) != null) {
                description += ": " + matcherSpoilersInside.group(3);
            }
            cacheSpoilers.add(new Image.Builder().setUrl(url).setTitle(title).setDescription(description).build());
        }
        return cacheSpoilers;
    }
Parse cache from text and return either an error code or a cache object in a pair. Note that inline logs are
not parsed nor saved, while the cache itself is.

@param pageIn  the page text to parse
@param handler the handler to send the progress notifications to
@return a pair, with a {@link StatusCode} on the left, and a non-null cache object on the right
iff the status code is {@link StatusCode#NO_ERROR}.
main/src/main/java/cgeo/geocaching/connector/gc/GCParser.java