|
@@ -1,337 +1,337 @@
|
|
|
+////
|
|
|
+//// KMRecommondInfo.m
|
|
|
+//// PDF Reader Pro Edition
|
|
|
+////
|
|
|
+//// Created by Niehaoyu on 2023/4/11.
|
|
|
+////
|
|
|
//
|
|
|
-// KMRecommondInfo.m
|
|
|
-// PDF Reader Pro Edition
|
|
|
-//
|
|
|
-// Created by Niehaoyu on 2023/4/11.
|
|
|
-//
|
|
|
-
|
|
|
-#import "KMRecommondInfo.h"
|
|
|
-#import <Cocoa/Cocoa.h>
|
|
|
-
|
|
|
-@interface KMRecommond ()
|
|
|
-
|
|
|
-@property (nonatomic, strong, readwrite) NSMutableArray <KMRecommondInfo *> *recommondInfoArrM;
|
|
|
-
|
|
|
-@property (nonatomic, copy) NSDictionary *infoDict;
|
|
|
-
|
|
|
-@end
|
|
|
-
|
|
|
-@implementation KMRecommond
|
|
|
-
|
|
|
-- (id)init {
|
|
|
- self = [super init];
|
|
|
- if (self) {
|
|
|
- self.recommondInfoArrM = [[NSMutableArray alloc] init];
|
|
|
- }
|
|
|
- return self;
|
|
|
-}
|
|
|
-
|
|
|
-- (id)initWithDict:(NSDictionary *)dict {
|
|
|
- self = [super init];
|
|
|
- if (self) {
|
|
|
- self.infoDict = dict;
|
|
|
- self.recommondInfoArrM = [[NSMutableArray alloc] init];
|
|
|
- if (self.infoDict[@"content"]) {
|
|
|
- for (NSDictionary *contentDict in self.infoDict[@"content"]) {
|
|
|
- KMRecommondInfo *info = [[KMRecommondInfo alloc] initWithDict:contentDict];
|
|
|
- [self.recommondInfoArrM addObject:info];
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return self;
|
|
|
-}
|
|
|
-
|
|
|
-#pragma mark - Setter and Getter
|
|
|
-- (NSString *)versionKey {
|
|
|
- if (!_versionKey) {
|
|
|
- if (self.infoDict[@"version"]) {
|
|
|
- _versionKey = self.infoDict[@"version"];
|
|
|
- }
|
|
|
- }
|
|
|
- return _versionKey;
|
|
|
-}
|
|
|
-
|
|
|
-- (NSString *)name {
|
|
|
- if (!_name) {
|
|
|
- if (self.infoDict[@"name"]) {
|
|
|
- NSDictionary *valueDict = self.infoDict[@"name"];
|
|
|
- _name = [valueDict objectForKey:[KMRecommondInfo languageKey]];
|
|
|
- }
|
|
|
- }
|
|
|
- return _name;
|
|
|
-}
|
|
|
-
|
|
|
-@end
|
|
|
-
|
|
|
-
|
|
|
-#pragma mark - KMRecommondInfo
|
|
|
-@interface KMRecommondInfo ()
|
|
|
-
|
|
|
-@property (nonatomic, copy) NSDictionary *infoDict;
|
|
|
-
|
|
|
-@end
|
|
|
-
|
|
|
-@implementation KMRecommondInfo
|
|
|
-
|
|
|
-+ (NSString *)languageKey {
|
|
|
- NSString *language = [[NSBundle mainBundle] preferredLocalizations][0];
|
|
|
- if ([language isEqualToString:@"zh_CN"]) {
|
|
|
- return @"zh_CN";
|
|
|
- } else if ([language isEqualToString:@"zh_TW"]) {
|
|
|
- return @"zh_TW";
|
|
|
- }
|
|
|
- return @"en";
|
|
|
-}
|
|
|
-
|
|
|
-+ (NSString *)cacheDirs {
|
|
|
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
|
|
|
- NSString *cachesDir = [paths objectAtIndex:0];
|
|
|
-
|
|
|
- if ([[NSFileManager defaultManager] fileExistsAtPath:[cachesDir stringByAppendingPathComponent:[NSBundle mainBundle].bundleIdentifier]]) {
|
|
|
- cachesDir = [cachesDir stringByAppendingPathComponent:[NSBundle mainBundle].bundleIdentifier];
|
|
|
- }
|
|
|
- cachesDir = [cachesDir stringByAppendingPathComponent:@"Advertisement/ImageCache"];
|
|
|
- if (![[NSFileManager defaultManager] fileExistsAtPath:cachesDir]) {
|
|
|
- [[NSFileManager defaultManager] createDirectoryAtPath:cachesDir withIntermediateDirectories:YES attributes:nil error:nil];
|
|
|
- }
|
|
|
- return cachesDir;
|
|
|
-}
|
|
|
-
|
|
|
-+ (BOOL)isDarkMode {
|
|
|
- BOOL isDarkMode = NO;
|
|
|
-// if (@available(macOS 10.14, *)) {
|
|
|
-// NSAppearanceName appearanceName = [[NSApp effectiveAppearance] bestMatchFromAppearancesWithNames:@[NSAppearanceNameAqua, NSAppearanceNameDarkAqua]];
|
|
|
-// if ([appearanceName isEqualToString:NSAppearanceNameDarkAqua]) {
|
|
|
-// isDarkMode = YES;
|
|
|
+//#import "KMRecommondInfo.h"
|
|
|
+//#import <Cocoa/Cocoa.h>
|
|
|
+//
|
|
|
+//@interface KMRecommond ()
|
|
|
+//
|
|
|
+//@property (nonatomic, strong, readwrite) NSMutableArray <KMRecommondInfo *> *recommondInfoArrM;
|
|
|
+//
|
|
|
+//@property (nonatomic, copy) NSDictionary *infoDict;
|
|
|
+//
|
|
|
+//@end
|
|
|
+//
|
|
|
+//@implementation KMRecommond
|
|
|
+//
|
|
|
+//- (id)init {
|
|
|
+// self = [super init];
|
|
|
+// if (self) {
|
|
|
+// self.recommondInfoArrM = [[NSMutableArray alloc] init];
|
|
|
+// }
|
|
|
+// return self;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (id)initWithDict:(NSDictionary *)dict {
|
|
|
+// self = [super init];
|
|
|
+// if (self) {
|
|
|
+// self.infoDict = dict;
|
|
|
+// self.recommondInfoArrM = [[NSMutableArray alloc] init];
|
|
|
+// if (self.infoDict[@"content"]) {
|
|
|
+// for (NSDictionary *contentDict in self.infoDict[@"content"]) {
|
|
|
+// KMRecommondInfo *info = [[KMRecommondInfo alloc] initWithDict:contentDict];
|
|
|
+// [self.recommondInfoArrM addObject:info];
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// return self;
|
|
|
+//}
|
|
|
+//
|
|
|
+//#pragma mark - Setter and Getter
|
|
|
+//- (NSString *)versionKey {
|
|
|
+// if (!_versionKey) {
|
|
|
+// if (self.infoDict[@"version"]) {
|
|
|
+// _versionKey = self.infoDict[@"version"];
|
|
|
+// }
|
|
|
+// }
|
|
|
+// return _versionKey;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (NSString *)name {
|
|
|
+// if (!_name) {
|
|
|
+// if (self.infoDict[@"name"]) {
|
|
|
+// NSDictionary *valueDict = self.infoDict[@"name"];
|
|
|
+// _name = [valueDict objectForKey:[KMRecommondInfo languageKey]];
|
|
|
+// }
|
|
|
+// }
|
|
|
+// return _name;
|
|
|
+//}
|
|
|
+//
|
|
|
+//@end
|
|
|
+//
|
|
|
+//
|
|
|
+//#pragma mark - KMRecommondInfo
|
|
|
+//@interface KMRecommondInfo ()
|
|
|
+//
|
|
|
+//@property (nonatomic, copy) NSDictionary *infoDict;
|
|
|
+//
|
|
|
+//@end
|
|
|
+//
|
|
|
+//@implementation KMRecommondInfo
|
|
|
+//
|
|
|
+//+ (NSString *)languageKey {
|
|
|
+// NSString *language = [[NSBundle mainBundle] preferredLocalizations][0];
|
|
|
+// if ([language isEqualToString:@"zh_CN"]) {
|
|
|
+// return @"zh_CN";
|
|
|
+// } else if ([language isEqualToString:@"zh_TW"]) {
|
|
|
+// return @"zh_TW";
|
|
|
+// }
|
|
|
+// return @"en";
|
|
|
+//}
|
|
|
+//
|
|
|
+//+ (NSString *)cacheDirs {
|
|
|
+// NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
|
|
|
+// NSString *cachesDir = [paths objectAtIndex:0];
|
|
|
+//
|
|
|
+// if ([[NSFileManager defaultManager] fileExistsAtPath:[cachesDir stringByAppendingPathComponent:[NSBundle mainBundle].bundleIdentifier]]) {
|
|
|
+// cachesDir = [cachesDir stringByAppendingPathComponent:[NSBundle mainBundle].bundleIdentifier];
|
|
|
+// }
|
|
|
+// cachesDir = [cachesDir stringByAppendingPathComponent:@"Advertisement/ImageCache"];
|
|
|
+// if (![[NSFileManager defaultManager] fileExistsAtPath:cachesDir]) {
|
|
|
+// [[NSFileManager defaultManager] createDirectoryAtPath:cachesDir withIntermediateDirectories:YES attributes:nil error:nil];
|
|
|
+// }
|
|
|
+// return cachesDir;
|
|
|
+//}
|
|
|
+//
|
|
|
+//+ (BOOL)isDarkMode {
|
|
|
+// BOOL isDarkMode = NO;
|
|
|
+//// if (@available(macOS 10.14, *)) {
|
|
|
+//// NSAppearanceName appearanceName = [[NSApp effectiveAppearance] bestMatchFromAppearancesWithNames:@[NSAppearanceNameAqua, NSAppearanceNameDarkAqua]];
|
|
|
+//// if ([appearanceName isEqualToString:NSAppearanceNameDarkAqua]) {
|
|
|
+//// isDarkMode = YES;
|
|
|
+//// }
|
|
|
+//// }
|
|
|
+// return isDarkMode;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (id)initWithDict:(NSDictionary *)dict {
|
|
|
+// self = [super init];
|
|
|
+// if (self) {
|
|
|
+// self.infoDict = dict;
|
|
|
+// }
|
|
|
+// return self;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (id)init {
|
|
|
+// self = [super init];
|
|
|
+// if (self) {
|
|
|
+//
|
|
|
+// }
|
|
|
+// return self;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (BOOL)show {
|
|
|
+// if ([self.infoDict[@"show"] boolValue]) {
|
|
|
+// double startDateKey = [self.infoDict[@"startTime"] doubleValue];
|
|
|
+// double endDateKey = [self.infoDict[@"endTime"] doubleValue];
|
|
|
+// if (startDateKey > 1000000000) {
|
|
|
+// startDateKey = startDateKey/1000;
|
|
|
+// }
|
|
|
+// if (endDateKey > 1000000000) {
|
|
|
+// endDateKey = endDateKey/1000;
|
|
|
+// }
|
|
|
+//
|
|
|
+// NSDate *startDate = [NSDate dateWithTimeIntervalSince1970:startDateKey];
|
|
|
+// NSDate *endDate = [NSDate dateWithTimeIntervalSince1970:endDateKey];
|
|
|
+//
|
|
|
+// if ([startDate compare:[NSDate date]] == NSOrderedAscending &&
|
|
|
+// [endDate compare:[NSDate date]] == NSOrderedDescending) {
|
|
|
+// return YES;
|
|
|
+// };
|
|
|
+// }
|
|
|
+// return NO;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (KMRecommondShowType)showType {
|
|
|
+// KMRecommondShowType type = KMRecommondShowType_None;
|
|
|
+// if ([self.infoDict[@"subscriptionType"] isEqualToString:@"0"]) {
|
|
|
+// type = KMRecommondShowType_All;
|
|
|
+// } else if ([self.infoDict[@"subscriptionType"] isEqualToString:@"2"]) {
|
|
|
+// type = KMRecommondShowType_Pro;
|
|
|
+// } else if ([self.infoDict[@"subscriptionType"] isEqualToString:@"1"]) {
|
|
|
+// type = KMRecommondShowType_Lite;
|
|
|
+// }
|
|
|
+// return type;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (NSDate *)startDate {
|
|
|
+// if ([self.infoDict[@"endTime"] boolValue]) {
|
|
|
+// double startDateKey = [self.infoDict[@"endTime"] doubleValue];
|
|
|
+// if (startDateKey > 1000000000) {
|
|
|
+// startDateKey = startDateKey/1000;
|
|
|
+// }
|
|
|
+// NSDate *startDate = [NSDate dateWithTimeIntervalSince1970:startDateKey];
|
|
|
+// return startDate;
|
|
|
+// }
|
|
|
+// return nil;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (NSDate *)endDate {
|
|
|
+// if ([self.infoDict[@"startTime"] boolValue]) {
|
|
|
+// double startDateKey = [self.infoDict[@"startTime"] doubleValue];
|
|
|
+// if (startDateKey > 1000000000) {
|
|
|
+// startDateKey = startDateKey/1000;
|
|
|
// }
|
|
|
+// NSDate *startDate = [NSDate dateWithTimeIntervalSince1970:startDateKey];
|
|
|
+// return startDate;
|
|
|
+// }
|
|
|
+// return nil;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (NSString *)versionKey {
|
|
|
+// if (self.infoDict[@"version"]) {
|
|
|
+// return self.infoDict[@"version"];
|
|
|
+// }
|
|
|
+// return @"";
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (BOOL)showCloseBtn {
|
|
|
+// if ([self.infoDict[@"showCloseBtn"] boolValue]) {
|
|
|
+// return YES;
|
|
|
+// }
|
|
|
+// return NO;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (NSString *)title {
|
|
|
+// if (self.infoDict[@"name"]) {
|
|
|
+// NSDictionary *valueDict = self.infoDict[@"name"];
|
|
|
+// return [valueDict objectForKey:[KMRecommondInfo languageKey]]?:@"";
|
|
|
+// }
|
|
|
+// return @"";
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (NSString *)tooltips {
|
|
|
+// if (self.infoDict[@"tooltip"]) {
|
|
|
+// NSDictionary *valueDict = self.infoDict[@"tooltip"];
|
|
|
+// return [valueDict objectForKey:[KMRecommondInfo languageKey]]?:@"";
|
|
|
+// }
|
|
|
+// return @"";
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (NSString *)linkURL {
|
|
|
+// if (self.infoDict[@"linkURL"]) {
|
|
|
+// NSDictionary *valueDict = self.infoDict[@"linkURL"];
|
|
|
+// return [valueDict objectForKey:[KMRecommondInfo languageKey]]?:@"";
|
|
|
+// }
|
|
|
+// return @"";
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (NSImage *)normalImage {
|
|
|
+// NSString *imageName = [self versionKey]?:@"";
|
|
|
+// if ([KMRecommondInfo isDarkMode]) {
|
|
|
+// NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"normal_Dark"]];
|
|
|
+// imageName = [imageName stringByAppendingString:[NSString stringWithFormat:@"%@.%@",@"-normal_Dark",url.path.pathExtension]];
|
|
|
+// } else {
|
|
|
+// NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"normal_Light"]];
|
|
|
+// imageName = [imageName stringByAppendingString:[NSString stringWithFormat:@"%@.%@",@"-normal_Light",url.path.pathExtension]];
|
|
|
+// }
|
|
|
+// NSString *imgSavePath = [[KMRecommondInfo cacheDirs] stringByAppendingPathComponent:imageName];
|
|
|
+// if ([[NSFileManager defaultManager] fileExistsAtPath:imgSavePath]) {
|
|
|
+// return [[NSImage alloc] initWithContentsOfFile:imgSavePath];
|
|
|
// }
|
|
|
- return isDarkMode;
|
|
|
-}
|
|
|
-
|
|
|
-- (id)initWithDict:(NSDictionary *)dict {
|
|
|
- self = [super init];
|
|
|
- if (self) {
|
|
|
- self.infoDict = dict;
|
|
|
- }
|
|
|
- return self;
|
|
|
-}
|
|
|
-
|
|
|
-- (id)init {
|
|
|
- self = [super init];
|
|
|
- if (self) {
|
|
|
-
|
|
|
- }
|
|
|
- return self;
|
|
|
-}
|
|
|
-
|
|
|
-- (BOOL)show {
|
|
|
- if ([self.infoDict[@"show"] boolValue]) {
|
|
|
- double startDateKey = [self.infoDict[@"startTime"] doubleValue];
|
|
|
- double endDateKey = [self.infoDict[@"endTime"] doubleValue];
|
|
|
- if (startDateKey > 1000000000) {
|
|
|
- startDateKey = startDateKey/1000;
|
|
|
- }
|
|
|
- if (endDateKey > 1000000000) {
|
|
|
- endDateKey = endDateKey/1000;
|
|
|
- }
|
|
|
-
|
|
|
- NSDate *startDate = [NSDate dateWithTimeIntervalSince1970:startDateKey];
|
|
|
- NSDate *endDate = [NSDate dateWithTimeIntervalSince1970:endDateKey];
|
|
|
-
|
|
|
- if ([startDate compare:[NSDate date]] == NSOrderedAscending &&
|
|
|
- [endDate compare:[NSDate date]] == NSOrderedDescending) {
|
|
|
- return YES;
|
|
|
- };
|
|
|
- }
|
|
|
- return NO;
|
|
|
-}
|
|
|
-
|
|
|
-- (KMRecommondShowType)showType {
|
|
|
- KMRecommondShowType type = KMRecommondShowType_None;
|
|
|
- if ([self.infoDict[@"subscriptionType"] isEqualToString:@"0"]) {
|
|
|
- type = KMRecommondShowType_All;
|
|
|
- } else if ([self.infoDict[@"subscriptionType"] isEqualToString:@"2"]) {
|
|
|
- type = KMRecommondShowType_Pro;
|
|
|
- } else if ([self.infoDict[@"subscriptionType"] isEqualToString:@"1"]) {
|
|
|
- type = KMRecommondShowType_Lite;
|
|
|
- }
|
|
|
- return type;
|
|
|
-}
|
|
|
-
|
|
|
-- (NSDate *)startDate {
|
|
|
- if ([self.infoDict[@"endTime"] boolValue]) {
|
|
|
- double startDateKey = [self.infoDict[@"endTime"] doubleValue];
|
|
|
- if (startDateKey > 1000000000) {
|
|
|
- startDateKey = startDateKey/1000;
|
|
|
- }
|
|
|
- NSDate *startDate = [NSDate dateWithTimeIntervalSince1970:startDateKey];
|
|
|
- return startDate;
|
|
|
- }
|
|
|
- return nil;
|
|
|
-}
|
|
|
-
|
|
|
-- (NSDate *)endDate {
|
|
|
- if ([self.infoDict[@"startTime"] boolValue]) {
|
|
|
- double startDateKey = [self.infoDict[@"startTime"] doubleValue];
|
|
|
- if (startDateKey > 1000000000) {
|
|
|
- startDateKey = startDateKey/1000;
|
|
|
- }
|
|
|
- NSDate *startDate = [NSDate dateWithTimeIntervalSince1970:startDateKey];
|
|
|
- return startDate;
|
|
|
- }
|
|
|
- return nil;
|
|
|
-}
|
|
|
-
|
|
|
-- (NSString *)versionKey {
|
|
|
- if (self.infoDict[@"version"]) {
|
|
|
- return self.infoDict[@"version"];
|
|
|
- }
|
|
|
- return @"";
|
|
|
-}
|
|
|
-
|
|
|
-- (BOOL)showCloseBtn {
|
|
|
- if ([self.infoDict[@"showCloseBtn"] boolValue]) {
|
|
|
- return YES;
|
|
|
- }
|
|
|
- return NO;
|
|
|
-}
|
|
|
-
|
|
|
-- (NSString *)title {
|
|
|
- if (self.infoDict[@"name"]) {
|
|
|
- NSDictionary *valueDict = self.infoDict[@"name"];
|
|
|
- return [valueDict objectForKey:[KMRecommondInfo languageKey]]?:@"";
|
|
|
- }
|
|
|
- return @"";
|
|
|
-}
|
|
|
-
|
|
|
-- (NSString *)tooltips {
|
|
|
- if (self.infoDict[@"tooltip"]) {
|
|
|
- NSDictionary *valueDict = self.infoDict[@"tooltip"];
|
|
|
- return [valueDict objectForKey:[KMRecommondInfo languageKey]]?:@"";
|
|
|
- }
|
|
|
- return @"";
|
|
|
-}
|
|
|
-
|
|
|
-- (NSString *)linkURL {
|
|
|
- if (self.infoDict[@"linkURL"]) {
|
|
|
- NSDictionary *valueDict = self.infoDict[@"linkURL"];
|
|
|
- return [valueDict objectForKey:[KMRecommondInfo languageKey]]?:@"";
|
|
|
- }
|
|
|
- return @"";
|
|
|
-}
|
|
|
-
|
|
|
-- (NSImage *)normalImage {
|
|
|
- NSString *imageName = [self versionKey]?:@"";
|
|
|
- if ([KMRecommondInfo isDarkMode]) {
|
|
|
- NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"normal_Dark"]];
|
|
|
- imageName = [imageName stringByAppendingString:[NSString stringWithFormat:@"%@.%@",@"-normal_Dark",url.path.pathExtension]];
|
|
|
- } else {
|
|
|
- NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"normal_Light"]];
|
|
|
- imageName = [imageName stringByAppendingString:[NSString stringWithFormat:@"%@.%@",@"-normal_Light",url.path.pathExtension]];
|
|
|
- }
|
|
|
- NSString *imgSavePath = [[KMRecommondInfo cacheDirs] stringByAppendingPathComponent:imageName];
|
|
|
- if ([[NSFileManager defaultManager] fileExistsAtPath:imgSavePath]) {
|
|
|
- return [[NSImage alloc] initWithContentsOfFile:imgSavePath];
|
|
|
- }
|
|
|
-
|
|
|
- if ([KMRecommondInfo isDarkMode]) {
|
|
|
- NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"normal_Dark"]];
|
|
|
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
- NSData *data = [[NSData alloc] initWithContentsOfURL:url];
|
|
|
- [data writeToFile:imgSavePath atomically:YES];
|
|
|
- [[NSNotificationCenter defaultCenter] postNotificationName:@"KMRecommondInfoUpdateNoti" object:@{@"unique":[self versionKey]}];
|
|
|
- });
|
|
|
- } else {
|
|
|
- NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"normal_Light"]];
|
|
|
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
- NSData *data = [[NSData alloc] initWithContentsOfURL:url];
|
|
|
- [data writeToFile:imgSavePath atomically:YES];
|
|
|
- [[NSNotificationCenter defaultCenter] postNotificationName:@"KMRecommondInfoUpdateNoti" object:@{@"unique":[self versionKey]}];
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- return nil;
|
|
|
-}
|
|
|
-
|
|
|
-- (NSImage *)hoverImage {
|
|
|
- NSString *imageName = [self versionKey]?:@"";
|
|
|
- if ([KMRecommondInfo isDarkMode]) {
|
|
|
- NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"hover_Dark"]];
|
|
|
- imageName = [imageName stringByAppendingString:[NSString stringWithFormat:@"%@.%@",@"-hover_Dark",url.path.pathExtension]];
|
|
|
- } else {
|
|
|
- NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"hover_Light"]];
|
|
|
- imageName = [imageName stringByAppendingString:[NSString stringWithFormat:@"%@.%@",@"-hover_Light",url.path.pathExtension]];
|
|
|
- }
|
|
|
- NSString *imgSavePath = [[KMRecommondInfo cacheDirs] stringByAppendingPathComponent:imageName];
|
|
|
- if ([[NSFileManager defaultManager] fileExistsAtPath:imgSavePath]) {
|
|
|
- return [[NSImage alloc] initWithContentsOfFile:imgSavePath];
|
|
|
- }
|
|
|
-
|
|
|
- if ([KMRecommondInfo isDarkMode]) {
|
|
|
- NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"hover_Dark"]];
|
|
|
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
- NSData *data = [[NSData alloc] initWithContentsOfURL:url];
|
|
|
- [data writeToFile:imgSavePath atomically:YES];
|
|
|
- [[NSNotificationCenter defaultCenter] postNotificationName:@"KMRecommondInfoUpdateNoti" object:@{@"unique":[self versionKey]}];
|
|
|
- });
|
|
|
- } else {
|
|
|
- NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"hover_Light"]];
|
|
|
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
- NSData *data = [[NSData alloc] initWithContentsOfURL:url];
|
|
|
- [data writeToFile:imgSavePath atomically:YES];
|
|
|
- [[NSNotificationCenter defaultCenter] postNotificationName:@"KMRecommondInfoUpdateNoti" object:@{@"unique":[self versionKey]}];
|
|
|
- });
|
|
|
- }
|
|
|
- return nil;
|
|
|
-}
|
|
|
-
|
|
|
-- (NSImage *)iconImage {
|
|
|
- NSString *imageName = [self versionKey]?:@"";
|
|
|
- NSURL *url = [NSURL URLWithString:[self.infoDict[@"image"] objectForKey:[KMRecommondInfo languageKey]]];
|
|
|
- imageName = [imageName stringByAppendingString:[NSString stringWithFormat:@"%@.%@",@"-iconImage",url.path.pathExtension]];
|
|
|
-
|
|
|
- NSString *imgSavePath = [[KMRecommondInfo cacheDirs] stringByAppendingPathComponent:imageName];
|
|
|
- if ([[NSFileManager defaultManager] fileExistsAtPath:imgSavePath]) {
|
|
|
- return [[NSImage alloc] initWithContentsOfFile:imgSavePath];
|
|
|
- }
|
|
|
-
|
|
|
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
- NSData *data = [[NSData alloc] initWithContentsOfURL:url];
|
|
|
- [data writeToFile:imgSavePath atomically:YES];
|
|
|
- [[NSNotificationCenter defaultCenter] postNotificationName:@"KMRecommondInfoUpdateNoti" object:@{@"unique":[self versionKey]}];
|
|
|
- });
|
|
|
-
|
|
|
- return nil;
|
|
|
-}
|
|
|
-
|
|
|
-- (NSString *)firebaseEvent {
|
|
|
- if (self.infoDict[@"Firebase"]) {
|
|
|
- return self.infoDict[@"Firebase"][@"Event"]?:@"";
|
|
|
- }
|
|
|
- return nil;
|
|
|
-}
|
|
|
-
|
|
|
-- (NSString *)firebasePropertyKey {
|
|
|
- if (self.infoDict[@"Firebase"]) {
|
|
|
- return self.infoDict[@"Firebase"][@"PropertyKey"]?:@"";
|
|
|
- }
|
|
|
- return nil;
|
|
|
-}
|
|
|
-
|
|
|
-- (NSString *)firebasePropertyValue {
|
|
|
- if (self.infoDict[@"Firebase"]) {
|
|
|
- return self.infoDict[@"Firebase"][@"PropertyValue"]?:@"";
|
|
|
- }
|
|
|
- return nil;
|
|
|
-}
|
|
|
-
|
|
|
-#pragma mark - Public Method
|
|
|
-- (void)updateValue:(NSString *)value forKey:(NSString *)key {
|
|
|
- if (self.infoDict[key]) {
|
|
|
- NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithDictionary:self.infoDict];
|
|
|
- [dict setValue:value forKey:key];
|
|
|
- self.infoDict = dict;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-@end
|
|
|
+//
|
|
|
+// if ([KMRecommondInfo isDarkMode]) {
|
|
|
+// NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"normal_Dark"]];
|
|
|
+// dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+// NSData *data = [[NSData alloc] initWithContentsOfURL:url];
|
|
|
+// [data writeToFile:imgSavePath atomically:YES];
|
|
|
+// [[NSNotificationCenter defaultCenter] postNotificationName:@"KMRecommondInfoUpdateNoti" object:@{@"unique":[self versionKey]}];
|
|
|
+// });
|
|
|
+// } else {
|
|
|
+// NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"normal_Light"]];
|
|
|
+// dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+// NSData *data = [[NSData alloc] initWithContentsOfURL:url];
|
|
|
+// [data writeToFile:imgSavePath atomically:YES];
|
|
|
+// [[NSNotificationCenter defaultCenter] postNotificationName:@"KMRecommondInfoUpdateNoti" object:@{@"unique":[self versionKey]}];
|
|
|
+// });
|
|
|
+// }
|
|
|
+//
|
|
|
+// return nil;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (NSImage *)hoverImage {
|
|
|
+// NSString *imageName = [self versionKey]?:@"";
|
|
|
+// if ([KMRecommondInfo isDarkMode]) {
|
|
|
+// NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"hover_Dark"]];
|
|
|
+// imageName = [imageName stringByAppendingString:[NSString stringWithFormat:@"%@.%@",@"-hover_Dark",url.path.pathExtension]];
|
|
|
+// } else {
|
|
|
+// NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"hover_Light"]];
|
|
|
+// imageName = [imageName stringByAppendingString:[NSString stringWithFormat:@"%@.%@",@"-hover_Light",url.path.pathExtension]];
|
|
|
+// }
|
|
|
+// NSString *imgSavePath = [[KMRecommondInfo cacheDirs] stringByAppendingPathComponent:imageName];
|
|
|
+// if ([[NSFileManager defaultManager] fileExistsAtPath:imgSavePath]) {
|
|
|
+// return [[NSImage alloc] initWithContentsOfFile:imgSavePath];
|
|
|
+// }
|
|
|
+//
|
|
|
+// if ([KMRecommondInfo isDarkMode]) {
|
|
|
+// NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"hover_Dark"]];
|
|
|
+// dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+// NSData *data = [[NSData alloc] initWithContentsOfURL:url];
|
|
|
+// [data writeToFile:imgSavePath atomically:YES];
|
|
|
+// [[NSNotificationCenter defaultCenter] postNotificationName:@"KMRecommondInfoUpdateNoti" object:@{@"unique":[self versionKey]}];
|
|
|
+// });
|
|
|
+// } else {
|
|
|
+// NSURL *url = [NSURL URLWithString:self.infoDict[@"image"][@"hover_Light"]];
|
|
|
+// dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+// NSData *data = [[NSData alloc] initWithContentsOfURL:url];
|
|
|
+// [data writeToFile:imgSavePath atomically:YES];
|
|
|
+// [[NSNotificationCenter defaultCenter] postNotificationName:@"KMRecommondInfoUpdateNoti" object:@{@"unique":[self versionKey]}];
|
|
|
+// });
|
|
|
+// }
|
|
|
+// return nil;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (NSImage *)iconImage {
|
|
|
+// NSString *imageName = [self versionKey]?:@"";
|
|
|
+// NSURL *url = [NSURL URLWithString:[self.infoDict[@"image"] objectForKey:[KMRecommondInfo languageKey]]];
|
|
|
+// imageName = [imageName stringByAppendingString:[NSString stringWithFormat:@"%@.%@",@"-iconImage",url.path.pathExtension]];
|
|
|
+//
|
|
|
+// NSString *imgSavePath = [[KMRecommondInfo cacheDirs] stringByAppendingPathComponent:imageName];
|
|
|
+// if ([[NSFileManager defaultManager] fileExistsAtPath:imgSavePath]) {
|
|
|
+// return [[NSImage alloc] initWithContentsOfFile:imgSavePath];
|
|
|
+// }
|
|
|
+//
|
|
|
+// dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+// NSData *data = [[NSData alloc] initWithContentsOfURL:url];
|
|
|
+// [data writeToFile:imgSavePath atomically:YES];
|
|
|
+// [[NSNotificationCenter defaultCenter] postNotificationName:@"KMRecommondInfoUpdateNoti" object:@{@"unique":[self versionKey]}];
|
|
|
+// });
|
|
|
+//
|
|
|
+// return nil;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (NSString *)firebaseEvent {
|
|
|
+// if (self.infoDict[@"Firebase"]) {
|
|
|
+// return self.infoDict[@"Firebase"][@"Event"]?:@"";
|
|
|
+// }
|
|
|
+// return nil;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (NSString *)firebasePropertyKey {
|
|
|
+// if (self.infoDict[@"Firebase"]) {
|
|
|
+// return self.infoDict[@"Firebase"][@"PropertyKey"]?:@"";
|
|
|
+// }
|
|
|
+// return nil;
|
|
|
+//}
|
|
|
+//
|
|
|
+//- (NSString *)firebasePropertyValue {
|
|
|
+// if (self.infoDict[@"Firebase"]) {
|
|
|
+// return self.infoDict[@"Firebase"][@"PropertyValue"]?:@"";
|
|
|
+// }
|
|
|
+// return nil;
|
|
|
+//}
|
|
|
+//
|
|
|
+//#pragma mark - Public Method
|
|
|
+//- (void)updateValue:(NSString *)value forKey:(NSString *)key {
|
|
|
+// if (self.infoDict[key]) {
|
|
|
+// NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithDictionary:self.infoDict];
|
|
|
+// [dict setValue:value forKey:key];
|
|
|
+// self.infoDict = dict;
|
|
|
+// }
|
|
|
+//}
|
|
|
+//
|
|
|
+//@end
|