From e3f42ffc1c0c92af9c12bbf22e8342889c0638d8 Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sun, 8 Aug 2021 18:58:42 +0200 Subject: [PATCH] Improve account existance check for chaturbate --- .../sites/chaturbate/ChaturbateModel.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/common/src/main/java/ctbrec/sites/chaturbate/ChaturbateModel.java b/common/src/main/java/ctbrec/sites/chaturbate/ChaturbateModel.java index 7df4d588..611f75ca 100644 --- a/common/src/main/java/ctbrec/sites/chaturbate/ChaturbateModel.java +++ b/common/src/main/java/ctbrec/sites/chaturbate/ChaturbateModel.java @@ -12,6 +12,7 @@ import java.time.Duration; import java.time.Instant; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.Objects; import java.util.Optional; import java.util.concurrent.ExecutionException; @@ -339,4 +340,24 @@ public class ChaturbateModel extends AbstractModel { // NOSONAR } } } + + @Override + public boolean exists() throws IOException { + Request req = new Request.Builder() // @formatter:off + .url(getUrl()) + .header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent) + .header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage()) + .build(); // @formatter:on + try (Response response = getSite().getHttpClient().execute(req)) { + if (!response.isSuccessful() && response.code() == 404) { + return false; + } else { + String body = response.body().string(); + boolean banned = body.contains("This room has been banned"); + boolean deleted = body.contains("This account has been deleted"); + boolean redirectedToRoot = Objects.equals("/", response.request().url().encodedPath()); + return !(banned || deleted || redirectedToRoot); + } + } + } }