From 15f7eef82cc0b84795b2b742369cd6ac6a02713b Mon Sep 17 00:00:00 2001 From: FireMasterK <20838718+FireMasterK@users.noreply.github.com> Date: Sat, 21 Aug 2021 01:52:39 +0530 Subject: [PATCH] Cleanup PubSub query. --- src/main/java/me/kavin/piped/Main.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/me/kavin/piped/Main.java b/src/main/java/me/kavin/piped/Main.java index d0528b8..b1f7278 100644 --- a/src/main/java/me/kavin/piped/Main.java +++ b/src/main/java/me/kavin/piped/Main.java @@ -13,11 +13,11 @@ import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.localization.Localization; import io.activej.inject.Injector; -import me.kavin.piped.utils.DatabaseHelper; import me.kavin.piped.utils.DatabaseSessionFactory; import me.kavin.piped.utils.DownloaderImpl; import me.kavin.piped.utils.Multithreading; import me.kavin.piped.utils.ResponseHelper; +import me.kavin.piped.utils.obj.db.PubSub; public class Main { @@ -33,21 +33,22 @@ public class Main { try { Session s = DatabaseSessionFactory.createSession(); - List channels = DatabaseHelper.getGlobalSubscribedChannelIds(s); + List pubSubList = s.createNativeQuery( + "select distinct pubsub.* from pubsub inner join users_subscribed on pubsub.id = users_subscribed.channel", + PubSub.class).getResultList(); - DatabaseHelper.getPubSubFromIds(s, channels).forEach(pubsub -> { - if (System.currentTimeMillis() - pubsub.getSubbedAt() < TimeUnit.DAYS.toMillis(4)) - channels.remove(pubsub.getId()); + pubSubList.removeIf(pubsub -> { + return System.currentTimeMillis() - pubsub.getSubbedAt() < TimeUnit.DAYS.toMillis(4); }); - Collections.shuffle(channels); + Collections.shuffle(pubSubList); - for (String channelId : channels) - if (channelId != null) + for (PubSub pubsub : pubSubList) + if (pubsub != null) Multithreading.runAsyncLimitedPubSub(() -> { Session sess = DatabaseSessionFactory.createSession(); try { - ResponseHelper.subscribePubSub(channelId, sess); + ResponseHelper.subscribePubSub(pubsub.getId(), sess); } catch (Exception e) { e.printStackTrace(); }