mirror of
https://github.com/arichornlover/uYouEnhanced.git
synced 2026-03-11 17:15:32 +00:00
Update AdBlock Workaround
This commit is contained in:
parent
ae9924deac
commit
9b9f479cd7
1 changed files with 45 additions and 22 deletions
|
|
@ -412,7 +412,7 @@ YTMainAppControlsOverlayView *controlsOverlayView;
|
||||||
%hook MDXSession
|
%hook MDXSession
|
||||||
- (void)adPlaying:(id)ad {}
|
- (void)adPlaying:(id)ad {}
|
||||||
%end
|
%end
|
||||||
%hook YTReelInfinitePlaybackDataSource
|
%hook YTReelDataSource
|
||||||
- (YTReelModel *)makeContentModelForEntry:(id)entry {
|
- (YTReelModel *)makeContentModelForEntry:(id)entry {
|
||||||
YTReelModel *model = %orig;
|
YTReelModel *model = %orig;
|
||||||
if ([model respondsToSelector:@selector(videoType)] && model.videoType == 3)
|
if ([model respondsToSelector:@selector(videoType)] && model.videoType == 3)
|
||||||
|
|
@ -420,28 +420,41 @@ YTMainAppControlsOverlayView *controlsOverlayView;
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
%hook YTReelInfinitePlaybackDataSource
|
||||||
|
- (YTReelModel *)makeContentModelForEntry:(id)entry {
|
||||||
|
YTReelModel *model = %orig;
|
||||||
|
if ([model respondsToSelector:@selector(videoType)] && model.videoType == 3)
|
||||||
|
return nil;
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
- (void)setReels:(NSMutableOrderedSet <YTReelModel *> *)reels {
|
||||||
|
[reels removeObjectsAtIndexes:[reels indexesOfObjectsPassingTest:^BOOL(YTReelModel *obj, NSUInteger idx, BOOL *stop) {
|
||||||
|
return [obj respondsToSelector:@selector(videoType)] ? obj.videoType == 3 : NO;
|
||||||
|
}]];
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
NSString *getAdString(NSString *description) {
|
NSString *getAdString(NSString *description) {
|
||||||
for (NSString *str in @[
|
for (NSString *str in @[ @"brand_promo",
|
||||||
@"brand_promo",
|
@"carousel_footered_layout",
|
||||||
@"carousel_footered_layout",
|
@"carousel_headered_layout",
|
||||||
@"carousel_headered_layout",
|
@"eml.expandable_metadata",
|
||||||
@"eml.expandable_metadata",
|
@"feed_ad_metadata",
|
||||||
@"feed_ad_metadata",
|
@"full_width_portrait_image_layout",
|
||||||
@"full_width_portrait_image_layout",
|
@"full_width_square_image_layout",
|
||||||
@"full_width_square_image_layout",
|
@"landscape_image_wide_button_layout",
|
||||||
@"landscape_image_wide_button_layout",
|
@"post_shelf",
|
||||||
@"post_shelf",
|
@"product_carousel",
|
||||||
@"product_carousel",
|
@"product_engagement_panel",
|
||||||
@"product_engagement_panel",
|
@"product_item",
|
||||||
@"product_item",
|
@"shopping_carousel",
|
||||||
@"shopping_carousel",
|
@"shopping_item_card_list",
|
||||||
@"shopping_item_card_list",
|
@"statement_banner",
|
||||||
@"statement_banner",
|
@"square_image_layout",
|
||||||
@"square_image_layout",
|
@"text_image_button_layout",
|
||||||
@"text_image_button_layout",
|
@"text_search_ad",
|
||||||
@"text_search_ad",
|
@"video_display_full_layout",
|
||||||
@"video_display_full_layout",
|
@"video_display_full_buttoned_layout"
|
||||||
@"video_display_full_buttoned_layout"
|
|
||||||
])
|
])
|
||||||
if ([description containsString:str]) return str;
|
if ([description containsString:str]) return str;
|
||||||
|
|
||||||
|
|
@ -463,6 +476,16 @@ static BOOL isAdRenderer(YTIElementRenderer *elementRenderer, int kind) {
|
||||||
static NSMutableArray <YTIItemSectionRenderer *> *filteredArray(NSArray <YTIItemSectionRenderer *> *array) {
|
static NSMutableArray <YTIItemSectionRenderer *> *filteredArray(NSArray <YTIItemSectionRenderer *> *array) {
|
||||||
NSMutableArray <YTIItemSectionRenderer *> *newArray = [array mutableCopy];
|
NSMutableArray <YTIItemSectionRenderer *> *newArray = [array mutableCopy];
|
||||||
NSIndexSet *removeIndexes = [newArray indexesOfObjectsPassingTest:^BOOL(YTIItemSectionRenderer *sectionRenderer, NSUInteger idx, BOOL *stop) {
|
NSIndexSet *removeIndexes = [newArray indexesOfObjectsPassingTest:^BOOL(YTIItemSectionRenderer *sectionRenderer, NSUInteger idx, BOOL *stop) {
|
||||||
|
if ([sectionRenderer isKindOfClass:%c(YTIShelfRenderer)]) {
|
||||||
|
YTIShelfSupportedRenderers *content = ((YTIShelfRenderer *)sectionRenderer).content;
|
||||||
|
YTIHorizontalListRenderer *horizontalListRenderer = content.horizontalListRenderer;
|
||||||
|
NSMutableArray <YTIHorizontalListSupportedRenderers *> *itemsArray = horizontalListRenderer.itemsArray;
|
||||||
|
NSIndexSet *removeItemsArrayIndexes = [itemsArray indexesOfObjectsPassingTest:^BOOL(YTIHorizontalListSupportedRenderers *horizontalListSupportedRenderers, NSUInteger idx2, BOOL *stop2) {
|
||||||
|
YTIElementRenderer *elementRenderer = horizontalListSupportedRenderers.elementRenderer;
|
||||||
|
return isAdRenderer(elementRenderer, 4);
|
||||||
|
}];
|
||||||
|
[itemsArray removeObjectsAtIndexes:removeItemsArrayIndexes];
|
||||||
|
}
|
||||||
if (![sectionRenderer isKindOfClass:%c(YTIItemSectionRenderer)])
|
if (![sectionRenderer isKindOfClass:%c(YTIItemSectionRenderer)])
|
||||||
return NO;
|
return NO;
|
||||||
NSMutableArray <YTIItemSectionSupportedRenderers *> *contentsArray = sectionRenderer.contentsArray;
|
NSMutableArray <YTIItemSectionSupportedRenderers *> *contentsArray = sectionRenderer.contentsArray;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue