From 9958e04ef86d119f55165e8ec978058f8f241435 Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Mon, 17 Dec 2018 17:13:15 +0100 Subject: [PATCH] Make sure, that the model ID is set When a Streamate model is added by URL, make sure, that the ID is loaded, so that saving and loading works properly, since the ID is saved as site specific data. --- .../main/java/ctbrec/sites/streamate/Streamate.java | 8 +++++++- .../java/ctbrec/sites/streamate/StreamateModel.java | 10 +++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/ctbrec/sites/streamate/Streamate.java b/common/src/main/java/ctbrec/sites/streamate/Streamate.java index a86eb91b..d8870509 100644 --- a/common/src/main/java/ctbrec/sites/streamate/Streamate.java +++ b/common/src/main/java/ctbrec/sites/streamate/Streamate.java @@ -193,7 +193,13 @@ public class Streamate extends AbstractSite { Matcher m = Pattern.compile("https?://.*?streamate.com/cam/([^/]*?)/?").matcher(url); if (m.matches()) { String modelName = m.group(1); - return createModel(modelName); + StreamateModel model = (StreamateModel) createModel(modelName); + try { + model.loadModelInfo(); + } catch (IOException e) { + LOG.error("Couldn't load model info. This can cause problems with saving / loading the model"); + } + return model; } else { return super.createModelFromUrl(url); } diff --git a/common/src/main/java/ctbrec/sites/streamate/StreamateModel.java b/common/src/main/java/ctbrec/sites/streamate/StreamateModel.java index 55497e8a..cda334bb 100644 --- a/common/src/main/java/ctbrec/sites/streamate/StreamateModel.java +++ b/common/src/main/java/ctbrec/sites/streamate/StreamateModel.java @@ -37,6 +37,7 @@ public class StreamateModel extends AbstractModel { private List streamSources = new ArrayList<>(); private int[] resolution; private Long id; + private String streamId; @Override public boolean isOnline(boolean ignoreCache) throws IOException, ExecutionException, InterruptedException { @@ -218,6 +219,11 @@ public class StreamateModel extends AbstractModel { } private String getStreamId() throws IOException { + loadModelInfo(); + return streamId; + } + + void loadModelInfo() throws IOException { String url = "https://hybridclient.naiadsystems.com/api/v1/config/?name=" + getName() + "&sabasic=&sakey=&sk=www.streamate.com&userid=0&version=6.3.17&ajax=1"; Request request = new Request.Builder() @@ -232,7 +238,9 @@ public class StreamateModel extends AbstractModel { if(response.isSuccessful()) { JSONObject json = new JSONObject(response.body().string()); JSONObject stream = json.getJSONObject("stream"); - return stream.getString("streamId"); + streamId = stream.getString("streamId"); + JSONObject performer = json.getJSONObject("performer"); + id = performer.getLong("id"); } else { throw new HttpException(response.code(), response.message()); }