mirror of
				https://github.com/SoPat712/YTLitePlus.git
				synced 2025-10-30 12:23:58 -04:00 
			
		
		
		
	Removed more duplicates
This commit is contained in:
		
							
								
								
									
										145
									
								
								YTLitePlus.xm
									
									
									
									
									
								
							
							
						
						
									
										145
									
								
								YTLitePlus.xm
									
									
									
									
									
								
							| @@ -14,25 +14,6 @@ NSBundle *YTLitePlusBundle() { | |||||||
| } | } | ||||||
| NSBundle *tweakBundle = YTLitePlusBundle(); | NSBundle *tweakBundle = YTLitePlusBundle(); | ||||||
|  |  | ||||||
| // Keychain fix |  | ||||||
| static NSString *accessGroupID() { |  | ||||||
|     NSDictionary *query = [NSDictionary dictionaryWithObjectsAndKeys: |  | ||||||
|                            (__bridge NSString *)kSecClassGenericPassword, (__bridge NSString *)kSecClass, |  | ||||||
|                            @"bundleSeedID", kSecAttrAccount, |  | ||||||
|                            @"", kSecAttrService, |  | ||||||
|                            (id)kCFBooleanTrue, kSecReturnAttributes, |  | ||||||
|                            nil]; |  | ||||||
|     CFDictionaryRef result = nil; |  | ||||||
|     OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)query, (CFTypeRef *)&result); |  | ||||||
|     if (status == errSecItemNotFound) |  | ||||||
|         status = SecItemAdd((__bridge CFDictionaryRef)query, (CFTypeRef *)&result); |  | ||||||
|         if (status != errSecSuccess) |  | ||||||
|             return nil; |  | ||||||
|     NSString *accessGroup = [(__bridge NSDictionary *)result objectForKey:(__bridge NSString *)kSecAttrAccessGroup]; |  | ||||||
|  |  | ||||||
|     return accessGroup; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // | // | ||||||
| static BOOL IsEnabled(NSString *key) { | static BOOL IsEnabled(NSString *key) { | ||||||
|     return [[NSUserDefaults standardUserDefaults] boolForKey:key]; |     return [[NSUserDefaults standardUserDefaults] boolForKey:key]; | ||||||
| @@ -71,7 +52,7 @@ static BOOL IsEnabled(NSString *key) { | |||||||
| } | } | ||||||
| %end | %end | ||||||
|  |  | ||||||
| # pragma mark - Hide Notification Button | # pragma mark - Hide SponsorBlock Button | ||||||
| %hook YTRightNavigationButtons | %hook YTRightNavigationButtons | ||||||
| - (void)didMoveToWindow { | - (void)didMoveToWindow { | ||||||
|     %orig; |     %orig; | ||||||
| @@ -190,6 +171,9 @@ static BOOL IsEnabled(NSString *key) { | |||||||
| %end | %end | ||||||
|  |  | ||||||
| %hook YTColdConfig | %hook YTColdConfig | ||||||
|  | // 16.xx.x Styled YouTube Channel Page Interface - YTNoModernUI | ||||||
|  | - (BOOL)channelsClientConfigIosChannelNavRestructuring { return NO; } | ||||||
|  | - (BOOL)channelsClientConfigIosMultiPartChannelHeader { return NO; } | ||||||
| // Disable Modern Content - YTNoModernUI | // Disable Modern Content - YTNoModernUI | ||||||
| - (BOOL)creatorClientConfigEnableStudioModernizedMdeThumbnailPickerForClient { return NO; } | - (BOOL)creatorClientConfigEnableStudioModernizedMdeThumbnailPickerForClient { return NO; } | ||||||
| - (BOOL)cxClientEnableModernizedActionSheet { return NO; } | - (BOOL)cxClientEnableModernizedActionSheet { return NO; } | ||||||
| @@ -231,9 +215,6 @@ static BOOL IsEnabled(NSString *key) { | |||||||
| - (BOOL)mainAppCoreClientEnableClientCinematicPlaylists { return NO; } | - (BOOL)mainAppCoreClientEnableClientCinematicPlaylists { return NO; } | ||||||
| - (BOOL)mainAppCoreClientEnableClientCinematicPlaylistsPostMvp { return NO; } | - (BOOL)mainAppCoreClientEnableClientCinematicPlaylistsPostMvp { return NO; } | ||||||
| - (BOOL)mainAppCoreClientEnableClientCinematicTablets { return NO; } | - (BOOL)mainAppCoreClientEnableClientCinematicTablets { return NO; } | ||||||
| // 16.42.3 Styled YouTube Channel Page Interface - YTNoModernUI |  | ||||||
| - (BOOL)channelsClientConfigIosChannelNavRestructuring { return NO; } |  | ||||||
| - (BOOL)channelsClientConfigIosMultiPartChannelHeader { return NO; } |  | ||||||
| // Disable Optional Content - YTNoModernUI | // Disable Optional Content - YTNoModernUI | ||||||
| - (BOOL)elementsClientIosElementsEnableLayoutUpdateForIob { return NO; } | - (BOOL)elementsClientIosElementsEnableLayoutUpdateForIob { return NO; } | ||||||
| - (BOOL)supportElementsInMenuItemSupportedRenderers { return NO; } | - (BOOL)supportElementsInMenuItemSupportedRenderers { return NO; } | ||||||
| @@ -255,20 +236,6 @@ static BOOL IsEnabled(NSString *key) { | |||||||
| %end | %end | ||||||
| %end | %end | ||||||
|  |  | ||||||
| // YTAutoFullScreen: https://github.com/PoomSmart/YTAutoFullScreen/ |  | ||||||
| %hook YTPlayerViewController |  | ||||||
| - (void)loadWithPlayerTransition:(id)arg1 playbackConfig:(id)arg2 { |  | ||||||
|     %orig; |  | ||||||
|     if (IsEnabled(@"autoFull_enabled")) |  | ||||||
|         [NSTimer scheduledTimerWithTimeInterval:0.75 target:self selector:@selector(autoFullscreen) userInfo:nil repeats:NO]; |  | ||||||
| } |  | ||||||
| %new |  | ||||||
| - (void)autoFullscreen { |  | ||||||
|     YTWatchController *watchController = [self valueForKey:@"_UIDelegate"]; |  | ||||||
|     [watchController showFullScreen]; |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook YTYouThereController | %hook YTYouThereController | ||||||
| - (BOOL)shouldShowYouTherePrompt { return NO; } | - (BOOL)shouldShowYouTherePrompt { return NO; } | ||||||
| %end | %end | ||||||
| @@ -278,110 +245,6 @@ static BOOL IsEnabled(NSString *key) { | |||||||
| - (BOOL)isPromptForLocalNetworkPermissionsEnabled { return NO; } | - (BOOL)isPromptForLocalNetworkPermissionsEnabled { return NO; } | ||||||
| %end | %end | ||||||
|  |  | ||||||
| # pragma mark - IAmYouTube - https://github.com/PoomSmart/IAmYouTube/ |  | ||||||
| %hook YTVersionUtils |  | ||||||
| + (NSString *)appName { return YT_NAME; } |  | ||||||
| + (NSString *)appID { return YT_BUNDLE_ID; } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook GCKBUtils |  | ||||||
| + (NSString *)appIdentifier { return YT_BUNDLE_ID; } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook GPCDeviceInfo |  | ||||||
| + (NSString *)bundleId { return YT_BUNDLE_ID; } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook OGLBundle |  | ||||||
| + (NSString *)shortAppName { return YT_NAME; } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook GVROverlayView |  | ||||||
| + (NSString *)appName { return YT_NAME; } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook OGLPhenotypeFlagServiceImpl |  | ||||||
| - (NSString *)bundleId { return YT_BUNDLE_ID; } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook APMAEU |  | ||||||
| + (BOOL)isFAS { return YES; } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook GULAppEnvironmentUtil |  | ||||||
| + (BOOL)isFromAppStore { return YES; } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook SSOConfiguration |  | ||||||
| - (id)initWithClientID:(id)clientID supportedAccountServices:(id)supportedAccountServices { |  | ||||||
|     self = %orig; |  | ||||||
|     [self setValue:YT_NAME forKey:@"_shortAppName"]; |  | ||||||
|     [self setValue:YT_BUNDLE_ID forKey:@"_applicationIdentifier"]; |  | ||||||
|     return self; |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook NSBundle |  | ||||||
| - (NSString *)bundleIdentifier { |  | ||||||
|     NSArray *address = [NSThread callStackReturnAddresses]; |  | ||||||
|     Dl_info info = {0}; |  | ||||||
|     if (dladdr((void *)[address[2] longLongValue], &info) == 0) |  | ||||||
|         return %orig; |  | ||||||
|     NSString *path = [NSString stringWithUTF8String:info.dli_fname]; |  | ||||||
|     if ([path hasPrefix:NSBundle.mainBundle.bundlePath]) |  | ||||||
|         return YT_BUNDLE_ID; |  | ||||||
|     return %orig; |  | ||||||
| } |  | ||||||
| - (id)objectForInfoDictionaryKey:(NSString *)key { |  | ||||||
|     if ([key isEqualToString:@"CFBundleIdentifier"]) |  | ||||||
|         return YT_BUNDLE_ID; |  | ||||||
|     if ([key isEqualToString:@"CFBundleDisplayName"] || [key isEqualToString:@"CFBundleName"]) |  | ||||||
|         return YT_NAME; |  | ||||||
|     return %orig; |  | ||||||
| } |  | ||||||
| // Fix Google Sign in by @PoomSmart and @level3tjg (qnblackcat/uYouPlus#684) |  | ||||||
| - (NSDictionary *)infoDictionary { |  | ||||||
|     NSMutableDictionary *info = %orig.mutableCopy; |  | ||||||
|     NSString *altBundleIdentifier = info[@"ALTBundleIdentifier"]; |  | ||||||
|     if (altBundleIdentifier) info[@"CFBundleIdentifier"] = altBundleIdentifier; |  | ||||||
|     return info; |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Fix login for YouTube 18.13.2 and higher |  | ||||||
| %hook SSOKeychainHelper |  | ||||||
| + (NSString *)accessGroup { |  | ||||||
|     return accessGroupID(); |  | ||||||
| } |  | ||||||
| + (NSString *)sharedAccessGroup { |  | ||||||
|     return accessGroupID(); |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Fix login for YouTube 17.33.2 and higher - @BandarHL |  | ||||||
| // https://gist.github.com/BandarHL/492d50de46875f9ac7a056aad084ac10 |  | ||||||
| %hook SSOKeychainCore |  | ||||||
| + (NSString *)accessGroup { |  | ||||||
|     return accessGroupID(); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| + (NSString *)sharedAccessGroup { |  | ||||||
|     return accessGroupID(); |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Fix App Group Directory by move it to document directory |  | ||||||
| %hook NSFileManager |  | ||||||
| - (NSURL *)containerURLForSecurityApplicationGroupIdentifier:(NSString *)groupIdentifier { |  | ||||||
|     if (groupIdentifier != nil) { |  | ||||||
|         NSArray *paths = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask]; |  | ||||||
|         NSURL *documentsURL = [paths lastObject]; |  | ||||||
|         return [documentsURL URLByAppendingPathComponent:@"AppGroup"]; |  | ||||||
|     } |  | ||||||
|     return %orig(groupIdentifier); |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // BigYTMiniPlayer: https://github.com/Galactic-Dev/BigYTMiniPlayer | // BigYTMiniPlayer: https://github.com/Galactic-Dev/BigYTMiniPlayer | ||||||
| %group Main | %group Main | ||||||
| %hook YTWatchMiniBarView | %hook YTWatchMiniBarView | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 arichorn
					arichorn