Top Related Projects
A dynamic library tweak for WeChat macOS - 首款微信 macOS 客户端撤回拦截与多开 🔨
Mac微信功能拓展/微信插件/微信小助手(A plugin for Mac WeChat)
微信小助手的安装 / 更新工具。
网页版微信API,包含终端版微信及微信机器人
Quick Overview
WeChatPlugin-MacOS is a plugin for the macOS version of WeChat, a popular Chinese messaging app. It enhances the functionality of WeChat by adding features such as message recall prevention, auto-reply, and remote control. The plugin aims to improve the user experience and provide additional tools for WeChat users on macOS.
Pros
- Adds useful features not available in the official WeChat client
- Enhances privacy by preventing message recall
- Provides automation capabilities through auto-reply and remote control
- Open-source, allowing for community contributions and customization
Cons
- May violate WeChat's terms of service
- Could potentially compromise user security if not properly vetted
- Requires manual installation and updates
- May break with WeChat updates, requiring frequent maintenance
Code Examples
// Example of preventing message recall
- (void)onRevokeMsg:(id)msg {
if ([self.msgManager getMsgData:msg].msgStatus == 4) {
[self.msgManager updateMsgStatus:msg status:0];
}
}
// Example of setting up auto-reply
- (void)autoReplyWithMsg:(id)msg {
if ([self.autoReplyModel.enable boolValue]) {
NSString *content = [self.chatManager getChatContentWithData:msg];
if ([content isEqualToString:self.autoReplyModel.keyword]) {
[self.chatManager sendTextMessage:self.autoReplyModel.replyContent toUsrName:[self.chatManager getChatUsrNameWithData:msg]];
}
}
}
// Example of remote control setup
- (void)remoteControlWithMsg:(id)msg {
if ([self.remoteControlModel.enable boolValue]) {
NSString *content = [self.chatManager getChatContentWithData:msg];
if ([content hasPrefix:@"#remote"]) {
[self executeRemoteCommand:[content substringFromIndex:7]];
}
}
}
Getting Started
- Download the latest release from the GitHub repository.
- Unzip the downloaded file.
- Open Terminal and navigate to the unzipped folder.
- Run the installation script:
sudo ./install.sh
- Restart WeChat.
- The plugin should now be active. Access the plugin settings through the WeChat menu bar.
Competitor Comparisons
A dynamic library tweak for WeChat macOS - 首款微信 macOS 客户端撤回拦截与多开 🔨
Pros of WeChatTweak-macOS
- More actively maintained with recent updates
- Cleaner and more organized codebase
- Better documentation and installation instructions
Cons of WeChatTweak-macOS
- Fewer features compared to WeChatPlugin-MacOS
- Less customization options for users
- Smaller community and fewer contributors
Code Comparison
WeChatTweak-macOS:
- (void)hook_sendLogoutCGIWithCompletion:(id)completion {
[self hook_sendLogoutCGIWithCompletion:completion];
[NSNotificationCenter.defaultCenter postNotificationName:WeChatTweakLogoutNotification object:nil];
}
WeChatPlugin-MacOS:
- (void)hook_onLogOut {
[[TKWeChatPluginConfig sharedConfig] setIsAutoAuthEnable:NO];
[[TKWeChatPluginConfig sharedConfig] setIsOnTop:NO];
[self hook_onLogOut];
}
The code comparison shows that both projects use method swizzling to hook into WeChat's logout functionality. However, WeChatTweak-macOS uses a notification system for logout events, while WeChatPlugin-MacOS focuses on disabling certain plugin features during logout.
Mac微信功能拓展/微信插件/微信小助手(A plugin for Mac WeChat)
Pros of WeChatExtension-ForMac
- More active development and frequent updates
- Broader feature set, including custom themes and multi-account support
- Larger community and more contributors
Cons of WeChatExtension-ForMac
- Potentially less stable due to rapid development
- May have a steeper learning curve for new users
- Some features might be considered unnecessary by minimalist users
Code Comparison
WeChatExtension-ForMac:
- (void)hook_didLoadWithCompletion:(void (^)(void))completion {
[self hook_didLoadWithCompletion:^{
if (completion) {
completion();
}
[[YMWeChatPluginConfig sharedConfig] initializeSettings];
}];
}
WeChatPlugin-MacOS:
- (void)hook_didLoadWithCompletion:(void (^)(void))completion {
[self hook_didLoadWithCompletion:^{
if (completion) {
completion();
}
[[TKWeChatPluginConfig sharedConfig] setup];
}];
}
Both projects use method swizzling to inject custom functionality, but WeChatExtension-ForMac uses a more descriptive method name for initializing settings.
微信小助手的安装 / 更新工具。
Pros of oh-my-wechat
- Easier installation process with a simple command-line interface
- Regular updates and active maintenance
- Supports automatic updates for both the plugin and WeChat
Cons of oh-my-wechat
- Fewer features compared to WeChatPlugin-MacOS
- Less customization options for users
- May have compatibility issues with some WeChat versions
Code Comparison
WeChatPlugin-MacOS:
- (void)hook_startMainThread
{
BOOL isWeChatLaunched = [[NSWorkspace sharedWorkspace] launchedApplications].firstObject;
if (!isWeChatLaunched) {
[self initializePlugin];
}
[self hook_startMainThread];
}
oh-my-wechat:
async function installPlugin() {
try {
await downloadPlugin()
await backupWeChat()
await injectionPlugin()
console.log('Plugin installation completed')
} catch (err) {
console.error('Plugin installation failed:', err)
}
}
The code snippets show different approaches:
- WeChatPlugin-MacOS uses Objective-C and hooks into WeChat's main thread
- oh-my-wechat uses JavaScript and focuses on plugin installation and injection
Both projects aim to enhance WeChat on macOS, but WeChatPlugin-MacOS offers more extensive modifications, while oh-my-wechat prioritizes ease of use and maintenance.
网页版微信API,包含终端版微信及微信机器人
Pros of WeixinBot
- Platform-independent: Works on various operating systems, not limited to macOS
- Focuses on bot functionality: Provides a framework for creating WeChat bots
- More lightweight: Doesn't require modifying the WeChat application
Cons of WeixinBot
- Less feature-rich: Lacks some advanced features present in WeChatPlugin-MacOS
- Potentially less stable: May be affected by WeChat API changes more easily
- Limited GUI integration: Primarily operates through command-line interface
Code Comparison
WeixinBot (Python):
def send_msg(self, toUserName, content):
url = self.base_uri + '/webwxsendmsg?pass_ticket=%s' % self.pass_ticket
msg_id = str(int(time.time() * 1000)) + str(random.random())[:5].replace('.', '')
params = {
'BaseRequest': self.BaseRequest,
'Msg': {
'Type': 1,
'Content': content,
'FromUserName': self.User['UserName'],
'ToUserName': toUserName,
'LocalID': msg_id,
'ClientMsgId': msg_id
}
}
headers = {'content-type': 'application/json; charset=UTF-8'}
data = json.dumps(params, ensure_ascii=False).encode('utf8')
try:
r = self.session.post(url, data=data, headers=headers)
except:
return False
dic = r.json()
return dic['BaseResponse']['Ret'] == 0
WeChatPlugin-MacOS (Objective-C):
- (void)sendTextMessage:(NSString *)text toUsrName:(NSString *)userName
{
WCContactData *contact = [self.contactsManager getContact:userName];
if (contact) {
[self addLocalMessageWithText:text toContact:contact];
MMChatMessageViewController *chatMessageVC = [self getChatMessageViewControllerWithContact:contact];
[chatMessageVC sendTextMessage:text];
}
}
The code snippets show different approaches to sending messages, with WeixinBot using HTTP requests and WeChatPlugin-MacOS leveraging the WeChat application's internal methods.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
微信å°å©æ v2.0
English | ä¸æ
[ åè½ • æ´æ°æ¥å¿ • Demoæ¼ç¤º • ä½¿ç¨ • å®è£ • å¸è½½ • TODO ]
å ¶ä»æä»¶ï¼ [ wechat-alfred-workflow • QQ çæ¬ ]
åè½
- æ¶æ¯èªå¨åå¤
- æ¶æ¯é²æ¤å
- è¿ç¨æ§å¶(å·²æ¯æè¯é³)
- 微信å¤å¼
- 第äºæ¬¡ç»å½å 认è¯
- è天置åºåè½(
类似置顶) - 微信çªå£ç½®é¡¶
- ä¼è¯å¤éå é¤
- èªå¨ç»å½å¼å ³
- éç¥ä¸å¿å¿«æ·åå¤
- è天çªå£è¡¨æ å å¤å¶ & åå¨
- å°å©ææ£æµæ´æ°æé
- alfred å¿«æ·åéæ¶æ¯ & æå¼çªå£ (éå®è£ ï¼wechat-alfred-workflow)
- ä¼è¯ä¸é®å·²è¯»
- ä¸é®æ¸ é¤ç©ºä¼è¯
- æ¯æå½é å
- æ°å¢ä¸é®æ´æ°
- æ°å¢å ³äºå°å©æ
- å»é¤å¾®ä¿¡url转é¾ï¼ä»æ¤ç´æ¥æå¼æé³é¾æ¥ð
- å²ä¸æ强 alfred æ©å±ð
- æ°å¢ç§»é¤ä¼è¯(ä¸å é¤è天记å½)
- èåæ (å ³äºå°å©æ)æ°å¢ alfred å¼å ³
- æ°å¢æ¯å¦ä½¿ç¨å¾®ä¿¡èªå¸¦æµè§å¨å¼å ³
- æ°å¢LaunchBar æ©å±
- æ°å¢ç¦æ¢å¾®ä¿¡æ£æµæ´æ°å¼å ³(éApp Storeçæ¬)
æ°å¢å°å©æ.appå®è£ æ¹å¼- æ¯æé群çæ§ï¼æ¤åæ¶æ¯å®ä½
- æ¯æ微信 3.7.0
è¥æ ä½¿ç¨ alfredï¼åä¸å¿ æå¼ alfred å¼å ³
è¿ç¨æ§å¶ï¼
- å±å¹ä¿æ¤
- æ¸ ç©ºåºçº¸ç¯
- éå±ãä¼ç ãå ³æºãéå¯
- éåºQQãWeChatãChromeãSafariãææç¨åº
- ç½æäºé³ä¹(ææ¾ãæåãä¸ä¸é¦ãä¸ä¸é¦ãå欢ãåæ¶å欢)
- å°å©æ(è·åæ令ãé²æ¤åå¼å ³ãèªå¨åå¤å¼å ³ãå 认è¯ç»å½å¼å ³)
è¥æ³ä½¿ç¨è¿ç¨æ§å¶ç½æäºé³ä¹ï¼è¯·å¨âç³»ç»å好设置 ==> å®å ¨æ§ä¸éç§ ==> éç§ ==> è¾ å©åè½âä¸æ·»å 微信ãèæ¬ç¼è¾å¨
æ´æ°æ¥å¿
- éé 3.7.0(2023-03-12)
- éé 2.3.22 & æ°å¢ç¦æ¢å¾®ä¿¡æ£æµæ´æ°å¼å ³(2019-01-13)
- éé 2.3.19 & ä¿®å¤å®å ¨æ¼æ´(2018-10-23)
- éé 2.3.17 & å 强 alfred æç´¢(2018-07-24)
- æ°å¢å¥½å¤åè½â¦(2018-05-12)
- æ°å¢èªå¨åå¤å»¶è¿ & ä¿®æ¹ç½®é¡¶çªå£å¿«æ·(2018-04-07)
- æ°å¢ Alfred å¿«æ·åéæ¶æ¯ & æå¼è天çªå£(2018-03-18)
- æ°å¢è¯é³è¿ç¨æ§å¶mac & ä¼åæ¤åæ¶æ¯ãå¿«æ·åå¤(2018-03-03)
- æ°å¢å°å©ææ£æµæ´æ°&表æ å å¤å¶åå¨çç (2018-02-24)
- æ°å¢çªå£ç½®é¡¶&å¤éå é¤çç (2017-10-11)
- æ°å¢ç½®åº&å è®¤è¯ (2017-09-17)
- ä¿®å¤è天记å½æ¶å¤±çbug (2017-09-11)
- éæèªå¨åå¤ï¼å®ç°å¤åå¤ (2017-08-23)
详ç»å 容请æ¥çCHANGELOG
Demoæ¼ç¤º
-
æ¶æ¯é²æ¤å
-
èªå¨åå¤
-
微信å¤å¼
-
è¿ç¨æ§å¶ (æµè¯å ³éChromeãQQãå¼å¯å±å¹ä¿æ¤)
-
å è®¤è¯ & ç½®åº & å¤éå é¤
-
éç¥ä¸å¿å¿«æ·åå¤
-
è天çªå£è¡¨æ å¤å¶ & åå¨
-
è¯é³è¿ç¨æ§å¶ mac
-
Alfred å¿«éæç´¢ wechat-alfred-workflow
-
Alfred æç´¢æè¿è天å表 & æ¥çè天记å½
-
ä¸é®å·²è¯» & ä¸é®æ¸ é¤ç©ºåè¯
使ç¨
- æ¶æ¯é²æ¤åï¼ç¹å»
å¼å¯æ¶æ¯é²æ¤å
æè å¿«æ·é®command + t
,å³å¯å¼å¯ãå ³éã - èªå¨åå¤ï¼ç¹å»
å¼å¯èªå¨åå¤
æè å¿«æ·é®conmand + k
ï¼å°å¼¹åºèªå¨åå¤è®¾ç½®ççªå£ï¼ç¹å»çº¢è²ç®å¤´çæé®è®¾ç½®å¼å ³ã
è¥å ³é®å为
*
ï¼åä»»ä½ä¿¡æ¯é½åå¤ï¼ è¥å ³é®å为x|y
,å x å y é½åå¤ï¼ è¥å ³é®åæè èªå¨åå¤ä¸ºç©ºï¼åä¸å¼å¯è¯¥æ¡èªå¨åå¤ï¼ å¯è®¾ç½®å»¶è¿åå¤ï¼åä½ï¼ç§ï¼ è¥å¼å¯æ£åï¼è¯·ç¡®è®¤æ£å表达å¼ä¹¦åæ£ç¡®ï¼å¨çº¿æ£å表达å¼æµè¯ è¥å¼å¯ç¹å®è系人åå¤ï¼ååå ç群è&ç§èåå¤æ æ
-
微信å¤å¼ï¼ç¹å»
ç»å½æ°å¾®ä¿¡
æè å¿«æ·é®command + shift + n
,å³å¯å¤å¼å¾®ä¿¡ã -
è¿ç¨æ§å¶ï¼ç¹å»
è¿ç¨æ§å¶ Mac OS
æè å¿«æ·é®command + shift + c
,å³å¯æå¼æ§å¶çªå£ã
注æï¼ä» åèªå·±è´¦å·åéæ令ææ
- Alfred 使ç¨ï¼è¯·æ¥ç wechat-alfred-workflow
å®è£
详ç»å®è£ æ¹æ³(æè éè¦éæ°ç¼è¯)请æ¥é Install.md
1. å®è£
è¥æ示æ æéï¼Permission denied
ï¼æ§è¡ sudo chmod -R 777 /Applications/WeChat.app
1.1 éè¦å®è£ Git
æå¼åºç¨ç¨åº-å®ç¨å·¥å
·-Terminal(ç»ç«¯)
ï¼æ§è¡ä¸é¢çå½ä»¤å®è£
cd ~/Downloads && rm -rf WeChatPlugin-MacOS && git clone https://github.com/TKkk-iOSer/WeChatPlugin-MacOS.git --depth=1 && ./WeChatPlugin-MacOS/Other/Install.sh
2. æ®éå®è£
- ç¹å»
clone or download
æé®ä¸è½½ WeChatPlugin 并解åï¼æå¼Terminal(ç»ç«¯)ï¼æå¨è§£ååInstall.sh
æ件(å¨ Other æ件夹ä¸)å° Terminal å车å³å¯ã
3. å®è£ å®æ
- éå¯å¾®ä¿¡ï¼å¨èåæ ä¸çå°å¾®ä¿¡å°å©æå³å®è£ æåã
å¸è½½
æå¼Terminal(ç»ç«¯)ï¼æå¨è§£ååUninstall.sh
æ件(å¨ Other æ件夹ä¸)å° Terminal å车å³å¯ã
TODO
- å¢å
Alfred
æç´¢ - æ¥çåå好å
- å¢å brew å®è£ æ¹å¼
- å®åèªå¨åå¤(æå®å¥½ååå¤)
- å®åæ¶æ¯é²æ¤å(æ¾ç¤ºæ¤åç¨æ·æµç§°)
-
æ¸ é¤å¾®ä¿¡ç¼å(å®æ¹å·²å ) - ä¼åå°å©æ设置(æ´æ°åä¿çç¸å ³è®¾ç½®ï¼æ´æ°æé)
- è¯é³è¿ç¨æ§å¶ mac
- æ¯æä¸è±æ
- æ¯ææ·±è²æ¨¡å¼
ä¾èµ
å 责声æ
- 使ç¨æ件æé£é©ï¼ä½¿ç¨éè°¨æ ã
- æ¬é¡¹ç®æ¨å¨æåç活幸ç¦æ使ç¨ï¼ä¸å¯ç¨äºåä¸åä¸ªäººå ¶ä»æå¾ãè¥ä½¿ç¨ä¸å½ï¼è¯·ä½¿ç¨è èªè¡æ¿æ ã
- å¦æä¾µæï¼è¯·èç³»æ¬äººãtkk.ioser@gmail.com
Top Related Projects
A dynamic library tweak for WeChat macOS - 首款微信 macOS 客户端撤回拦截与多开 🔨
Mac微信功能拓展/微信插件/微信小助手(A plugin for Mac WeChat)
微信小助手的安装 / 更新工具。
网页版微信API,包含终端版微信及微信机器人
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot