From 1e590d5641faf27e4dd7cb532432bebf0e121219 Mon Sep 17 00:00:00 2001 From: reusedname <155286845+reusedname@users.noreply.github.com> Date: Wed, 18 Dec 2024 21:48:17 +0500 Subject: [PATCH] show grouped total model count (cherry picked from commit 7c1b366340662489d3e85e9a443b8c00a2bbf205) --- client/src/main/java/ctbrec/ui/CamrecApplication.java | 2 +- common/src/main/java/ctbrec/recorder/Recorder.java | 7 +++++++ .../src/main/java/ctbrec/recorder/RemoteRecorder.java | 11 +++++++++++ .../java/ctbrec/recorder/SimplifiedLocalRecorder.java | 11 +++++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/client/src/main/java/ctbrec/ui/CamrecApplication.java b/client/src/main/java/ctbrec/ui/CamrecApplication.java index a10e5d4e..517ff09c 100644 --- a/client/src/main/java/ctbrec/ui/CamrecApplication.java +++ b/client/src/main/java/ctbrec/ui/CamrecApplication.java @@ -510,7 +510,7 @@ public class CamrecApplication extends Application { bytesPerSecond = 0; } String humanReadable = ByteUnitFormatter.format(bytesPerSecond); - var status = String.format("Recording %s / %s models @ %s/s", activeRecordings, recorder.getModelCount(), humanReadable); + var status = String.format("Recording %s / %s models (%s grouped) @ %s/s", activeRecordings, recorder.getModelCount(), recorder.getGroupedModelCount(), humanReadable); Platform.runLater(() -> statusLabel.setText(status)); } diff --git a/common/src/main/java/ctbrec/recorder/Recorder.java b/common/src/main/java/ctbrec/recorder/Recorder.java index dfe9b3e4..0fd7d06c 100644 --- a/common/src/main/java/ctbrec/recorder/Recorder.java +++ b/common/src/main/java/ctbrec/recorder/Recorder.java @@ -174,6 +174,13 @@ public interface Recorder { * @return */ int getModelCount(); + + /** + * Returns the number of model groups + ungrouped models + * + * @return + */ + int getGroupedModelCount(); Set getModelGroups(); diff --git a/common/src/main/java/ctbrec/recorder/RemoteRecorder.java b/common/src/main/java/ctbrec/recorder/RemoteRecorder.java index 8c7773f9..ad2adcdd 100644 --- a/common/src/main/java/ctbrec/recorder/RemoteRecorder.java +++ b/common/src/main/java/ctbrec/recorder/RemoteRecorder.java @@ -672,6 +672,17 @@ public class RemoteRecorder implements Recorder { return (int) models.stream().filter(m -> !m.isMarkedForLaterRecording()).count(); } + @Override + public int getGroupedModelCount() { + Map urlToGroup = new HashMap<>(); + for (var group : getModelGroups()) { + for (var url : group.getModelUrls()) { + urlToGroup.putIfAbsent(url, group.getName()); + } + } + return (int) models.stream().filter(m -> !m.isMarkedForLaterRecording()).map(m -> urlToGroup.getOrDefault(m.getUrl(), m.getName())).distinct().count(); + } + @Override public Set getModelGroups() { modelGroupLock.lock(); diff --git a/common/src/main/java/ctbrec/recorder/SimplifiedLocalRecorder.java b/common/src/main/java/ctbrec/recorder/SimplifiedLocalRecorder.java index 52e80cfc..9e5eed51 100644 --- a/common/src/main/java/ctbrec/recorder/SimplifiedLocalRecorder.java +++ b/common/src/main/java/ctbrec/recorder/SimplifiedLocalRecorder.java @@ -918,6 +918,17 @@ public class SimplifiedLocalRecorder implements Recorder { return (int) models.stream().filter(m -> !m.isMarkedForLaterRecording()).count(); } + @Override + public int getGroupedModelCount() { + Map urlToGroup = new HashMap<>(); + for (var group : getModelGroups()) { + for (var url : group.getModelUrls()) { + urlToGroup.putIfAbsent(url, group.getName()); + } + } + return (int) models.stream().filter(m -> !m.isMarkedForLaterRecording()).map(m -> urlToGroup.getOrDefault(m.getUrl(), m.getName())).distinct().count(); + } + @Override public Set getModelGroups() { modelGroupLock.lock();