From 0deaf482c3c6ec68dcbd7f4c8b97639479e8d5cd Mon Sep 17 00:00:00 2001 From: arichornlover <78001398+arichornlover@users.noreply.github.com> Date: Wed, 8 May 2024 17:58:56 -0500 Subject: [PATCH] Re-add uYou Key `removeYouTubeAds` for uYou Workaround MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I accidentally removed it when updating the code from PoomSmart’s YouTube-X. --- Sources/uYouPlus.xm | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/Sources/uYouPlus.xm b/Sources/uYouPlus.xm index 26bfafc..aa3774c 100644 --- a/Sources/uYouPlus.xm +++ b/Sources/uYouPlus.xm @@ -90,22 +90,24 @@ static int contrastMode() { // Workaround: uYou 3.0.3 Adblock fix - @PoomSmart %hook YTReelInfinitePlaybackDataSource - (void)setReels:(NSMutableOrderedSet *)reels { - [reels removeObjectsAtIndexes:[reels indexesOfObjectsPassingTest:^BOOL(YTReelModel *obj, NSUInteger idx, BOOL *stop) { - return [obj respondsToSelector:@selector(videoType)] ? obj.videoType == 3 : NO; - }]]; + if ([NSUserDefaults.standardUserDefaults boolForKey:@"removeYouTubeAds"]) { + [reels removeObjectsAtIndexes:[reels indexesOfObjectsPassingTest:^BOOL(YTReelModel *obj, NSUInteger idx, BOOL *stop) { + return [obj respondsToSelector:@selector(videoType)] ? obj.videoType == 3 : NO; + }]]; + } %orig; } %end %hook YTAdsInnerTubeContextDecorator - (void)decorateContext:(id)context { -if ([NSUserDefaults.standardUserDefaults boolForKey:@"removeYouTubeAds"]) {} + if ([NSUserDefaults.standardUserDefaults boolForKey:@"removeYouTubeAds"]) {} } %end %hook YTAccountScopedAdsInnerTubeContextDecorator - (void)decorateContext:(id)context { -if ([NSUserDefaults.standardUserDefaults boolForKey:@"removeYouTubeAds"]) {} + if ([NSUserDefaults.standardUserDefaults boolForKey:@"removeYouTubeAds"]) {} } %end @@ -148,21 +150,23 @@ NSData *cellDividerData; %hook YTInnerTubeCollectionViewController - (void)loadWithModel:(YTISectionListRenderer *)model { - if ([model isKindOfClass:%c(YTISectionListRenderer)]) { - NSMutableArray *contentsArray = model.contentsArray; - NSIndexSet *removeIndexes = [contentsArray indexesOfObjectsPassingTest:^BOOL(YTISectionListSupportedRenderers *renderers, NSUInteger idx, BOOL *stop) { - if (![renderers isKindOfClass:%c(YTISectionListSupportedRenderers)]) - return NO; - YTIItemSectionRenderer *sectionRenderer = renderers.itemSectionRenderer; - YTIItemSectionSupportedRenderers *firstObject = [sectionRenderer.contentsArray firstObject]; - YTIElementRenderer *elementRenderer = firstObject.elementRenderer; - NSString *description = [elementRenderer description]; - return isAdString(description) - || [description containsString:@"post_shelf"] - || [description containsString:@"product_carousel"] - || [description containsString:@"statement_banner"]; - }]; - [contentsArray removeObjectsAtIndexes:removeIndexes]; + if ([NSUserDefaults.standardUserDefaults boolForKey:@"removeYouTubeAds"]) { + if ([model isKindOfClass:%c(YTISectionListRenderer)]) { + NSMutableArray *contentsArray = model.contentsArray; + NSIndexSet *removeIndexes = [contentsArray indexesOfObjectsPassingTest:^BOOL(YTISectionListSupportedRenderers *renderers, NSUInteger idx, BOOL *stop) { + if (![renderers isKindOfClass:%c(YTISectionListSupportedRenderers)]) + return NO; + YTIItemSectionRenderer *sectionRenderer = renderers.itemSectionRenderer; + YTIItemSectionSupportedRenderers *firstObject = [sectionRenderer.contentsArray firstObject]; + YTIElementRenderer *elementRenderer = firstObject.elementRenderer; + NSString *description = [elementRenderer description]; + return isAdString(description) + || [description containsString:@"post_shelf"] + || [description containsString:@"product_carousel"] + || [description containsString:@"statement_banner"]; + }]; + [contentsArray removeObjectsAtIndexes:removeIndexes]; + } } %orig; }