Fix Cam4 search

This commit is contained in:
0xb00bface 2021-01-13 20:22:11 +01:00
parent 3d4bd6f331
commit ed3a370d18
2 changed files with 65 additions and 31 deletions

View File

@ -1,15 +1,7 @@
package ctbrec.io; package ctbrec.io;
import com.squareup.moshi.JsonAdapter; import static java.nio.charset.StandardCharsets.*;
import com.squareup.moshi.Moshi;
import ctbrec.Config;
import ctbrec.Settings.ProxyType;
import okhttp3.*;
import okhttp3.OkHttpClient.Builder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.net.ssl.*;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
@ -21,11 +13,40 @@ import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom; import java.security.SecureRandom;
import java.security.cert.CertificateException; import java.security.cert.CertificateException;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static java.nio.charset.StandardCharsets.UTF_8; import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.squareup.moshi.JsonAdapter;
import com.squareup.moshi.Moshi;
import ctbrec.Config;
import ctbrec.Settings.ProxyType;
import okhttp3.ConnectionPool;
import okhttp3.Cookie;
import okhttp3.Credentials;
import okhttp3.OkHttpClient;
import okhttp3.OkHttpClient.Builder;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.Route;
import okhttp3.WebSocket;
import okhttp3.WebSocketListener;
public abstract class HttpClient { public abstract class HttpClient {
private static final Logger LOG = LoggerFactory.getLogger(HttpClient.class); private static final Logger LOG = LoggerFactory.getLogger(HttpClient.class);
@ -268,10 +289,22 @@ public abstract class HttpClient {
} }
public static String bodyToJsonObject(Response response) { public static String bodyToJsonObject(Response response) {
return Optional.ofNullable(response.body()).map(Object::toString).orElse("{}"); return Optional.ofNullable(response.body()).map(b -> {
try {
return b.string();
} catch (IOException e) {
return "{}";
}
}).orElse("{}");
} }
public static String bodyToJsonArray(Response response) { public static String bodyToJsonArray(Response response) {
return Optional.ofNullable(response.body()).map(Object::toString).orElse("[]"); return Optional.ofNullable(response.body()).map(b -> {
try {
return b.string();
} catch (IOException e) {
return "[]";
}
}).orElse("[]");
} }
} }

View File

@ -1,5 +1,18 @@
package ctbrec.sites.cam4; package ctbrec.sites.cam4;
import static ctbrec.io.HttpClient.*;
import static ctbrec.io.HttpConstants.*;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.json.JSONArray;
import org.json.JSONObject;
import ctbrec.Config; import ctbrec.Config;
import ctbrec.Model; import ctbrec.Model;
import ctbrec.StringUtil; import ctbrec.StringUtil;
@ -8,18 +21,6 @@ import ctbrec.io.HttpException;
import ctbrec.sites.AbstractSite; import ctbrec.sites.AbstractSite;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static ctbrec.io.HttpClient.bodyToJsonObject;
import static ctbrec.io.HttpConstants.USER_AGENT;
public class Cam4 extends AbstractSite { public class Cam4 extends AbstractSite {
@ -130,7 +131,7 @@ public class Cam4 extends AbstractSite {
.build(); .build();
try (Response response = getHttpClient().execute(req)) { try (Response response = getHttpClient().execute(req)) {
if (response.isSuccessful()) { if (response.isSuccessful()) {
String body = bodyToJsonObject(response); String body = bodyToJsonArray(response);
JSONArray results = new JSONArray(body); JSONArray results = new JSONArray(body);
for (int i = 0; i < results.length(); i++) { for (int i = 0; i < results.length(); i++) {
JSONObject result = results.getJSONObject(i); JSONObject result = results.getJSONObject(i);