From 9f2276813c79d335e072702b2439c7b6a6d00811 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:52:06 +0900 Subject: [PATCH] refactor(YouTube - Hide feed components): Do not search path or buffer unless `Hide mix playlists` setting is enabled --- .../components/FeedComponentsFilter.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/components/FeedComponentsFilter.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/components/FeedComponentsFilter.java index 52c791c9e..e375488e2 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/components/FeedComponentsFilter.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/components/FeedComponentsFilter.java @@ -6,6 +6,7 @@ import app.revanced.extension.shared.patches.components.ByteArrayFilterGroup; import app.revanced.extension.shared.patches.components.Filter; import app.revanced.extension.shared.patches.components.StringFilterGroup; import app.revanced.extension.shared.patches.components.StringFilterGroupList; +import app.revanced.extension.shared.utils.Logger; import app.revanced.extension.shared.utils.StringTrieSearch; import app.revanced.extension.youtube.settings.Settings; @@ -26,7 +27,7 @@ public final class FeedComponentsFilter extends Filter { private static final ByteArrayFilterGroup mixPlaylists = new ByteArrayFilterGroup( - Settings.HIDE_MIX_PLAYLISTS, + null, "&list=" ); private static final ByteArrayFilterGroup mixPlaylistsBufferExceptions = @@ -229,11 +230,20 @@ public final class FeedComponentsFilter extends Filter { *

* Called from a different place then the other filters. */ - public static boolean filterMixPlaylists(final Object conversionContext, final byte[] bytes) { - return bytes != null - && mixPlaylists.check(bytes).isFiltered() - && !mixPlaylistsBufferExceptions.check(bytes).isFiltered() - && !mixPlaylistsContextExceptions.matches(conversionContext.toString()); + public static boolean filterMixPlaylists(final Object conversionContext, @Nullable final byte[] bytes) { + try { + if (!Settings.HIDE_MIX_PLAYLISTS.get()) { + return false; + } + return bytes != null + && mixPlaylists.check(bytes).isFiltered() + && !mixPlaylistsBufferExceptions.check(bytes).isFiltered() + && !mixPlaylistsContextExceptions.matches(conversionContext.toString()); + } catch (Exception ex) { + Logger.printException(() -> "filterMixPlaylists failure", ex); + } + + return false; } @Override