mirror of
https://github.com/Sunnyyoung/WeChatTweak-macOS.git
synced 2025-05-22 22:36:07 +08:00
Add alfred result list avatar support
This commit is contained in:
parent
8942723431
commit
52c1c42b89
|
@ -17,4 +17,4 @@ SPEC CHECKSUMS:
|
|||
|
||||
PODFILE CHECKSUM: af44d62b300e2c55cb63386ec4be3227b93c7761
|
||||
|
||||
COCOAPODS: 1.3.1
|
||||
COCOAPODS: 1.4.0
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
- 重新打开应用无需手机认证
|
||||
- UI界面设置面板
|
||||
- 支持 Alfred workflow
|
||||
- 支持 Launchbar action
|
||||
|
||||
## 使用
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ A dynamic library tweak for WeChat macOS.
|
|||
- Auto login without authentication
|
||||
- UI Interface settings panel
|
||||
- Alfred workflow support
|
||||
- Lauchbar action support
|
||||
|
||||
## Quick Start
|
||||
|
||||
|
|
Binary file not shown.
|
@ -3,7 +3,7 @@
|
|||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildMachineOSBuild</key>
|
||||
<string>17C205</string>
|
||||
<string>17D102</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
|
|
Binary file not shown.
|
@ -51,6 +51,15 @@ static void __attribute__((constructor)) tweak(void) {
|
|||
[objc_getClass("MessageService") jr_swizzleMethod:NSSelectorFromString(@"onRevokeMsg:") withMethod:@selector(tweak_onRevokeMsg:) error:nil];
|
||||
[objc_getClass("CUtility") jr_swizzleClassMethod:NSSelectorFromString(@"HasWechatInstance") withClassMethod:@selector(tweak_HasWechatInstance) error:nil];
|
||||
[objc_getClass("MASPreferencesWindowController") jr_swizzleMethod:NSSelectorFromString(@"initWithViewControllers:") withMethod:@selector(tweak_initWithViewControllers:) error:nil];
|
||||
|
||||
objc_property_attribute_t type = { "T", "@\"NSString\"" }; // NSString
|
||||
objc_property_attribute_t atom = { "N", "" }; // nonatomic
|
||||
objc_property_attribute_t ownership = { "&", "" }; // C = copy & = strong
|
||||
objc_property_attribute_t backingivar = { "V", "_m_nsHeadImgUrl" }; // ivar name
|
||||
objc_property_attribute_t attrs[] = { type, atom, ownership, backingivar };
|
||||
class_addProperty(objc_getClass("WCContactData"), "wt_avatarPath", attrs, 4);
|
||||
class_addMethod(objc_getClass("WCContactData"), @selector(wt_avatarPath), method_getImplementation(class_getInstanceMethod(objc_getClass("WCContactData"), @selector(wt_avatarPath))), "@@:");
|
||||
class_addMethod(objc_getClass("WCContactData"), @selector(setWt_avatarPath:), method_getImplementation(class_getInstanceMethod(objc_getClass("WCContactData"), @selector(setWt_avatarPath:))), "v@:@");
|
||||
}
|
||||
|
||||
#pragma mark - No Revoke Message
|
||||
|
@ -176,4 +185,17 @@ static void __attribute__((constructor)) tweak(void) {
|
|||
return [self tweak_initWithViewControllers:viewControllers];
|
||||
}
|
||||
|
||||
#pragma mark - WCContact Data
|
||||
|
||||
- (NSString *)wt_avatarPath {
|
||||
MMAvatarService *avatarService = [[objc_getClass("MMServiceCenter") defaultCenter] getService:objc_getClass("MMAvatarService")];
|
||||
NSString *pathString = [NSString stringWithFormat:@"%@/%@", [avatarService avatarCachePath], [((WCContactData *)self).m_nsHeadImgUrl md5String]];
|
||||
return [NSFileManager.defaultManager fileExistsAtPath:pathString] ? pathString : @"";
|
||||
}
|
||||
|
||||
- (void)setWt_avatarPath:(NSString *)avatarPath {
|
||||
// For readonly
|
||||
return;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -8,6 +8,14 @@
|
|||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <objc/runtime.h>
|
||||
#import <objc/message.h>
|
||||
|
||||
@interface NSString (MD5)
|
||||
|
||||
- (NSString *)md5String;
|
||||
|
||||
@end
|
||||
|
||||
@interface WeChat : NSObject
|
||||
|
||||
|
@ -44,6 +52,7 @@
|
|||
@interface WCContactData : NSObject
|
||||
|
||||
@property(nonatomic) unsigned int m_uiCertificationFlag;
|
||||
@property(retain, nonatomic) NSString *m_nsHeadImgUrl;
|
||||
@property(retain, nonatomic) NSString *m_nsNickName;
|
||||
@property(retain, nonatomic) NSString *m_nsUsrName;
|
||||
@property(retain, nonatomic) NSString *m_nsAliasName;
|
||||
|
@ -51,6 +60,7 @@
|
|||
@property(retain, nonatomic) NSString *m_nsFullPY;
|
||||
@property(retain, nonatomic) NSString *m_nsRemarkPYShort;
|
||||
@property(retain, nonatomic) NSString *m_nsRemarkPYFull;
|
||||
@property(retain, nonatomic) NSString *wt_avatarPath;
|
||||
|
||||
- (BOOL)isChatStatusNotifyOpen;
|
||||
|
||||
|
@ -101,6 +111,12 @@
|
|||
|
||||
@end
|
||||
|
||||
@interface MMAvatarService: NSObject
|
||||
|
||||
- (NSString *)avatarCachePath;
|
||||
|
||||
@end
|
||||
|
||||
@protocol MASPreferencesViewController <NSObject>
|
||||
|
||||
@property(readonly, nonatomic) NSString *toolbarItemLabel;
|
||||
|
|
Loading…
Reference in New Issue
Block a user