private static Observable<LogEntry> getLogs(final String userToken, final Logs logType, final int take) {
        if (userToken.isEmpty()) {
            Log.e("GCParser.getLogs: unable to extract userToken");
            return Observable.empty();
        }

        return Observable.defer(() -> {
            final Parameters params = new Parameters(
                    "tkn", userToken,
                    "idx", "1",
                    "num", String.valueOf(take),
                    "decrypt", "false"); // fetch encrypted logs as such
            if (logType != Logs.ALL) {
                params.add(logType.getParamName(), Boolean.toString(Boolean.TRUE));
            }
            try {
                final InputStream responseStream =
                        Network.getResponseStream(Network.getRequest("https://www.geocaching.com/seek/geocache.logbook", params));
                if (responseStream == null) {
                    Log.w("getLogs: no logs were returned");
                    return Observable.empty();
                }
                return parseLogsAndClose(logType != Logs.ALL, responseStream);
            } catch (final Exception e) {
                Log.w("unable to read logs", e);
                return Observable.empty();
            }
        }).subscribeOn(AndroidRxUtils.networkScheduler);
    }
Extract special logs (friends, own) through separate request.

@param userToken the user token extracted from the web page
@param logType   the logType to request
@return Observable<LogEntry> The logs
main/src/main/java/cgeo/geocaching/connector/gc/GCParser.java