From c10ff6e3c53bedb758a17e58df582db17e750f09 Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Tue, 11 Oct 2022 01:34:58 +0100 Subject: [PATCH] Add video count to playlists response. --- src/main/java/me/kavin/piped/utils/ResponseHelper.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/me/kavin/piped/utils/ResponseHelper.java b/src/main/java/me/kavin/piped/utils/ResponseHelper.java index 64c8c70..45b7e59 100644 --- a/src/main/java/me/kavin/piped/utils/ResponseHelper.java +++ b/src/main/java/me/kavin/piped/utils/ResponseHelper.java @@ -1368,12 +1368,19 @@ public class ResponseHelper { var playlists = new ObjectArrayList<>(); - for (var playlist : user.getPlaylists()) { + // Select user playlists and count the number of videos in each playlist + var query = s.createQuery("SELECT p, COUNT(v) FROM Playlist p LEFT JOIN p.videos v WHERE p.owner = :owner GROUP BY p.id", Object[].class); + query.setParameter("owner", user); + for (Object[] row : query.list()) { + var playlist = (me.kavin.piped.utils.obj.db.Playlist) row[0]; + var videoCount = (long) row[1]; + ObjectNode node = mapper.createObjectNode(); node.put("id", String.valueOf(playlist.getPlaylistId())); node.put("name", playlist.getName()); node.put("shortDescription", playlist.getShortDescription()); node.put("thumbnail", rewriteURL(playlist.getThumbnail())); + node.put("videos", videoCount); playlists.add(node); }