Fix Cherry TV search
This commit is contained in:
parent
02dc6d6fdb
commit
541fcf5bc7
|
@ -23,6 +23,7 @@ import java.util.regex.Pattern;
|
||||||
import static ctbrec.Model.State.OFFLINE;
|
import static ctbrec.Model.State.OFFLINE;
|
||||||
import static ctbrec.Model.State.ONLINE;
|
import static ctbrec.Model.State.ONLINE;
|
||||||
import static ctbrec.io.HttpConstants.*;
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||||
|
|
||||||
public class CherryTv extends AbstractSite {
|
public class CherryTv extends AbstractSite {
|
||||||
|
|
||||||
|
@ -107,15 +108,10 @@ public class CherryTv extends AbstractSite {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean searchRequiresLogin() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Model> search(String q) throws IOException, InterruptedException {
|
public List<Model> search(String q) throws IOException, InterruptedException {
|
||||||
String url = "https://cherry.tv/graphql?operationName=findStreamersBySearch&variables="
|
String url = "https://api.cherry.tv/graphql?operationName=Search&variables="
|
||||||
+ "{\"limit\":6,\"slug\":\"" + URLEncoder.encode(q, "utf-8") + "\"}&extensions={\"persistedQuery\":{\"version\":1,\"sha256Hash\":\"03d2f017fee32e1b6a1d3f816ce226c464a78d8dab28895c321980fbadffc1ef\"}}";
|
+ "{\"limit\":6,\"slug\":\"" + URLEncoder.encode(q, UTF_8) + "\"}&extensions={\"persistedQuery\":{\"version\":1,\"sha256Hash\":\"b6b001b46111c5634b5d3f48caa5ad38e747d74a5c841f447f0094e7f2bc2fb1\"}}";
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header(USER_AGENT, getConfig().getSettings().httpUserAgent)
|
.header(USER_AGENT, getConfig().getSettings().httpUserAgent)
|
||||||
|
@ -131,18 +127,16 @@ public class CherryTv extends AbstractSite {
|
||||||
JSONObject json = new JSONObject(Objects.requireNonNull(response.body()).string());
|
JSONObject json = new JSONObject(Objects.requireNonNull(response.body()).string());
|
||||||
LOG.trace(json.toString(2));
|
LOG.trace(json.toString(2));
|
||||||
JSONObject data = json.getJSONObject("data");
|
JSONObject data = json.getJSONObject("data");
|
||||||
JSONObject searchResult = data.getJSONObject("searchResult");
|
JSONArray streamers = data.getJSONArray("search");
|
||||||
JSONArray streamers = searchResult.getJSONArray("streamers");
|
|
||||||
for (int i = 0; i < streamers.length(); i++) {
|
for (int i = 0; i < streamers.length(); i++) {
|
||||||
JSONObject hit = streamers.getJSONObject(i);
|
JSONObject hit = streamers.getJSONObject(i);
|
||||||
CherryTvModel model = createModel(hit.getString("username"));
|
CherryTvModel model = createModel(hit.getString("id"));
|
||||||
model.setId(hit.getString("id"));
|
model.setId(hit.getString("id"));
|
||||||
boolean online = hit.optString("showStatus").equalsIgnoreCase("Public")
|
boolean online = hit.optString("broadcastStatus").equalsIgnoreCase("Live");
|
||||||
&& hit.optString("broadcastStatus").equalsIgnoreCase("Live");
|
|
||||||
model.setOnline(online);
|
model.setOnline(online);
|
||||||
model.setOnlineState(online ? ONLINE : OFFLINE);
|
model.setOnlineState(online ? ONLINE : OFFLINE);
|
||||||
model.setDescription(hit.getString("description"));
|
model.setDescription(hit.getString("description"));
|
||||||
model.setPreview(hit.getString("imageUrl"));
|
model.setPreview(hit.getString("image"));
|
||||||
result.add(model);
|
result.add(model);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue