Removed Message Detail (#126)

This commit is contained in:
Jeason Lee 2019-01-23 21:54:15 +08:00 committed by Sunnyyoung
parent a037bae557
commit 42ff1dd703
10 changed files with 72 additions and 8 deletions

View File

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>18C54</string>
<string>18A391</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
@ -27,17 +27,17 @@
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>10B61</string>
<string>9F2000</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>18B71</string>
<string>17E189</string>
<key>DTSDKName</key>
<string>macosx10.14</string>
<string>macosx10.13</string>
<key>DTXcode</key>
<string>1010</string>
<string>0941</string>
<key>DTXcodeBuild</key>
<string>10B61</string>
<string>9F2000</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2017年 Sunnyyoung. All rights reserved.</string>
</dict>

View File

@ -11,6 +11,15 @@
#import <objc/runtime.h>
#import <objc/message.h>
typedef NS_ENUM(unsigned int, MessageDataType) {
MessageDataTypeText = 1,
MessageDataTypeImage = 3,
MessageDataTypeVoice = 34,
MessageDataTypeVideo = 43,
MessageDataTypeSticker = 47,
MessageDataTypeLink = 49,
};
@interface NSString (MD5)
- (NSString *)md5String;
@ -43,7 +52,7 @@
@interface MessageData: NSObject
@property(nonatomic) unsigned int messageType;
@property(nonatomic) MessageDataType messageType;
@property(nonatomic) unsigned int msgStatus;
@property(nonatomic) long long mesSvrID;
@property(retain, nonatomic) NSString *toUsrName;

View File

@ -9,3 +9,10 @@
"Tweak.Title.LoginAnotherAccount" = "Login new account";
"Tweak.Title.Group" = "Group";
"Tweak.Message.CatchARecalledMessage" = "[Catched]\n%@";
"Tweak.Message.Recalled" = "recalled";
"Tweak.Message.Image" = "Image";
"Tweak.Message.Voice" = "Voice";
"Tweak.Message.Video" = "Video";
"Tweak.Message.Sticker" = "Sticker";
"Tweak.Message.Link" = "Link";
"Tweak.Message.AMessage" = "a message";

View File

@ -9,3 +9,10 @@
"Tweak.Title.LoginAnotherAccount" = "登录新的账号";
"Tweak.Title.Group" = "群组";
"Tweak.Message.CatchARecalledMessage" = "[已拦截]\n%@";
"Tweak.Message.Recalled" = "撤回了";
"Tweak.Message.Image" = "图片";
"Tweak.Message.Voice" = "语音";
"Tweak.Message.Video" = "视频";
"Tweak.Message.Sticker" = "表情";
"Tweak.Message.Link" = "链接";
"Tweak.Message.AMessage" = "一条消息";

View File

@ -9,3 +9,10 @@
"Tweak.Title.LoginAnotherAccount" = "登錄新的賬號";
"Tweak.Title.Group" = "群組";
"Tweak.Message.CatchARecalledMessage" = "[已攔截]\n%@";
"Tweak.Message.Recalled" = "撤回了";
"Tweak.Message.Image" = "图片";
"Tweak.Message.Voice" = "语音";
"Tweak.Message.Video" = "视频";
"Tweak.Message.Sticker" = "表情";
"Tweak.Message.Link" = "链接";
"Tweak.Message.AMessage" = "一条消息";

View File

@ -81,6 +81,7 @@ static void __attribute__((constructor)) tweak(void) {
NSString *session = [message.msgContent tweak_subStringFrom:@"<session>" to:@"</session>"];
NSUInteger newMessageID = [message.msgContent tweak_subStringFrom:@"<newmsgid>" to:@"</newmsgid>"].longLongValue;
NSString *replaceMessage = [message.msgContent tweak_subStringFrom:@"<replacemsg><![CDATA[" to:@"]]></replacemsg>"];
// Prepare message data
MessageData *localMessageData = [((MessageService *)self) GetMsgData:session svrId:newMessageID];
MessageData *promptMessageData = ({
@ -94,7 +95,37 @@ static void __attribute__((constructor)) tweak(void) {
if ([localMessageData isSendFromSelf]) {
data.msgContent = replaceMessage;
} else {
data.msgContent = [NSString stringWithFormat:[NSBundle.tweakBundle localizedStringForKey:@"Tweak.Message.CatchARecalledMessage"], replaceMessage];
NSString *fromUserName = [replaceMessage componentsSeparatedByString:@" "].firstObject;
NSString *userRevoke = [NSString stringWithFormat:@"%@ %@ ", fromUserName, [NSBundle.tweakBundle localizedStringForKey:@"Tweak.Message.Recalled"]];
NSString *tips = [NSString stringWithFormat:[NSBundle.tweakBundle localizedStringForKey:@"Tweak.Message.CatchARecalledMessage"], userRevoke];
NSMutableString *msgContent = [NSMutableString stringWithString:tips];
switch (localMessageData.messageType) {
case MessageDataTypeText: {
if (localMessageData.msgContent.length) {
if ([session rangeOfString:@"@chatroom"].location == NSNotFound) {
[msgContent appendFormat:@"\"%@\"", localMessageData.msgContent];
} else {
[msgContent appendFormat:@"\"%@\"", [localMessageData.msgContent componentsSeparatedByString:@":\n"].lastObject];
}
} else {
[msgContent appendString:[NSBundle.tweakBundle localizedStringForKey:@"Tweak.Message.AMessage"]];
}
break;
}
case MessageDataTypeImage:
[msgContent appendFormat:@"<%@>", [NSBundle.tweakBundle localizedStringForKey:@"Tweak.Message.Image"]]; break;
case MessageDataTypeVoice:
[msgContent appendFormat:@"<%@>", [NSBundle.tweakBundle localizedStringForKey:@"Tweak.Message.Voice"]]; break;
case MessageDataTypeVideo:
[msgContent appendFormat:@"<%@>", [NSBundle.tweakBundle localizedStringForKey:@"Tweak.Message.Video"]]; break;
case MessageDataTypeSticker:
[msgContent appendFormat:@"<%@>", [NSBundle.tweakBundle localizedStringForKey:@"Tweak.Message.Sticker"]]; break;
case MessageDataTypeLink:
[msgContent appendFormat:@"<%@>", [NSBundle.tweakBundle localizedStringForKey:@"Tweak.Message.Link"]]; break;
default:
[msgContent appendString:[NSBundle.tweakBundle localizedStringForKey:@"Tweak.Message.AMessage"]]; break;
}
data.msgContent = msgContent;
}
data;
});
@ -121,6 +152,9 @@ static void __attribute__((constructor)) tweak(void) {
[((MessageService *)self) DelMsg:session msgList:@[localMessageData] isDelAll:NO isManual:YES];
[((MessageService *)self) AddLocalMsg:session msgData:promptMessageData];
} else {
if (localMessageData.messageType == MessageDataTypeText) {
[((MessageService *)self) DelMsg:session msgList:@[localMessageData] isDelAll:NO isManual:YES];
}
[((MessageService *)self) AddLocalMsg:session msgData:promptMessageData];
}