48 lines
1.3 KiB
Objective-C
48 lines
1.3 KiB
Objective-C
//
|
|
// HPSharedItem.m
|
|
// HotPocket
|
|
//
|
|
// Created by Tomek Wójcik on 27/09/2025.
|
|
//
|
|
|
|
#import <UniformTypeIdentifiers/UniformTypeIdentifiers.h>
|
|
|
|
#import "HPSharedItem.h"
|
|
|
|
@implementation HPSharedItem
|
|
|
|
-(instancetype)initWithPayload:(id)payload typeIdentifier:(NSString *)typeIdentifier error:(NSError *)error {
|
|
if (self = [super init]) {
|
|
self.payload = payload;
|
|
self.typeIdentifier = typeIdentifier;
|
|
self.error = error;
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
-(NSURL *)maybeURL {
|
|
if (self.error != nil) {
|
|
return nil;
|
|
}
|
|
|
|
if ([self.typeIdentifier isEqualToString:[UTType typeWithFilenameExtension:@"plist"].identifier] == YES) {
|
|
NSDictionary *propertyList = self.payload;
|
|
NSDictionary *jsHelperResult = [propertyList valueForKey:NSExtensionJavaScriptPreprocessingResultsKey];
|
|
|
|
if ([jsHelperResult valueForKey:@"iHateComputers"] == nil) {
|
|
return nil;
|
|
}
|
|
|
|
return [NSURL URLWithString:[jsHelperResult valueForKey:@"url"]];
|
|
} else if ([self.typeIdentifier isEqualToString:@"public.url"] == YES) {
|
|
return self.payload;
|
|
} if ([self.typeIdentifier isEqualToString:@"public.plain-text"] == YES) {
|
|
return [NSURL URLWithString:self.payload];
|
|
}
|
|
|
|
return nil;
|
|
}
|
|
|
|
@end
|