From c9cd6e825dad3cac47694d8944cedbf2b7ff8923 Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sat, 19 Dec 2020 18:07:30 +0100 Subject: [PATCH] Add Model.exists to check, if a model account exists --- .../src/main/java/ctbrec/ui/JavaFxModel.java | 5 +++++ .../ui/action/CheckModelAccountAction.java | 13 ++----------- common/src/main/java/ctbrec/AbstractModel.java | 18 ++++++++++++++++++ common/src/main/java/ctbrec/Model.java | 7 +++++++ 4 files changed, 32 insertions(+), 11 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/JavaFxModel.java b/client/src/main/java/ctbrec/ui/JavaFxModel.java index 21885b73..3902f842 100644 --- a/client/src/main/java/ctbrec/ui/JavaFxModel.java +++ b/client/src/main/java/ctbrec/ui/JavaFxModel.java @@ -307,4 +307,9 @@ public class JavaFxModel implements Model { public void setRecordUntilSubsequentAction(SubsequentAction action) { delegate.setRecordUntilSubsequentAction(action); } + + @Override + public boolean exists() throws IOException { + return delegate.exists(); + } } diff --git a/client/src/main/java/ctbrec/ui/action/CheckModelAccountAction.java b/client/src/main/java/ctbrec/ui/action/CheckModelAccountAction.java index f778a30e..e9f3b188 100644 --- a/client/src/main/java/ctbrec/ui/action/CheckModelAccountAction.java +++ b/client/src/main/java/ctbrec/ui/action/CheckModelAccountAction.java @@ -1,7 +1,5 @@ package ctbrec.ui.action; -import static ctbrec.io.HttpConstants.*; - import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -9,14 +7,11 @@ import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import ctbrec.Config; import ctbrec.Model; import ctbrec.recorder.Recorder; import ctbrec.ui.controls.Dialogs; import javafx.application.Platform; import javafx.scene.control.Button; -import okhttp3.Request; -import okhttp3.Response; public class CheckModelAccountAction { private static final Logger LOG = LoggerFactory.getLogger(CheckModelAccountAction.class); @@ -43,12 +38,8 @@ public class CheckModelAccountAction { final int counter = i+1; Platform.runLater(() -> b.setText(buttonText + ' ' + counter + '/' + total)); Model modelToCheck = models.get(i); - Request req = new Request.Builder() - .url(modelToCheck.getUrl()) - .header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent) - .build(); - try(Response response = modelToCheck.getSite().getHttpClient().execute(req)) { - if(!response.isSuccessful() && response.code() == 404) { + try { + if (!modelToCheck.exists()) { deletedAccounts.add(modelToCheck); } } catch (IOException e) { diff --git a/common/src/main/java/ctbrec/AbstractModel.java b/common/src/main/java/ctbrec/AbstractModel.java index 974e8380..8a3dac36 100644 --- a/common/src/main/java/ctbrec/AbstractModel.java +++ b/common/src/main/java/ctbrec/AbstractModel.java @@ -1,5 +1,7 @@ package ctbrec; +import static ctbrec.io.HttpConstants.*; + import java.io.IOException; import java.time.Instant; import java.util.ArrayList; @@ -17,6 +19,8 @@ import ctbrec.recorder.download.HttpHeaderFactoryImpl; import ctbrec.recorder.download.hls.HlsDownload; import ctbrec.recorder.download.hls.MergedFfmpegHlsDownload; import ctbrec.sites.Site; +import okhttp3.Request; +import okhttp3.Response; public abstract class AbstractModel implements Model { @@ -270,4 +274,18 @@ public abstract class AbstractModel implements Model { fac.setSegmentHeaders(new HashMap<>()); return fac; } + + @Override + public boolean exists() throws IOException { + Request req = new Request.Builder() // @formatter:off + .url(getUrl()) + .header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent) + .build(); // @formatter:on + try (Response response = getSite().getHttpClient().execute(req)) { + if (!response.isSuccessful() && response.code() == 404) { + return false; + } + } + return true; + } } diff --git a/common/src/main/java/ctbrec/Model.java b/common/src/main/java/ctbrec/Model.java index 42ccd10e..15b94c7f 100644 --- a/common/src/main/java/ctbrec/Model.java +++ b/common/src/main/java/ctbrec/Model.java @@ -136,4 +136,11 @@ public interface Model extends Comparable, Serializable { public SubsequentAction getRecordUntilSubsequentAction(); public void setRecordUntilSubsequentAction(SubsequentAction action); + /** + * Check, if this model account exists + * @return true, if it exists, false otherwise + * @throws IOException + */ + public boolean exists() throws IOException; + } \ No newline at end of file