mirror of
https://github.com/Sunnyyoung/WeChatTweak-macOS.git
synced 2025-05-25 16:36:08 +08:00
Fixed revoke prompt message
This commit is contained in:
parent
50b4777ddb
commit
e1bc524ec3
|
@ -39,12 +39,14 @@
|
||||||
|
|
||||||
@property(nonatomic) unsigned int messageType;
|
@property(nonatomic) unsigned int messageType;
|
||||||
@property(nonatomic) unsigned int msgStatus;
|
@property(nonatomic) unsigned int msgStatus;
|
||||||
|
@property(nonatomic) long long mesSvrID;
|
||||||
@property(retain, nonatomic) NSString *toUsrName;
|
@property(retain, nonatomic) NSString *toUsrName;
|
||||||
@property(retain, nonatomic) NSString *fromUsrName;
|
@property(retain, nonatomic) NSString *fromUsrName;
|
||||||
@property(retain, nonatomic) NSString *msgContent;
|
@property(retain, nonatomic) NSString *msgContent;
|
||||||
@property(nonatomic) unsigned int msgCreateTime;
|
@property(nonatomic) unsigned int msgCreateTime;
|
||||||
@property(nonatomic) unsigned int mesLocalID;
|
@property(nonatomic) unsigned int mesLocalID;
|
||||||
|
|
||||||
|
- (instancetype)initWithMsgType:(long long)arg1;
|
||||||
- (BOOL)isSendFromSelf;
|
- (BOOL)isSendFromSelf;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -72,20 +72,19 @@ static void __attribute__((constructor)) tweak(void) {
|
||||||
|
|
||||||
#pragma mark - No Revoke Message
|
#pragma mark - No Revoke Message
|
||||||
|
|
||||||
- (void)tweak_onRevokeMsg:(NSString *)message {
|
- (void)tweak_onRevokeMsg:(MessageData *)message {
|
||||||
// Decode message
|
// Decode message
|
||||||
NSString *session = [message tweak_subStringFrom:@"<session>" to:@"</session>"];
|
NSString *session = [message.msgContent tweak_subStringFrom:@"<session>" to:@"</session>"];
|
||||||
NSUInteger newMessageID = [message tweak_subStringFrom:@"<newmsgid>" to:@"</newmsgid>"].longLongValue;
|
NSUInteger newMessageID = [message.msgContent tweak_subStringFrom:@"<newmsgid>" to:@"</newmsgid>"].longLongValue;
|
||||||
NSString *replaceMessage = [message tweak_subStringFrom:@"<replacemsg><![CDATA[" to:@"]]></replacemsg>"];
|
NSString *replaceMessage = [message.msgContent tweak_subStringFrom:@"<replacemsg><![CDATA[" to:@"]]></replacemsg>"];
|
||||||
|
|
||||||
// Prepare message data
|
// Prepare message data
|
||||||
MessageData *localMessageData = [((MessageService *)self) GetMsgData:session svrId:newMessageID];
|
MessageData *localMessageData = [((MessageService *)self) GetMsgData:session svrId:newMessageID];
|
||||||
MessageData *promptMessageData = ({
|
MessageData *promptMessageData = ({
|
||||||
MessageData *data = [[objc_getClass("MessageData") alloc] init];
|
MessageData *data = [[objc_getClass("MessageData") alloc] initWithMsgType:10000];
|
||||||
data.messageType = 10000;
|
|
||||||
data.msgStatus = 4;
|
data.msgStatus = 4;
|
||||||
data.toUsrName = localMessageData.toUsrName;
|
data.toUsrName = localMessageData.toUsrName;
|
||||||
data.fromUsrName = localMessageData.fromUsrName;
|
data.fromUsrName = localMessageData.fromUsrName;
|
||||||
|
data.mesSvrID = localMessageData.mesSvrID;
|
||||||
data.mesLocalID = localMessageData.mesLocalID;
|
data.mesLocalID = localMessageData.mesLocalID;
|
||||||
data.msgCreateTime = localMessageData.msgCreateTime;
|
data.msgCreateTime = localMessageData.msgCreateTime;
|
||||||
if ([localMessageData isSendFromSelf]) {
|
if ([localMessageData isSendFromSelf]) {
|
||||||
|
@ -113,15 +112,17 @@ static void __attribute__((constructor)) tweak(void) {
|
||||||
userNotification.informativeText = [NSString stringWithFormat:@"%@: %@", groupName, replaceMessage];
|
userNotification.informativeText = [NSString stringWithFormat:@"%@: %@", groupName, replaceMessage];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dispatch notification
|
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
|
||||||
// Delete message if it is revoke from myself
|
// Delete message if it is revoke from myself
|
||||||
if ([localMessageData isSendFromSelf]) {
|
if ([localMessageData isSendFromSelf]) {
|
||||||
[((MessageService *)self) DelMsg:session msgList:@[localMessageData] isDelAll:NO isManual:YES];
|
[((MessageService *)self) DelMsg:session msgList:@[localMessageData] isDelAll:NO isManual:YES];
|
||||||
[((MessageService *)self) AddLocalMsg:session msgData:promptMessageData];
|
[((MessageService *)self) AddLocalMsg:session msgData:promptMessageData];
|
||||||
} else {
|
} else {
|
||||||
[((MessageService *)self) AddLocalMsg:session msgData:promptMessageData];
|
[((MessageService *)self) AddLocalMsg:session msgData:promptMessageData];
|
||||||
|
[((MessageService *)self) AddLocalMsg:session msgData:promptMessageData];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Dispatch notification
|
||||||
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
// Deliver notification
|
// Deliver notification
|
||||||
if (![localMessageData isSendFromSelf]) {
|
if (![localMessageData isSendFromSelf]) {
|
||||||
RevokeNotificationType notificationType = [[NSUserDefaults standardUserDefaults] integerForKey:WeChatTweakPreferenceRevokeNotificationTypeKey];
|
RevokeNotificationType notificationType = [[NSUserDefaults standardUserDefaults] integerForKey:WeChatTweakPreferenceRevokeNotificationTypeKey];
|
||||||
|
|
Loading…
Reference in New Issue
Block a user