diff --git a/WeChatTweak.framework/Versions/A/Resources/Base.lproj/TweakPreferecesController.nib b/WeChatTweak.framework/Versions/A/Resources/Base.lproj/TweakPreferencesController.nib similarity index 82% rename from WeChatTweak.framework/Versions/A/Resources/Base.lproj/TweakPreferecesController.nib rename to WeChatTweak.framework/Versions/A/Resources/Base.lproj/TweakPreferencesController.nib index f084ba9..01826ab 100644 Binary files a/WeChatTweak.framework/Versions/A/Resources/Base.lproj/TweakPreferecesController.nib and b/WeChatTweak.framework/Versions/A/Resources/Base.lproj/TweakPreferencesController.nib differ diff --git a/WeChatTweak.framework/Versions/A/Resources/Info.plist b/WeChatTweak.framework/Versions/A/Resources/Info.plist index 2bc7c7f..4452bf1 100644 --- a/WeChatTweak.framework/Versions/A/Resources/Info.plist +++ b/WeChatTweak.framework/Versions/A/Resources/Info.plist @@ -3,7 +3,7 @@ BuildMachineOSBuild - 18A391 + 18E226 CFBundleDevelopmentRegion en CFBundleExecutable @@ -27,17 +27,17 @@ DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 10A255 + 10E1001 DTPlatformVersion GM DTSDKBuild - 18A384 + 18E219 DTSDKName macosx10.14 DTXcode - 1000 + 1020 DTXcodeBuild - 10A255 + 10E1001 NSHumanReadableCopyright Copyright © 2017年 Sunnyyoung. All rights reserved. diff --git a/WeChatTweak.framework/Versions/A/Resources/en.lproj/Localizable.strings b/WeChatTweak.framework/Versions/A/Resources/en.lproj/Localizable.strings index a452625..315a92f 100644 Binary files a/WeChatTweak.framework/Versions/A/Resources/en.lproj/Localizable.strings and b/WeChatTweak.framework/Versions/A/Resources/en.lproj/Localizable.strings differ diff --git a/WeChatTweak.framework/Versions/A/Resources/en.lproj/TweakPreferecesController.strings b/WeChatTweak.framework/Versions/A/Resources/en.lproj/TweakPreferencesController.strings similarity index 100% rename from WeChatTweak.framework/Versions/A/Resources/en.lproj/TweakPreferecesController.strings rename to WeChatTweak.framework/Versions/A/Resources/en.lproj/TweakPreferencesController.strings diff --git a/WeChatTweak.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings b/WeChatTweak.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings index e9b609d..273c261 100644 Binary files a/WeChatTweak.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings and b/WeChatTweak.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings differ diff --git a/WeChatTweak.framework/Versions/A/Resources/zh-Hans.lproj/TweakPreferecesController.strings b/WeChatTweak.framework/Versions/A/Resources/zh-Hans.lproj/TweakPreferencesController.strings similarity index 100% rename from WeChatTweak.framework/Versions/A/Resources/zh-Hans.lproj/TweakPreferecesController.strings rename to WeChatTweak.framework/Versions/A/Resources/zh-Hans.lproj/TweakPreferencesController.strings diff --git a/WeChatTweak.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.strings b/WeChatTweak.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.strings index bcb6bfb..d72fbe4 100644 Binary files a/WeChatTweak.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.strings and b/WeChatTweak.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.strings differ diff --git a/WeChatTweak.framework/Versions/A/Resources/zh-Hant.lproj/TweakPreferecesController.strings b/WeChatTweak.framework/Versions/A/Resources/zh-Hant.lproj/TweakPreferencesController.strings similarity index 100% rename from WeChatTweak.framework/Versions/A/Resources/zh-Hant.lproj/TweakPreferecesController.strings rename to WeChatTweak.framework/Versions/A/Resources/zh-Hant.lproj/TweakPreferencesController.strings diff --git a/WeChatTweak.framework/Versions/A/WeChatTweak b/WeChatTweak.framework/Versions/A/WeChatTweak index 651ae34..5c0bef7 100755 Binary files a/WeChatTweak.framework/Versions/A/WeChatTweak and b/WeChatTweak.framework/Versions/A/WeChatTweak differ diff --git a/WeChatTweak.xcodeproj/project.pbxproj b/WeChatTweak.xcodeproj/project.pbxproj index 018ccbd..cc704d5 100644 --- a/WeChatTweak.xcodeproj/project.pbxproj +++ b/WeChatTweak.xcodeproj/project.pbxproj @@ -9,7 +9,7 @@ /* Begin PBXBuildFile section */ 7D14E5A41F6447DB00D75132 /* AlfredManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D14E5A21F6447DB00D75132 /* AlfredManager.h */; }; 7D14E5A51F6447DB00D75132 /* AlfredManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D14E5A31F6447DB00D75132 /* AlfredManager.m */; }; - 7D54A05C20E74D9400CB5306 /* TweakPreferecesController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D54A05E20E74D9400CB5306 /* TweakPreferecesController.xib */; }; + 7D54A05C20E74D9400CB5306 /* TweakPreferencesController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D54A05E20E74D9400CB5306 /* TweakPreferencesController.xib */; }; 7D54A06A20E74FE500CB5306 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7D54A06C20E74FE500CB5306 /* Localizable.strings */; }; 7D9049F51F82A41A004E6370 /* fishhook.c in Sources */ = {isa = PBXBuildFile; fileRef = 7D9049F31F82A415004E6370 /* fishhook.c */; }; 7D9049F61F82A41A004E6370 /* fishhook.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D9049F41F82A415004E6370 /* fishhook.h */; }; @@ -19,8 +19,8 @@ 7DB8AFBF206211D900E683AE /* WTConfigManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DB8AFBD206211D900E683AE /* WTConfigManager.m */; }; 7DF8422C1F40583F00D42D79 /* WeChatTweak.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DF8422A1F40583F00D42D79 /* WeChatTweak.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7DF842341F4058AB00D42D79 /* WeChatTweak.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DF842331F4058AB00D42D79 /* WeChatTweak.m */; }; - 7DF842521F4058C600D42D79 /* TweakPreferecesController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DF8424F1F4058C600D42D79 /* TweakPreferecesController.h */; }; - 7DF842531F4058C600D42D79 /* TweakPreferecesController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DF842501F4058C600D42D79 /* TweakPreferecesController.m */; }; + 7DF842521F4058C600D42D79 /* TweakPreferencesController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DF8424F1F4058C600D42D79 /* TweakPreferencesController.h */; }; + 7DF842531F4058C600D42D79 /* TweakPreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DF842501F4058C600D42D79 /* TweakPreferencesController.m */; }; 7DF8425B1F4058DD00D42D79 /* NSBundle+WeChatTweak.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DF842571F4058DD00D42D79 /* NSBundle+WeChatTweak.h */; }; 7DF8425C1F4058DD00D42D79 /* NSBundle+WeChatTweak.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DF842581F4058DD00D42D79 /* NSBundle+WeChatTweak.m */; }; 7DF842601F40590500D42D79 /* WeChatTweakHeaders.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DF8425F1F40590500D42D79 /* WeChatTweakHeaders.h */; }; @@ -32,10 +32,10 @@ 153504EC5C9196C0D85213CF /* libPods-WeChatTweak.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-WeChatTweak.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 7D14E5A21F6447DB00D75132 /* AlfredManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlfredManager.h; sourceTree = ""; }; 7D14E5A31F6447DB00D75132 /* AlfredManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AlfredManager.m; sourceTree = ""; }; - 7D54A05F20E74E4600CB5306 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/TweakPreferecesController.xib; sourceTree = ""; }; - 7D54A06320E74E5A00CB5306 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/TweakPreferecesController.strings; sourceTree = ""; }; - 7D54A06520E74E8200CB5306 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/TweakPreferecesController.strings"; sourceTree = ""; }; - 7D54A06720E74E8E00CB5306 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/TweakPreferecesController.strings"; sourceTree = ""; }; + 7D54A05F20E74E4600CB5306 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/TweakPreferencesController.xib; sourceTree = ""; }; + 7D54A06320E74E5A00CB5306 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/TweakPreferencesController.strings; sourceTree = ""; }; + 7D54A06520E74E8200CB5306 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/TweakPreferencesController.strings"; sourceTree = ""; }; + 7D54A06720E74E8E00CB5306 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/TweakPreferencesController.strings"; sourceTree = ""; }; 7D54A07020E74FFD00CB5306 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; 7D54A07120E7535F00CB5306 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; 7D54A07220E7536300CB5306 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.strings"; sourceTree = ""; }; @@ -49,8 +49,8 @@ 7DF8422A1F40583F00D42D79 /* WeChatTweak.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WeChatTweak.h; sourceTree = ""; }; 7DF8422B1F40583F00D42D79 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 7DF842331F4058AB00D42D79 /* WeChatTweak.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WeChatTweak.m; sourceTree = ""; }; - 7DF8424F1F4058C600D42D79 /* TweakPreferecesController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweakPreferecesController.h; sourceTree = ""; }; - 7DF842501F4058C600D42D79 /* TweakPreferecesController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweakPreferecesController.m; sourceTree = ""; }; + 7DF8424F1F4058C600D42D79 /* TweakPreferencesController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweakPreferencesController.h; sourceTree = ""; }; + 7DF842501F4058C600D42D79 /* TweakPreferencesController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweakPreferencesController.m; sourceTree = ""; }; 7DF842571F4058DD00D42D79 /* NSBundle+WeChatTweak.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSBundle+WeChatTweak.h"; sourceTree = ""; }; 7DF842581F4058DD00D42D79 /* NSBundle+WeChatTweak.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSBundle+WeChatTweak.m"; sourceTree = ""; }; 7DF8425F1F40590500D42D79 /* WeChatTweakHeaders.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeChatTweakHeaders.h; sourceTree = ""; }; @@ -93,9 +93,9 @@ 7D5AAF3520DF4B9700860EEE /* Controller */ = { isa = PBXGroup; children = ( - 7DF8424F1F4058C600D42D79 /* TweakPreferecesController.h */, - 7DF842501F4058C600D42D79 /* TweakPreferecesController.m */, - 7D54A05E20E74D9400CB5306 /* TweakPreferecesController.xib */, + 7DF8424F1F4058C600D42D79 /* TweakPreferencesController.h */, + 7DF842501F4058C600D42D79 /* TweakPreferencesController.m */, + 7D54A05E20E74D9400CB5306 /* TweakPreferencesController.xib */, ); path = Controller; sourceTree = ""; @@ -194,7 +194,7 @@ 7D9049F61F82A41A004E6370 /* fishhook.h in Headers */, 7D14E5A41F6447DB00D75132 /* AlfredManager.h in Headers */, 7DF842601F40590500D42D79 /* WeChatTweakHeaders.h in Headers */, - 7DF842521F4058C600D42D79 /* TweakPreferecesController.h in Headers */, + 7DF842521F4058C600D42D79 /* TweakPreferencesController.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -263,7 +263,7 @@ files = ( 7DF842651F40594400D42D79 /* Prefs-Tweak.tiff in Resources */, 7D54A06A20E74FE500CB5306 /* Localizable.strings in Resources */, - 7D54A05C20E74D9400CB5306 /* TweakPreferecesController.xib in Resources */, + 7D54A05C20E74D9400CB5306 /* TweakPreferencesController.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -314,7 +314,7 @@ buildActionMask = 2147483647; files = ( 7D14E5A51F6447DB00D75132 /* AlfredManager.m in Sources */, - 7DF842531F4058C600D42D79 /* TweakPreferecesController.m in Sources */, + 7DF842531F4058C600D42D79 /* TweakPreferencesController.m in Sources */, 7D9049F91F82B6FB004E6370 /* NSString+WeChatTweak.m in Sources */, 7DF842341F4058AB00D42D79 /* WeChatTweak.m in Sources */, 7DB8AFBF206211D900E683AE /* WTConfigManager.m in Sources */, @@ -326,7 +326,7 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ - 7D54A05E20E74D9400CB5306 /* TweakPreferecesController.xib */ = { + 7D54A05E20E74D9400CB5306 /* TweakPreferencesController.xib */ = { isa = PBXVariantGroup; children = ( 7D54A05F20E74E4600CB5306 /* Base */, @@ -334,7 +334,7 @@ 7D54A06520E74E8200CB5306 /* zh-Hans */, 7D54A06720E74E8E00CB5306 /* zh-Hant */, ); - name = TweakPreferecesController.xib; + name = TweakPreferencesController.xib; sourceTree = ""; }; 7D54A06C20E74FE500CB5306 /* Localizable.strings */ = { diff --git a/WeChatTweak.xcodeproj/xcshareddata/xcschemes/WeChatTweak.xcscheme b/WeChatTweak.xcodeproj/xcshareddata/xcschemes/WeChatTweak.xcscheme new file mode 100644 index 0000000..90056f2 --- /dev/null +++ b/WeChatTweak.xcodeproj/xcshareddata/xcschemes/WeChatTweak.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WeChatTweak/Controller/Base.lproj/TweakPreferecesController.xib b/WeChatTweak/Controller/Base.lproj/TweakPreferencesController.xib similarity index 95% rename from WeChatTweak/Controller/Base.lproj/TweakPreferecesController.xib rename to WeChatTweak/Controller/Base.lproj/TweakPreferencesController.xib index dcb1ac2..c2677bb 100644 --- a/WeChatTweak/Controller/Base.lproj/TweakPreferecesController.xib +++ b/WeChatTweak/Controller/Base.lproj/TweakPreferencesController.xib @@ -1,12 +1,12 @@ - + - + - + @@ -37,7 +37,7 @@ - + @@ -57,7 +57,7 @@ - + @@ -88,7 +88,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/WeChatTweak/Controller/TweakPreferecesController.h b/WeChatTweak/Controller/TweakPreferencesController.h similarity index 85% rename from WeChatTweak/Controller/TweakPreferecesController.h rename to WeChatTweak/Controller/TweakPreferencesController.h index 270de58..a62b6b0 100644 --- a/WeChatTweak/Controller/TweakPreferecesController.h +++ b/WeChatTweak/Controller/TweakPreferencesController.h @@ -1,5 +1,5 @@ // -// TweakPreferecesController.h +// TweakPreferencesController.h // WeChatTweak // // Created by Sunnyyoung on 2017/8/12. @@ -17,6 +17,6 @@ typedef NS_ENUM(NSUInteger, RevokeNotificationType) { static NSString * const WeChatTweakPreferenceAutoAuthKey = @"WeChatTweakPreferenceAutoAuthKey"; static NSString * const WeChatTweakPreferenceRevokeNotificationTypeKey = @"WeChatTweakPreferenceRevokeNotificationTypeKey"; -@interface TweakPreferecesController : NSViewController +@interface TweakPreferencesController : NSViewController @end diff --git a/WeChatTweak/Controller/TweakPreferecesController.m b/WeChatTweak/Controller/TweakPreferencesController.m similarity index 92% rename from WeChatTweak/Controller/TweakPreferecesController.m rename to WeChatTweak/Controller/TweakPreferencesController.m index 9877876..b06b890 100644 --- a/WeChatTweak/Controller/TweakPreferecesController.m +++ b/WeChatTweak/Controller/TweakPreferencesController.m @@ -1,16 +1,16 @@ // -// TweakPreferecesController.m +// TweakPreferencesController.m // WeChatTweak // // Created by Sunnyyoung on 2017/8/12. // Copyright © 2017年 Sunnyyoung. All rights reserved. // -#import "TweakPreferecesController.h" +#import "TweakPreferencesController.h" #import "NSBundle+WeChatTweak.h" #import "WTConfigManager.h" -@interface TweakPreferecesController () +@interface TweakPreferencesController () @property (weak) IBOutlet NSPopUpButton *autoAuthButton; @property (weak) IBOutlet NSPopUpButton *notificationTypeButton; @@ -18,7 +18,7 @@ @end -@implementation TweakPreferecesController +@implementation TweakPreferencesController - (void)viewDidLoad { [super viewDidLoad]; diff --git a/WeChatTweak/Controller/en.lproj/TweakPreferecesController.strings b/WeChatTweak/Controller/en.lproj/TweakPreferencesController.strings similarity index 100% rename from WeChatTweak/Controller/en.lproj/TweakPreferecesController.strings rename to WeChatTweak/Controller/en.lproj/TweakPreferencesController.strings diff --git a/WeChatTweak/Controller/zh-Hans.lproj/TweakPreferecesController.strings b/WeChatTweak/Controller/zh-Hans.lproj/TweakPreferencesController.strings similarity index 100% rename from WeChatTweak/Controller/zh-Hans.lproj/TweakPreferecesController.strings rename to WeChatTweak/Controller/zh-Hans.lproj/TweakPreferencesController.strings diff --git a/WeChatTweak/Controller/zh-Hant.lproj/TweakPreferecesController.strings b/WeChatTweak/Controller/zh-Hant.lproj/TweakPreferencesController.strings similarity index 100% rename from WeChatTweak/Controller/zh-Hant.lproj/TweakPreferecesController.strings rename to WeChatTweak/Controller/zh-Hant.lproj/TweakPreferencesController.strings diff --git a/WeChatTweak/Supporting Files/WeChatTweakHeaders.h b/WeChatTweak/Supporting Files/WeChatTweakHeaders.h index 4906121..69a9f32 100644 --- a/WeChatTweak/Supporting Files/WeChatTweakHeaders.h +++ b/WeChatTweak/Supporting Files/WeChatTweakHeaders.h @@ -11,6 +11,15 @@ #import #import +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; diff --git a/WeChatTweak/Supporting Files/en.lproj/Localizable.strings b/WeChatTweak/Supporting Files/en.lproj/Localizable.strings index cd7e590..3c22609 100644 --- a/WeChatTweak/Supporting Files/en.lproj/Localizable.strings +++ b/WeChatTweak/Supporting Files/en.lproj/Localizable.strings @@ -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"; diff --git a/WeChatTweak/Supporting Files/zh-Hans.lproj/Localizable.strings b/WeChatTweak/Supporting Files/zh-Hans.lproj/Localizable.strings index 586059d..7386462 100644 --- a/WeChatTweak/Supporting Files/zh-Hans.lproj/Localizable.strings +++ b/WeChatTweak/Supporting Files/zh-Hans.lproj/Localizable.strings @@ -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" = "一条消息"; diff --git a/WeChatTweak/Supporting Files/zh-Hant.lproj/Localizable.strings b/WeChatTweak/Supporting Files/zh-Hant.lproj/Localizable.strings index 5c1f297..71e0d12 100644 --- a/WeChatTweak/Supporting Files/zh-Hant.lproj/Localizable.strings +++ b/WeChatTweak/Supporting Files/zh-Hant.lproj/Localizable.strings @@ -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" = "一条消息"; diff --git a/WeChatTweak/WeChatTweak.m b/WeChatTweak/WeChatTweak.m index 41f4dfa..19663c1 100755 --- a/WeChatTweak/WeChatTweak.m +++ b/WeChatTweak/WeChatTweak.m @@ -11,7 +11,7 @@ #import "fishhook.h" #import "NSBundle+WeChatTweak.h" #import "NSString+WeChatTweak.h" -#import "TweakPreferecesController.h" +#import "TweakPreferencesController.h" #import "AlfredManager.h" #import "WTConfigManager.h" @@ -53,10 +53,15 @@ static void __attribute__((constructor)) tweak(void) { class_addMethod(objc_getClass("AppDelegate"), @selector(applicationDockMenu:), method_getImplementation(class_getInstanceMethod(objc_getClass("AppDelegate"), @selector(tweak_applicationDockMenu:))), "@:@"); [objc_getClass("AppDelegate") jr_swizzleMethod:NSSelectorFromString(@"applicationDidFinishLaunching:") withMethod:@selector(tweak_applicationDidFinishLaunching:) error:nil]; [objc_getClass("LogoutCGI") jr_swizzleMethod:NSSelectorFromString(@"sendLogoutCGIWithCompletion:") withMethod:@selector(tweak_sendLogoutCGIWithCompletion:) error:nil]; + [objc_getClass("LogoutCGI") jr_swizzleMethod:NSSelectorFromString(@"FFVCRecvDataAddDataToMsgChatMgrRecvZZ:") withMethod:@selector(tweak_sendLogoutCGIWithCompletion:) error:nil]; [objc_getClass("AccountService") jr_swizzleMethod:NSSelectorFromString(@"onAuthOKOfUser:withSessionKey:withServerId:autoAuthKey:isAutoAuth:") withMethod:@selector(tweak_onAuthOKOfUser:withSessionKey:withServerId:autoAuthKey:isAutoAuth:) error:nil]; [objc_getClass("AccountService") jr_swizzleMethod:NSSelectorFromString(@"ManualLogout") withMethod:@selector(tweak_ManualLogout) error:nil]; + [objc_getClass("AccountService") jr_swizzleMethod:NSSelectorFromString(@"FFAddSvrMsgImgVCZZ") withMethod:@selector(tweak_ManualLogout) error:nil]; [objc_getClass("MessageService") jr_swizzleMethod:NSSelectorFromString(@"onRevokeMsg:") withMethod:@selector(tweak_onRevokeMsg:) error:nil]; + [objc_getClass("MessageService") jr_swizzleMethod:NSSelectorFromString(@"FFToNameFavChatZZ:") withMethod:@selector(tweak_onRevokeMsg:) error:nil]; [objc_getClass("CUtility") jr_swizzleClassMethod:NSSelectorFromString(@"HasWechatInstance") withClassMethod:@selector(tweak_HasWechatInstance) error:nil]; + [objc_getClass("CUtility") jr_swizzleClassMethod:NSSelectorFromString(@"FFSvrChatInfoMsgWithImgZZ") withClassMethod:@selector(tweak_HasWechatInstance) error:nil]; + [objc_getClass("NSRunningApplication") jr_swizzleClassMethod:NSSelectorFromString(@"runningApplicationsWithBundleIdentifier:") withClassMethod:@selector(tweak_runningApplicationsWithBundleIdentifier:) error:nil]; [objc_getClass("MASPreferencesWindowController") jr_swizzleMethod:NSSelectorFromString(@"initWithViewControllers:") withMethod:@selector(tweak_initWithViewControllers:) error:nil]; objc_property_attribute_t type = { "T", "@\"NSString\"" }; // NSString @@ -77,6 +82,7 @@ static void __attribute__((constructor)) tweak(void) { NSString *session = [message.msgContent tweak_subStringFrom:@"" to:@""]; NSUInteger newMessageID = [message.msgContent tweak_subStringFrom:@"" to:@""].longLongValue; NSString *replaceMessage = [message.msgContent tweak_subStringFrom:@""]; + // Prepare message data MessageData *localMessageData = [((MessageService *)self) GetMsgData:session svrId:newMessageID]; MessageData *promptMessageData = ({ @@ -90,7 +96,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; }); @@ -117,6 +153,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]; } @@ -138,6 +177,14 @@ static void __attribute__((constructor)) tweak(void) { return NO; } ++ (NSArray *)tweak_runningApplicationsWithBundleIdentifier:(NSString *)bundleIdentifier { + if ([bundleIdentifier isEqualToString:NSBundle.mainBundle.bundleIdentifier]) { + return @[NSRunningApplication.currentApplication]; + } else { + return [self tweak_runningApplicationsWithBundleIdentifier:bundleIdentifier]; + } +} + - (NSMenu *)tweak_applicationDockMenu:(NSApplication *)sender { NSMenu *menu = [[NSMenu alloc] init]; NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:[NSBundle.tweakBundle localizedStringForKey:@"Tweak.Title.LoginAnotherAccount"] @@ -148,7 +195,7 @@ static void __attribute__((constructor)) tweak(void) { } - (void)openNewWeChatInstace:(id)sender { - NSString *applicationPath = [[NSBundle mainBundle] bundlePath]; + NSString *applicationPath = NSBundle.mainBundle.bundlePath; NSTask *task = [[NSTask alloc] init]; task.launchPath = @"/usr/bin/open"; task.arguments = @[@"-n", applicationPath]; @@ -159,8 +206,8 @@ static void __attribute__((constructor)) tweak(void) { - (void)tweak_applicationDidFinishLaunching:(NSNotification *)notification { [self tweak_applicationDidFinishLaunching:notification]; - NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier]; - NSArray *instances = [NSRunningApplication runningApplicationsWithBundleIdentifier:bundleIdentifier]; + NSString *bundleIdentifier = NSBundle.mainBundle.bundleIdentifier; + NSArray *instances = [NSRunningApplication tweak_runningApplicationsWithBundleIdentifier:bundleIdentifier]; // Detect multiple instance conflict BOOL hasInstance = instances.count == 1; BOOL enabledAutoAuth = [[NSUserDefaults standardUserDefaults] boolForKey:WeChatTweakPreferenceAutoAuthKey]; @@ -197,7 +244,7 @@ static void __attribute__((constructor)) tweak(void) { - (id)tweak_initWithViewControllers:(NSArray *)arg1 { NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:arg1]; - TweakPreferecesController *controller = [[TweakPreferecesController alloc] initWithNibName:nil bundle:[NSBundle tweakBundle]]; + TweakPreferencesController *controller = [[TweakPreferencesController alloc] initWithNibName:nil bundle:[NSBundle tweakBundle]]; [viewControllers addObject:controller]; return [self tweak_initWithViewControllers:viewControllers]; }