Create YTReExplore.x
This commit is contained in:
parent
77660c1c51
commit
2ac4e3b832
1 changed files with 45 additions and 0 deletions
45
Source/YTReExplore.x
Normal file
45
Source/YTReExplore.x
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
#import "../Tweaks/YouTubeHeader/YTIPivotBarRenderer.h"
|
||||
#import "../Tweaks/YouTubeHeader/YTIGuideResponse.h"
|
||||
#import "../Tweaks/YouTubeHeader/YTIGuideResponseSupportedRenderers.h"
|
||||
#import "../Tweaks/YouTubeHeader/YTIBrowseRequest.h"
|
||||
#import "uYouPlus.h"
|
||||
|
||||
%group YTReExplore // https://github.com/PoomSmart/YTReExplore/
|
||||
static void replaceTab(YTIGuideResponse *response) {
|
||||
NSMutableArray <YTIGuideResponseSupportedRenderers *> *renderers = [response itemsArray];
|
||||
for (YTIGuideResponseSupportedRenderers *guideRenderers in renderers) {
|
||||
YTIPivotBarRenderer *pivotBarRenderer = [guideRenderers pivotBarRenderer];
|
||||
NSMutableArray <YTIPivotBarSupportedRenderers *> *items = [pivotBarRenderer itemsArray];
|
||||
NSUInteger shortIndex = [items indexOfObjectPassingTest:^BOOL(YTIPivotBarSupportedRenderers *renderers, NSUInteger idx, BOOL *stop) {
|
||||
return [[[renderers pivotBarItemRenderer] pivotIdentifier] isEqualToString:@"FEshorts"];
|
||||
}];
|
||||
if (shortIndex != NSNotFound) {
|
||||
[items removeObjectAtIndex:shortIndex];
|
||||
NSUInteger exploreIndex = [items indexOfObjectPassingTest:^BOOL(YTIPivotBarSupportedRenderers *renderers, NSUInteger idx, BOOL *stop) {
|
||||
return [[[renderers pivotBarItemRenderer] pivotIdentifier] isEqualToString:[%c(YTIBrowseRequest) browseIDForExploreTab]];
|
||||
}];
|
||||
if (exploreIndex == NSNotFound) {
|
||||
YTIPivotBarSupportedRenderers *exploreTab = [%c(YTIPivotBarRenderer) pivotSupportedRenderersWithBrowseId:[%c(YTIBrowseRequest) browseIDForExploreTab] title:@"Explore" iconType:292];
|
||||
[items insertObject:exploreTab atIndex:1];
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
%hook YTGuideServiceCoordinator
|
||||
- (void)handleResponse:(YTIGuideResponse *)response withCompletion:(id)completion {
|
||||
replaceTab(response);
|
||||
%orig(response, completion);
|
||||
}
|
||||
- (void)handleResponse:(YTIGuideResponse *)response error:(id)error completion:(id)completion {
|
||||
replaceTab(response);
|
||||
%orig(response, error, completion);
|
||||
}
|
||||
%end
|
||||
%end
|
||||
|
||||
%ctor {
|
||||
if (IS_ENABLED(@"reExplore_enabled")) {
|
||||
%init(YTReExplore);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue