Files
featherVoice/TUIKit/TUIChat/CommonModel/TUIAIDenoiseSignatureManager.m
2025-08-08 10:49:36 +08:00

62 lines
1.9 KiB
Objective-C

// Created by Tencent on 2023/06/09.
// Copyright © 2023 Tencent. All rights reserved.
//
// TUIAIDenoiseSignatureManager.m
// TUIChat
//
#import "TUIAIDenoiseSignatureManager.h"
#import <ImSDK_Plus/ImSDK_Plus.h>
static TUIAIDenoiseSignatureManager *gSharedInstance = nil;
static NSString *const kAPIKey = @"getAIDenoiseSignature";
static NSString *const kSignatureKey = @"signature";
static NSString *const kExpiredTimeKey = @"expired_time";
@interface TUIAIDenoiseSignatureManager ()
@property(nonatomic, copy, readwrite) NSString *signature;
@property(nonatomic, assign) NSTimeInterval expiredTime;
@end
@implementation TUIAIDenoiseSignatureManager
+ (instancetype)sharedInstance {
static dispatch_once_t once_token;
dispatch_once(&once_token, ^{
gSharedInstance = [[TUIAIDenoiseSignatureManager alloc] init];
});
return gSharedInstance;
}
- (void)updateSignature {
NSTimeInterval currentTime = [[NSDate date] timeIntervalSince1970];
if (currentTime < self.expiredTime) {
return;
}
[[V2TIMManager sharedInstance] callExperimentalAPI:kAPIKey
param:nil
succ:^(NSObject *result) {
if (result == nil || ![result isKindOfClass:NSDictionary.class]) {
return;
}
NSDictionary *dict = (NSDictionary *)result;
if (dict[kSignatureKey] != nil && [dict[kSignatureKey] isKindOfClass:NSString.class]) {
self.signature = dict[kSignatureKey];
}
if (dict[kExpiredTimeKey] != nil && [dict[kExpiredTimeKey] isKindOfClass:NSNumber.class]) {
self.expiredTime = [dict[kExpiredTimeKey] doubleValue];
}
}
fail:^(int code, NSString *desc) {
NSLog(@"getAIDenoiseSignature failed, code: %d, desc: %@", code, desc);
}];
}
- (NSString *)signature {
[self updateSignature];
return _signature;
}
@end