diff --git a/src/main/java/ctbrec/sites/chaturbate/ChaturbateUpdateService.java b/src/main/java/ctbrec/sites/chaturbate/ChaturbateUpdateService.java index 3d2dfe90..612602c0 100644 --- a/src/main/java/ctbrec/sites/chaturbate/ChaturbateUpdateService.java +++ b/src/main/java/ctbrec/sites/chaturbate/ChaturbateUpdateService.java @@ -1,11 +1,13 @@ package ctbrec.sites.chaturbate; import java.io.IOException; +import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; +import org.eclipse.jetty.util.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,18 +46,22 @@ public class ChaturbateUpdateService extends PaginatedScheduledService { return new Task>() { @Override public List call() throws IOException { - String url = ChaturbateUpdateService.this.url + "?page="+page+"&keywords=&_=" + System.currentTimeMillis(); - LOG.debug("Fetching page {}", url); - Request request = new Request.Builder().url(url).build(); - Response response = chaturbate.getHttpClient().execute(request, loginRequired); - if (response.isSuccessful()) { - List models = ChaturbateModelParser.parseModels(chaturbate, response.body().string()); - response.close(); - return models; + if(loginRequired && StringUtil.isBlank(ctbrec.Config.getInstance().getSettings().username)) { + return Collections.emptyList(); } else { - int code = response.code(); - response.close(); - throw new IOException("HTTP status " + code); + String url = ChaturbateUpdateService.this.url + "?page="+page+"&keywords=&_=" + System.currentTimeMillis(); + LOG.debug("Fetching page {}", url); + Request request = new Request.Builder().url(url).build(); + Response response = chaturbate.getHttpClient().execute(request, loginRequired); + if (response.isSuccessful()) { + List models = ChaturbateModelParser.parseModels(chaturbate, response.body().string()); + response.close(); + return models; + } else { + int code = response.code(); + response.close(); + throw new IOException("HTTP status " + code); + } } } }; diff --git a/src/main/java/ctbrec/sites/mfc/FriendsUpdateService.java b/src/main/java/ctbrec/sites/mfc/FriendsUpdateService.java index a66712fb..e569f14b 100644 --- a/src/main/java/ctbrec/sites/mfc/FriendsUpdateService.java +++ b/src/main/java/ctbrec/sites/mfc/FriendsUpdateService.java @@ -3,9 +3,11 @@ package ctbrec.sites.mfc; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.stream.Collectors; +import org.eclipse.jetty.util.StringUtil; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,57 +38,60 @@ public class FriendsUpdateService extends PaginatedScheduledService { return new Task>() { @Override public List call() throws IOException { - List models = new ArrayList<>(); - String url = myFreeCams.getBaseUrl() + "/php/manage_lists2.php?passcode=&list_type=friends&data_mode=online&get_user_list=1"; - Request req = new Request.Builder() - .url(url) - .header("Referer", myFreeCams.getBaseUrl()) - .build(); - Response resp = myFreeCams.getHttpClient().execute(req, true); - if(resp.isSuccessful()) { - String json = resp.body().string().substring(4); - try { - JSONObject object = new JSONObject(json); - for (String key : object.keySet()) { - int uid = Integer.parseInt(key); - MyFreeCamsModel model = MyFreeCamsClient.getInstance().getModel(uid); - if(model == null) { - JSONObject modelObject = object.getJSONObject(key); - String name = modelObject.getString("u"); - model = myFreeCams.createModel(name); - SessionState st = new SessionState(); - st.setM(new ctbrec.sites.mfc.Model()); - st.getM().setCamscore(0.0); - st.setU(new User()); - st.setUid(uid); - st.setLv(modelObject.getInt("lv")); - st.setVs(127); - - model.update(st, myFreeCams.getClient().getStreamUrl(st)); - } - models.add(model); - } - } catch(Exception e) { - LOG.info("JSON: {}", json); - throw e; - } + if(StringUtil.isBlank(ctbrec.Config.getInstance().getSettings().username)) { + return Collections.emptyList(); } else { - LOG.error("Couldn't load friends list {} {}", resp.code(), resp.message()); - resp.close(); - } - boolean filterOnline = mode == Mode.ONLINE; - return models.stream() - .filter(m -> { - try { - return m.isOnline() == filterOnline; - } catch(Exception e) { - return false; + List models = new ArrayList<>(); + String url = myFreeCams.getBaseUrl() + "/php/manage_lists2.php?passcode=&list_type=friends&data_mode=online&get_user_list=1"; + Request req = new Request.Builder() + .url(url) + .header("Referer", myFreeCams.getBaseUrl()) + .build(); + Response resp = myFreeCams.getHttpClient().execute(req, true); + if(resp.isSuccessful()) { + String body = resp.body().string().substring(4); + try { + JSONObject json = new JSONObject(body); + for (String key : json.keySet()) { + int uid = Integer.parseInt(key); + MyFreeCamsModel model = MyFreeCamsClient.getInstance().getModel(uid); + if(model == null) { + JSONObject modelObject = json.getJSONObject(key); + String name = modelObject.getString("u"); + model = myFreeCams.createModel(name); + SessionState st = new SessionState(); + st.setM(new ctbrec.sites.mfc.Model()); + st.getM().setCamscore(0.0); + st.setU(new User()); + st.setUid(uid); + st.setLv(modelObject.getInt("lv")); + st.setVs(127); + + model.update(st, myFreeCams.getClient().getStreamUrl(st)); + } + models.add(model); } - }) - .sorted((m1,m2) -> (int)(m2.getCamScore() - m1.getCamScore())) - .skip((page-1) * 50) - .limit(50) - .collect(Collectors.toList()); + } catch(Exception e) { + LOG.info("Exception getting friends list. Response was: {}", body); + } + } else { + LOG.error("Couldn't load friends list {} {}", resp.code(), resp.message()); + resp.close(); + } + boolean filterOnline = mode == Mode.ONLINE; + return models.stream() + .filter(m -> { + try { + return m.isOnline() == filterOnline; + } catch(Exception e) { + return false; + } + }) + .sorted((m1,m2) -> (int)(m2.getCamScore() - m1.getCamScore())) + .skip((page-1) * 50) + .limit(50) + .collect(Collectors.toList()); + } } }; }