From 322769b0e46949469696f391f8633b928eb327b5 Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Mon, 31 Oct 2022 10:44:00 +0000 Subject: [PATCH] Use streaming api directly from query. --- .../server/handlers/auth/FeedHandlers.java | 75 +++++++++---------- 1 file changed, 34 insertions(+), 41 deletions(-) diff --git a/src/main/java/me/kavin/piped/server/handlers/auth/FeedHandlers.java b/src/main/java/me/kavin/piped/server/handlers/auth/FeedHandlers.java index 2162a4b..23db0be 100644 --- a/src/main/java/me/kavin/piped/server/handlers/auth/FeedHandlers.java +++ b/src/main/java/me/kavin/piped/server/handlers/auth/FeedHandlers.java @@ -119,16 +119,15 @@ public class FeedHandlers { ) .orderBy(cb.desc(root.get("uploaded"))); - List feedItems = new ObjectArrayList<>(); + List feedItems = s.createQuery(criteria).setTimeout(20).stream() + .parallel().map(video -> { + var channel = video.getChannel(); - for (Video video : s.createQuery(criteria).setTimeout(20).list()) { - var channel = video.getChannel(); - - feedItems.add(new StreamItem("/watch?v=" + video.getId(), video.getTitle(), - rewriteURL(video.getThumbnail()), channel.getUploader(), "/channel/" + channel.getUploaderId(), - rewriteURL(channel.getUploaderAvatar()), null, null, video.getDuration(), video.getViews(), - video.getUploaded(), channel.isVerified(), video.isShort())); - } + return new StreamItem("/watch?v=" + video.getId(), video.getTitle(), + rewriteURL(video.getThumbnail()), channel.getUploader(), "/channel/" + channel.getUploaderId(), + rewriteURL(channel.getUploaderAvatar()), null, null, video.getDuration(), video.getViews(), + video.getUploaded(), channel.isVerified(), video.isShort()); + }).toList(); return mapper.writeValueAsBytes(feedItems); } @@ -173,29 +172,27 @@ public class FeedHandlers { ) .orderBy(cb.desc(root.get("uploaded"))); - List