Files
keyboard/keyBoard/Class/AiTalk/M/KBAiChatMessage.m

97 lines
2.8 KiB
Mathematica
Raw Normal View History

2026-01-23 21:51:37 +08:00
//
// KBAiChatMessage.m
// keyBoard
//
// Created by Kiro on 2026/1/23.
//
#import "KBAiChatMessage.h"
@implementation KBAiChatMessage
2026-01-29 14:42:49 +08:00
+ (instancetype)loadingUserMessage {
KBAiChatMessage *message = [[KBAiChatMessage alloc] init];
message.type = KBAiChatMessageTypeUser;
message.text = @"";
message.timestamp = [NSDate date];
message.isComplete = NO;
message.isLoading = YES;
return message;
}
2026-01-23 21:51:37 +08:00
+ (instancetype)userMessageWithText:(NSString *)text {
KBAiChatMessage *message = [[KBAiChatMessage alloc] init];
message.type = KBAiChatMessageTypeUser;
message.text = text;
message.timestamp = [NSDate date];
message.isComplete = YES;
2026-01-29 14:42:49 +08:00
message.isLoading = NO;
2026-01-23 21:51:37 +08:00
return message;
}
+ (instancetype)assistantMessageWithText:(NSString *)text
audioDuration:(NSTimeInterval)duration
audioData:(NSData *)audioData {
KBAiChatMessage *message = [[KBAiChatMessage alloc] init];
message.type = KBAiChatMessageTypeAssistant;
message.text = text;
message.timestamp = [NSDate date];
message.audioDuration = duration;
message.audioData = audioData;
message.isComplete = NO;
2026-01-29 14:42:49 +08:00
message.isLoading = NO;
2026-01-23 21:51:37 +08:00
return message;
}
+ (instancetype)assistantMessageWithText:(NSString *)text
audioId:(NSString *)audioId {
KBAiChatMessage *message = [[KBAiChatMessage alloc] init];
message.type = KBAiChatMessageTypeAssistant;
message.text = text;
message.timestamp = [NSDate date];
message.audioId = audioId;
message.audioDuration = 0;
message.audioData = nil;
message.isComplete = NO;
2026-01-29 14:42:49 +08:00
message.isLoading = NO;
2026-01-23 21:51:37 +08:00
return message;
}
+ (instancetype)assistantMessageWithText:(NSString *)text {
KBAiChatMessage *message = [[KBAiChatMessage alloc] init];
message.type = KBAiChatMessageTypeAssistant;
message.text = text;
message.timestamp = [NSDate date];
message.audioId = nil;
message.audioDuration = 0;
message.audioData = nil;
message.isComplete = NO;
2026-01-29 14:42:49 +08:00
message.isLoading = NO;
2026-01-23 21:51:37 +08:00
return message;
}
2026-01-29 20:56:24 +08:00
+ (instancetype)loadingAssistantMessage {
KBAiChatMessage *message = [[KBAiChatMessage alloc] init];
message.type = KBAiChatMessageTypeAssistant;
message.text = @"";
message.timestamp = [NSDate date];
message.audioId = nil;
message.audioDuration = 0;
message.audioData = nil;
message.isComplete = NO;
message.isLoading = YES;
message.needsTypewriterEffect = NO;
return message;
}
2026-01-23 21:51:37 +08:00
+ (instancetype)timeMessageWithTimestamp:(NSDate *)timestamp {
KBAiChatMessage *message = [[KBAiChatMessage alloc] init];
message.type = KBAiChatMessageTypeTime;
message.timestamp = timestamp;
message.isComplete = YES;
2026-01-29 14:42:49 +08:00
message.isLoading = NO;
2026-01-23 21:51:37 +08:00
return message;
}
@end