Skip to content

Commit 7118454

Browse files
committed
New fixed and changes
1 parent 97ef9ce commit 7118454

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

application/src/main/java/org/togetherjava/tjbot/features/utils/LinkDetection.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import java.net.http.HttpRequest;
1010
import java.net.http.HttpResponse;
1111
import java.util.List;
12-
import java.util.Objects;
1312
import java.util.Optional;
1413
import java.util.Set;
1514
import java.util.concurrent.CompletableFuture;
@@ -219,16 +218,20 @@ public static CompletableFuture<String> replaceBrokenLinks(String text, String r
219218
return CompletableFuture.completedFuture(text);
220219
}
221220

222-
List<CompletableFuture<String>> brokenLinkFutures = links.stream()
223-
.distinct()
224-
.map(link -> isLinkBroken(link).thenApply(isBroken -> isBroken ? link : null))
225-
.toList();
221+
List<String> distinctLinks = links.stream().distinct().toList();
222+
List<CompletableFuture<Boolean>> brokenCheckFutures =
223+
distinctLinks.stream().map(LinkDetection::isLinkBroken).toList();
226224

227-
return CompletableFuture.allOf(brokenLinkFutures.toArray(new CompletableFuture[0]))
228-
.thenApply(_ -> brokenLinkFutures.stream()
229-
.map(CompletableFuture::join)
230-
.filter(Objects::nonNull)
231-
.toList())
225+
return CompletableFuture.allOf(brokenCheckFutures.toArray(new CompletableFuture[0]))
226+
.thenApply(_ -> {
227+
List<String> brokenLinks = new java.util.ArrayList<>();
228+
for (int i = 0; i < distinctLinks.size(); i++) {
229+
if (Boolean.TRUE.equals(brokenCheckFutures.get(i).join())) {
230+
brokenLinks.add(distinctLinks.get(i));
231+
}
232+
}
233+
return brokenLinks;
234+
})
232235
.thenApply(brokenLinks -> {
233236
String result = text;
234237
for (String brokenLink : brokenLinks) {

0 commit comments

Comments
 (0)