Fix YouTube Native Share

Fixed by jkhsjdhjs
This commit is contained in:
aric3435 (OLD ACCOUNT) 2024-09-21 19:50:56 -05:00 committed by GitHub
parent 3fce150969
commit ad68078f4f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -102,27 +102,27 @@ typedef NS_ENUM(NSInteger, ShareEntityType) {
ShareEntityFieldClip = 8 ShareEntityFieldClip = 8
}; };
static inline NSString* extractIdWithFormat(GPBUnknownFieldSet *fields, NSInteger fieldNumber, NSString *format) { static inline NSString* extractIdWithFormat(GPBUnknownFields *fields, NSInteger fieldNumber, NSString *format) {
if (![fields hasField:fieldNumber]) NSArray<GPBUnknownField*> *fieldArray = [fields fields:fieldNumber];
if (!fieldArray)
return nil; return nil;
GPBUnknownField *idField = [fields getField:fieldNumber]; if ([fieldArray count] != 1)
if ([idField.lengthDelimitedList count] != 1)
return nil; return nil;
NSString *id = [[NSString alloc] initWithData:[idField.lengthDelimitedList firstObject] encoding:NSUTF8StringEncoding]; NSString *id = [[NSString alloc] initWithData:[fieldArray firstObject].lengthDelimited encoding:NSUTF8StringEncoding];
return [NSString stringWithFormat:format, id]; return [NSString stringWithFormat:format, id];
} }
static BOOL showNativeShareSheet(NSString *serializedShareEntity, UIView *sourceView) { static BOOL showNativeShareSheet(NSString *serializedShareEntity, UIView *sourceView) {
GPBMessage *shareEntity = [%c(GPBMessage) deserializeFromString:serializedShareEntity]; GPBMessage *shareEntity = [%c(GPBMessage) deserializeFromString:serializedShareEntity];
GPBUnknownFieldSet *fields = shareEntity.unknownFields; GPBUnknownFields *fields = [[%c(GPBUnknownFields) alloc] initFromMessage:shareEntity];
NSString *shareUrl; NSString *shareUrl;
if ([fields hasField:ShareEntityFieldClip]) { NSArray<GPBUnknownField*> *shareEntityClip = [fields fields:ShareEntityFieldClip];
GPBUnknownField *shareEntityClip = [fields getField:ShareEntityFieldClip]; if (shareEntityClip) {
if ([shareEntityClip.lengthDelimitedList count] != 1) if ([shareEntityClip count] != 1)
return NO; return NO;
GPBMessage *clipMessage = [%c(GPBMessage) parseFromData:[shareEntityClip.lengthDelimitedList firstObject] error:nil]; GPBMessage *clipMessage = [%c(GPBMessage) parseFromData:[shareEntityClip firstObject].lengthDelimited error:nil];
shareUrl = extractIdWithFormat(clipMessage.unknownFields, 1, @"https://youtube.com/clip/%@"); shareUrl = extractIdWithFormat([[%c(GPBUnknownFields) alloc] initFromMessage:clipMessage], 1, @"https://youtube.com/clip/%@");
} }
if (!shareUrl) if (!shareUrl)
@ -163,7 +163,7 @@ static BOOL showNativeShareSheet(NSString *serializedShareEntity, UIView *source
/* -------------------- iPad Layout -------------------- */ /* -------------------- iPad Layout -------------------- */
%group gYouTubeNativeShare // YouTube Native Share Option - 0.2.3 - Supports YouTube v17.33.2-v19.34.2 // %group gYouTubeNativeShare // YouTube Native Share Option - 0.2.3 - Supports YouTube v17.33.2-v19.34.2
%hook YTAccountScopedCommandResponderEvent %hook YTAccountScopedCommandResponderEvent
- (void)send { - (void)send {
GPBExtensionDescriptor *shareEntityEndpointDescriptor = [%c(YTIShareEntityEndpoint) shareEntityEndpoint]; GPBExtensionDescriptor *shareEntityEndpointDescriptor = [%c(YTIShareEntityEndpoint) shareEntityEndpoint];
@ -198,7 +198,7 @@ static BOOL showNativeShareSheet(NSString *serializedShareEntity, UIView *source
return %orig; return %orig;
} }
%end %end
%end // %end
// //