mirror of
https://github.com/DKJone/DKWechatHelper.git
synced 2025-05-23 02:26:09 +08:00
what's new
* 新增集赞助手 * 新增CallKit * 支持7.0.14 * 更新越狱包7.0.14 * 更新已注入助手的7.0.14未签名包 * 增加越狱方式安装包 * 新增越狱源安装
This commit is contained in:
parent
d8ccfebd50
commit
e56c21ab7d
23
CHANGELOG.md
23
CHANGELOG.md
|
@ -1,30 +1,39 @@
|
|||
# DKWechatHelper ChangeLog
|
||||
[v1.0.4](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.4) / 2020-07-07
|
||||
what's new
|
||||
* 新增集赞助手
|
||||
* 新增CallKit
|
||||
* 支持7.0.14
|
||||
* 更新越狱包7.0.14
|
||||
* 更新已注入助手的7.0.14未签名包
|
||||
* 增加越狱方式安装包
|
||||
* 新增越狱源安装
|
||||
|
||||
[v1.0.3](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.3) / 2020-06-29
|
||||
what's new
|
||||
[v1.0.3](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.3) / 2020-06-29
|
||||
what's new
|
||||
* 适配新版本微信
|
||||
* 支持7.0.13
|
||||
* 更新越狱包7.0.13
|
||||
* 更新已注入助手的7.0.13未签名包
|
||||
* 增加越狱方式安装包
|
||||
|
||||
[v1.0.2](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.2) / 2020-01-29
|
||||
what's new
|
||||
[v1.0.2](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.2) / 2020-01-29
|
||||
what's new
|
||||
* 修复请我喝咖啡闪退
|
||||
* 支持7.0.11
|
||||
* 更新越狱包7.0.11
|
||||
* 更新已注入助手的7.0.11未签名包
|
||||
|
||||
|
||||
[v1.0.1](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.1) / 2020-01-21
|
||||
what's new
|
||||
[v1.0.1](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.1) / 2020-01-21
|
||||
what's new
|
||||
|
||||
* 修复微信7.0.8~7.0.10设置步数和抢红包延迟闪退
|
||||
* 新增越狱包7.0.8、7.0.10
|
||||
* 新增已注入助手的7.0.10未签名包
|
||||
|
||||
|
||||
[v1.0.0](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.0) / 2019-02-06
|
||||
[v1.0.0](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.0) / 2019-02-06
|
||||
what's new
|
||||
|
||||
* 修改获取NavigationController逻辑
|
||||
|
|
28
README.md
28
README.md
|
@ -2,6 +2,7 @@
|
|||
|
||||
不止于抢红包,功能丰富的微信插件。本软件已成功运行在(iphone7-iphone11、iPad)
|
||||
给个⭐️不迷路↗️
|
||||
[v1.0.4](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.4)适用微信7.0.14
|
||||
[v1.0.3](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.3)适用微信7.0.13
|
||||
[v1.0.2](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.2)适用微信7.0.11
|
||||
[v1.0.1](https://github.com/DKWechatHelper/DKWechatHelper/releases/tag/1.0.1)适用微信7.0.8~7.0.10
|
||||
|
@ -14,12 +15,19 @@
|
|||
3.非越狱可后台抢红包
|
||||
4.安全高效源码公开
|
||||
5.设置方便,手机无需越狱
|
||||
## 功能
|
||||
1.自动抢红包
|
||||
2.消息防撤回
|
||||
3.微信步数修改
|
||||
4.小游戏作弊(剪刀石头布和掷骰子)
|
||||
5.自动抢红包高级配置
|
||||
## 功能
|
||||
|
||||
* [x] 自动抢红包
|
||||
* [x] 后台抢红包
|
||||
* [x] 群聊过滤
|
||||
* [x] 关键词过滤
|
||||
* [x] 消息防撤回
|
||||
* [x] 消息防撤回
|
||||
* [x] 微信步数修改
|
||||
* [x] 小游戏作弊(剪刀石头布和掷骰子)
|
||||
* [x] CallKit锁屏接视频语音
|
||||
* [x] 集赞助手
|
||||
|
||||
安装后在微信设置中点击“微信小助手”
|
||||
更多请查看下图:
|
||||
|
||||
|
@ -32,7 +40,9 @@
|
|||
* [7.0.2](https://pan.baidu.com/s/1SHZHfu94Z_jhCkaaFDx8pA)
|
||||
* [7.0.8-*提取码:h54d*](https://pan.baidu.com/s/11VoUXPC4vb5zg8HzP3kC0Q)
|
||||
* [7.0.11-*提取码: 2igg*](https://pan.baidu.com/s/1mU_mezsWhqL2-AY0PB-vVg)
|
||||
* [7.0.13-*提取码: nx4m*](https://pan.baidu.com/s/1rqB0pV4zMEB6Z3VJTsTa8Q)
|
||||
* [7.0.13-*提取码: nx4m*](https://pan.baidu.com/s/1rqB0pV4zMEB6Z3VJTsTa8Q)
|
||||
* [7.0.14](https://n802.com/file/24576815-452231690)
|
||||
|
||||
将下载的微信放到'/dkhelper/dkhelper/TargetApp/'目录下该目录下有一个空白文件’put ipa or app here‘,和它放在同一文件夹下即可,修改项目BundleId及签名信息,选择真机设备运行即可
|
||||
|
||||
2.开发者:
|
||||
|
@ -40,6 +50,7 @@
|
|||
* [未签名版7.0.0](https://pan.baidu.com/s/1-zEUQRGn3H4bZVqHpyffzQ)
|
||||
* [未签名版7.0.11-*提取码: fe9f*](https://pan.baidu.com/s/1sOPCqnCPxSdIKq7TKuHK9g)
|
||||
* [未签名版7.0.13-*提取码: fhes*](https://pan.baidu.com/s/1DgSl5u0Gip3cNdqZmRFEWw)
|
||||
* [未签名版7.0.14](https://n802.com/file/24576815-452232682)
|
||||
注:推荐使用[ios-app-signer](https://github.com/DanTheMan827/ios-app-signer)签名,使用方法自行百度
|
||||
|
||||
3.普通用户:
|
||||
|
@ -47,7 +58,8 @@
|
|||
下载后使用 [Cydia Impactor](http://www.cydiaimpactor.com/)安装
|
||||
|
||||
4.越狱用户:
|
||||
[deb安装包地址 - *提取码: dq53*](https://pan.baidu.com/s/1NyDrM_VF3JYv7PAyW_VkcQ)
|
||||
[deb安装包地址 ](https://n802.com/file/24576815-452232684)
|
||||
或添加源`https://dkjone.github.io/`下载
|
||||
|
||||
|
||||
### 请我喝杯☕️
|
||||
|
|
|
@ -152,7 +152,7 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>7.0.13</string>
|
||||
<string>7.0.14</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
|
@ -181,7 +181,7 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>7.0.13.35</string>
|
||||
<string>7.0.14.32</string>
|
||||
<key>DTAppStoreToolsBuild</key>
|
||||
<string>11E608a</string>
|
||||
<key>DTCompiler</key>
|
||||
|
@ -347,6 +347,14 @@
|
|||
<true/>
|
||||
<key>UIStatusBarStyle</key>
|
||||
<string>UIStatusBarStyleBlackOpaque</string>
|
||||
<key>UISupportedDevices</key>
|
||||
<array>
|
||||
<string>iPhone10,1</string>
|
||||
<string>iPhone10,4</string>
|
||||
<string>iPhone12,8</string>
|
||||
<string>iPhone9,1</string>
|
||||
<string>iPhone9,3</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
|
@ -365,22 +373,22 @@
|
|||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<true/>
|
||||
<key>WeChatBundleVersion</key>
|
||||
<string>7.0.13.35</string>
|
||||
<string>7.0.14.32</string>
|
||||
<key>WeChatFeatureIdentifier</key>
|
||||
<string>release_appstore_7.0.13</string>
|
||||
<string>release_appstore_7.0.14</string>
|
||||
<key>build_time</key>
|
||||
<string>2020-05-27 22:42:30</string>
|
||||
<string>2020-06-25 03:12:11</string>
|
||||
<key>by</key>
|
||||
<string>wx_ios_code_helper</string>
|
||||
<key>path</key>
|
||||
<string>release_appstore_7.0.13_2020_5_15_15_35_25</string>
|
||||
<string>release_appstore_7.0.14_2020_6_16_19_17_20</string>
|
||||
<key>rev</key>
|
||||
<string>bc848d3237033ebcc0fcaba58efd2b8fdee7881e</string>
|
||||
<string>485ff919d927a0ca67ac8c4b324f1de02ae0283b</string>
|
||||
<key>tag</key>
|
||||
<string>release_appstore_7.0.13 #36</string>
|
||||
<string>release_appstore_7.0.14 #28</string>
|
||||
<key>uuid</key>
|
||||
<string>9990dee0603a387c81ee52b357b4c33c</string>
|
||||
<string>3a1d03886bdb350c870680e3d15aa7c7</string>
|
||||
<key>ver</key>
|
||||
<string>0x17000d23</string>
|
||||
<string>0x17000e20</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#import <objc/objc-runtime.h>
|
||||
#import "DKHelper.h"
|
||||
#import "DKGroupFilterController.h"
|
||||
|
||||
@interface DKHelperSettingController ()<MultiSelectGroupsViewControllerDelegate>{
|
||||
WCTableViewManager * manager;
|
||||
MMUIViewController *helper;
|
||||
|
@ -61,6 +62,32 @@
|
|||
WCTableViewCellManager *autoEnvelopCell = [DKHelper switchCellWithSel:@selector(autoEnvelopSwitchChange:) target:self title:@"自动抢红包" switchOn:[DKHelperConfig autoRedEnvelop]];
|
||||
[redEnvelopSection addCell:autoEnvelopCell];
|
||||
|
||||
if (DKHelperConfig.autoRedEnvelop){
|
||||
//后台抢红包
|
||||
WCTableViewCellManager *redEnvelopBackGroundCell = [DKHelper switchCellWithSel:@selector(autoEnveloBackGround:) target:self title:@"锁屏及后台抢红包" switchOn:[DKHelperConfig redEnvelopBackGround]];
|
||||
[redEnvelopSection addCell:redEnvelopBackGroundCell];
|
||||
//延迟抢红包
|
||||
NSString *delay = @"不延迟";
|
||||
if ([DKHelperConfig redEnvelopDelay] > 0){
|
||||
delay = [NSString stringWithFormat:@"%ld毫秒",(long)[DKHelperConfig redEnvelopDelay]];
|
||||
}
|
||||
WCTableViewCellManager *redEnvelopDelayCell = [DKHelper cellWithSel:@selector(redEnvelopDelay) target:self title:@"延迟抢红包" rightValue:delay accessoryType:1];
|
||||
[redEnvelopSection addCell:redEnvelopDelayCell];
|
||||
//关键词过滤
|
||||
NSString *textFilter = [DKHelperConfig redEnvelopTextFiter].length ? [DKHelperConfig redEnvelopTextFiter] : @"不过滤" ;
|
||||
WCTableViewCellManager *redEnvelopTextFilterCell = [DKHelper cellWithSel:@selector(redEnvelopTextFilter) target:self title:@"关键词过滤" rightValue:textFilter accessoryType:1];
|
||||
[redEnvelopSection addCell:redEnvelopTextFilterCell];
|
||||
//群聊过滤
|
||||
NSString * groupFilter = [DKHelperConfig redEnvelopGroupFiter].count ? [NSString stringWithFormat:@"已过滤%lu个群",(unsigned long)[DKHelperConfig redEnvelopGroupFiter].count] : @"不过滤";
|
||||
WCTableViewCellManager *redEnvelopGroupFilterCell = [DKHelper cellWithSel:@selector(redEnvelopGroupFiter) target:self title:@"群聊过滤" rightValue:groupFilter accessoryType:1];
|
||||
[redEnvelopSection addCell:redEnvelopGroupFilterCell];
|
||||
//抢自己的红包
|
||||
WCTableViewCellManager *redEnvelopCatchMeCell = [DKHelper switchCellWithSel:@selector(redEnvelopCatchMe:) target:self title:@"抢自己的红包" switchOn:[DKHelperConfig redEnvelopCatchMe]];
|
||||
[redEnvelopSection addCell:redEnvelopCatchMeCell];
|
||||
//防止同时抢多个红包
|
||||
WCTableViewCellManager *redEnvelopMultipleCatchCell = [DKHelper switchCellWithSel:@selector(redEnvelopMultipleCatch:) target:self title:@"防止同时抢多个红包" switchOn:[DKHelperConfig redEnvelopMultipleCatch]];
|
||||
[redEnvelopSection addCell:redEnvelopMultipleCatchCell];
|
||||
}
|
||||
|
||||
//MARK: 装逼模块
|
||||
WCTableViewSectionManager *toBeNO1Section = [DKHelper sectionManage];
|
||||
|
@ -83,7 +110,7 @@
|
|||
WCTableViewCellManager *gamePlugCell = [DKHelper switchCellWithSel:@selector(gamePlugEnable:) target:self title:@"小游戏作弊" switchOn:[DKHelperConfig gamePlugEnable]];
|
||||
[toBeNO1Section addCell:gamePlugCell];
|
||||
|
||||
WCTableViewCellManager *callKitCell = [DKHelper switchCellWithSel:@selector(enableCallKit:) target:self title:@"使用CallKit" switchOn:[DKHelperConfig enableCallKit]];
|
||||
WCTableViewCellManager *callKitCell = [DKHelper switchCellWithSel:@selector(callKitEnable:) target:self title:@"使用CallKit" switchOn:[DKHelperConfig callKitEnable]];
|
||||
[toBeNO1Section addCell:callKitCell];
|
||||
|
||||
|
||||
|
@ -102,43 +129,51 @@
|
|||
[supportAuthorSection addCell:myGitHubCell];
|
||||
|
||||
|
||||
//MARK: 积攒助手
|
||||
WCTableViewSectionManager *likeCommentSection = [DKHelper sectionManage];
|
||||
likeCommentSection.headerTitle = @"集赞助手";
|
||||
[manager addSection:likeCommentSection];
|
||||
|
||||
//MARK: 高级功能
|
||||
WCTableViewSectionManager *advancedSection = [DKHelper sectionManage];
|
||||
advancedSection.headerTitle = @"高级功能";
|
||||
[manager addSection:advancedSection];
|
||||
//后台抢红包
|
||||
WCTableViewCellManager *redEnvelopBackGroundCell = [DKHelper switchCellWithSel:@selector(autoEnveloBackGround:) target:self title:@"锁屏及后台抢红包" switchOn:[DKHelperConfig redEnvelopBackGround]];
|
||||
[advancedSection addCell:redEnvelopBackGroundCell];
|
||||
//延迟抢红包
|
||||
NSString *delay = @"不延迟";
|
||||
if ([DKHelperConfig redEnvelopDelay] > 0){
|
||||
delay = [NSString stringWithFormat:@"%ld毫秒",(long)[DKHelperConfig redEnvelopDelay]];
|
||||
WCTableViewCellManager *likeCommentCell = [DKHelper switchCellWithSel:@selector(likeCommentEnable:) target:self title:@"集赞助手" switchOn:[DKHelperConfig likeCommentEnable]];
|
||||
[likeCommentSection addCell:likeCommentCell];
|
||||
if (DKHelperConfig.likeCommentEnable){
|
||||
NSString * likeCount = [NSString stringWithFormat:@"%d",DKHelperConfig.likeCount.intValue];
|
||||
WCTableViewNormalCellManager *likeCountCell = [DKHelper cellWithSel:@selector(showLikeCommentInput:) target:self title:@"点赞数:" rightValue: likeCount accessoryType:1];
|
||||
[likeCommentSection addCell:likeCountCell];
|
||||
|
||||
NSString * commentCount = [NSString stringWithFormat:@"%d",DKHelperConfig.commentCount.intValue];
|
||||
WCTableViewNormalCellManager *commentCountCell = [DKHelper cellWithSel:@selector(showLikeCommentInput:) target:self title:@"评论数:" rightValue:commentCount accessoryType:1];
|
||||
[likeCommentSection addCell:commentCountCell];
|
||||
|
||||
WCTableViewNormalCellManager *commentsCell = [DKHelper cellWithSel:@selector(showLikeCommentInput:) target:self title:@"评论:" rightValue:DKHelperConfig.comments accessoryType:1];
|
||||
[likeCommentSection addCell:commentsCell];
|
||||
|
||||
[likeCountCell addUserInfoValue:@0 forKey:@"type"];
|
||||
[commentCountCell addUserInfoValue:@1 forKey:@"type"];
|
||||
[commentsCell addUserInfoValue:@2 forKey:@"type"];
|
||||
}
|
||||
WCTableViewCellManager *redEnvelopDelayCell = [DKHelper cellWithSel:@selector(redEnvelopDelay) target:self title:@"延迟抢红包" rightValue:delay accessoryType:1];
|
||||
[advancedSection addCell:redEnvelopDelayCell];
|
||||
//关键词过滤
|
||||
NSString *textFilter = [DKHelperConfig redEnvelopTextFiter].length ? [DKHelperConfig redEnvelopTextFiter] : @"不过滤" ;
|
||||
WCTableViewCellManager *redEnvelopTextFilterCell = [DKHelper cellWithSel:@selector(redEnvelopTextFilter) target:self title:@"关键词过滤" rightValue:textFilter accessoryType:1];
|
||||
[advancedSection addCell:redEnvelopTextFilterCell];
|
||||
//群聊过滤
|
||||
NSString * groupFilter = [DKHelperConfig redEnvelopGroupFiter].count ? [NSString stringWithFormat:@"已过滤%lu个群",(unsigned long)[DKHelperConfig redEnvelopGroupFiter].count] : @"不过滤";
|
||||
WCTableViewCellManager *redEnvelopGroupFilterCell = [DKHelper cellWithSel:@selector(redEnvelopGroupFiter) target:self title:@"群聊过滤" rightValue:groupFilter accessoryType:1];
|
||||
[advancedSection addCell:redEnvelopGroupFilterCell];
|
||||
//抢自己的红包
|
||||
WCTableViewCellManager *redEnvelopCatchMeCell = [DKHelper switchCellWithSel:@selector(redEnvelopCatchMe:) target:self title:@"抢自己的红包" switchOn:[DKHelperConfig redEnvelopCatchMe]];
|
||||
[advancedSection addCell:redEnvelopCatchMeCell];
|
||||
//防止同时抢多个红包
|
||||
WCTableViewCellManager *redEnvelopMultipleCatchCell = [DKHelper switchCellWithSel:@selector(redEnvelopMultipleCatch:) target:self title:@"防止同时抢多个红包" switchOn:[DKHelperConfig redEnvelopMultipleCatch]];
|
||||
[advancedSection addCell:redEnvelopMultipleCatchCell];
|
||||
|
||||
|
||||
|
||||
[manager.tableView reloadData];
|
||||
}
|
||||
|
||||
- (void)likeCommentEnable:(UISwitch *)sender{
|
||||
DKHelperConfig.likeCommentEnable = sender.on;
|
||||
if (sender.on ) {
|
||||
DKHelperConfig.comments = DKHelperConfig.comments.length ? @"赞,,👍" :DKHelperConfig.comments;
|
||||
[DKHelper showAlertWithTitle:@"集赞说明"
|
||||
message:@"到需要集赞的朋友圈下点个赞即可自动集赞"
|
||||
btnTitle:@"太棒了"
|
||||
handler:^(UIButton *sender) { }];
|
||||
}
|
||||
[self reloadTableData];
|
||||
}
|
||||
|
||||
|
||||
- (void)autoEnvelopSwitchChange:(UISwitch *)sender{
|
||||
DKHelperConfig.autoRedEnvelop = sender.isOn;
|
||||
[self reloadTableData];
|
||||
}
|
||||
|
||||
- (void)revokeIntercept:(UISwitch *)sender{
|
||||
|
@ -155,8 +190,7 @@
|
|||
WCUIAlertView * alert = [[objc_getClass("WCUIAlertView") alloc] initWithTitle:@"输入步数" message:@"最好不要超过60000否则可能被封号"];
|
||||
[alert addBtnTitle:@"确定" target:self sel:@selector(changeStepOK:)];
|
||||
[alert showTextFieldWithMaxLen:5];
|
||||
UITextField * filed = alert.getTextField;
|
||||
filed.text = str;
|
||||
[alert setTextFieldDefaultText:str];
|
||||
[alert show];
|
||||
}
|
||||
-(void)changeStepOK:(MMTipsViewController *)sender{
|
||||
|
@ -165,6 +199,36 @@
|
|||
[self reloadTableData];
|
||||
}
|
||||
|
||||
- (void)showLikeCommentInput:(WCTableViewNormalCellManager *)sender{
|
||||
NSNumber * type = [sender getUserInfoValueForKey:@"type"];
|
||||
NSString * str = @[[NSString stringWithFormat:@"%d",DKHelperConfig.likeCount.intValue],
|
||||
[NSString stringWithFormat:@"%d",DKHelperConfig.comments.intValue],
|
||||
[NSString stringWithFormat:@"%@",DKHelperConfig.comments]][type.intValue];
|
||||
NSString * title = @[@"输入点赞数",@"输入评论数",@"输入评论"][type.intValue];
|
||||
NSString * msg = @[@"实际点赞数最大为您的好友个数",
|
||||
@"原始评论会保留",
|
||||
@"用英文双逗号分隔,例(赞,,👍,,...)"][type.intValue];
|
||||
WCUIAlertView * alert = [[objc_getClass("WCUIAlertView") alloc] initWithTitle:title message:msg];
|
||||
[alert addBtnTitle:@"确定" target:self sel:@selector(changelikeCountOK:)];
|
||||
[alert showTextFieldWithMaxLen:5];
|
||||
[alert setTextFieldDefaultText:str];
|
||||
[alert show];
|
||||
}
|
||||
|
||||
-(void)changelikeCountOK:(MMTipsViewController *)sender{
|
||||
NSLog(@"%@",sender);
|
||||
NSString * title = [sender valueForKey:@"_tipsTitle"];
|
||||
if ([@"输入评论数" isEqualToString:title]){
|
||||
DKHelperConfig.commentCount = @(sender.text.intValue);
|
||||
}else if([@"输入点赞数" isEqualToString:title]){
|
||||
DKHelperConfig.likeCount = @(sender.text.intValue);
|
||||
}else{
|
||||
DKHelperConfig.comments = sender.text;
|
||||
}
|
||||
[self reloadTableData];
|
||||
}
|
||||
|
||||
|
||||
-(void)gamePlugEnable:(UISwitch *)sender{
|
||||
DKHelperConfig.gamePlugEnable = sender.isOn;
|
||||
if (sender.isOn){
|
||||
|
@ -172,39 +236,19 @@
|
|||
}
|
||||
}
|
||||
|
||||
-(void)enableCallKit:(UISwitch *)sender{
|
||||
DKHelperConfig.enableCallKit = sender.isOn;
|
||||
-(void)callKitEnable:(UISwitch *)sender{
|
||||
DKHelperConfig.callKitEnable = sender.isOn;
|
||||
if (sender.isOn){
|
||||
[DKHelper showAlertWithTitle:@"" message:@"现在可以在锁屏状态下,接听微信电话了!" btnTitle:@"太棒了" handler:^(UIButton *sender) { }];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)payForMe{
|
||||
// ScanQRCodeLogicController *logic = [[objc_getClass("ScanQRCodeLogicController") alloc] initWithViewController:self logicParams:[[objc_getClass("ScanQRCodeLogicParams") alloc] initWithCodeType:19 fromScene:2]];
|
||||
// NewQRCodeScanner *sc = [[objc_getClass("NewQRCodeScanner") alloc] initWithDelegate:logic scannerParams: [[objc_getClass("NewQRCodeScannerParams") alloc] initWithCodeType:19 isUseSmallCropArea:NO] ];
|
||||
// UIImage * img = [self payImage];
|
||||
// [sc scanOnePicture:img];
|
||||
// [logic showScanResult];
|
||||
|
||||
// [sc notifyResult:@"wxp://f2f1L6sAArNEGn95uW57A7WPP1iO7r2vl2oU" type:@"QR_CODE" version:5 rawData:[@"wxp://f2f1L6sAArNEGn95uW57A7WPP1iO7r2vl2oU" dataUsingEncoding:4]];
|
||||
|
||||
NSURL *blogUrl = [NSURL URLWithString:@"https://www.jianshu.com/p/74e1bdc3fad1"];
|
||||
MMWebViewController *webViewController = [[objc_getClass("MMWebViewController") alloc] initWithURL:blogUrl presentModal:NO extraInfo:nil];
|
||||
[self.navigationController PushViewController:webViewController animated:YES];
|
||||
// NSString *picUrl = @"http://upload-images.jianshu.io/upload_images/4066843-2d18218a3c11e2c4.JPG";//@"https://s1.ax1x.com/2020/06/28/N2c5bn.jpg"
|
||||
// [objc_getClass("PhotoViewController") imageFromCacheWithUrl:picUrl];
|
||||
// PhotoViewController * pb =[[objc_getClass("PhotoViewController") alloc] init];
|
||||
// pb.isFromWebview = YES;
|
||||
// pb.isFromWeApp = NO;
|
||||
// pb.isFromSafariOr3rdApp = NO;
|
||||
// pb.isForbidForward = NO;
|
||||
// pb.needDistinguishGif = YES;
|
||||
// pb.delegate = self;
|
||||
// [pb setRelativeUrl:@"https%3A%2F%2Fwww.jianshu.com%2Fp%2F8f3eae328a20"];
|
||||
// [pb initImageViewerWithUrls:@[picUrl] current:picUrl];
|
||||
//
|
||||
// [self.navigationController PushViewController:pb animated:true];
|
||||
|
||||
ScanQRCodeResultsMgr *scMgr = [[objc_getClass("MMServiceCenter") defaultCenter] getService:[objc_getClass("ScanQRCodeResultsMgr") class]];
|
||||
ScanCodeHistoryItem *item = [[objc_getClass("ScanCodeHistoryItem") alloc] init];
|
||||
item.type = @"WX_CODE";
|
||||
item.codeUrl = @"m0E25xJo038.ran,NI96(j";
|
||||
[scMgr retryRequetScanResult:item viewController:self];
|
||||
}
|
||||
|
||||
- (void)openBlog{
|
||||
|
@ -241,7 +285,7 @@
|
|||
UITextField * filed = alert.getTextField;
|
||||
filed.placeholder = str;
|
||||
if (DKHelperConfig.redEnvelopDelay) {
|
||||
filed.text = str;
|
||||
[alert setTextFieldDefaultText:str];
|
||||
}
|
||||
[alert show];
|
||||
}
|
||||
|
@ -260,7 +304,7 @@
|
|||
UITextField * filed = alert.getTextField;
|
||||
filed.placeholder = str;
|
||||
if([DKHelperConfig redEnvelopTextFiter].length ){
|
||||
filed.text = str;
|
||||
[alert setTextFieldDefaultText:str];
|
||||
}
|
||||
[alert show];
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -343,10 +343,10 @@
|
|||
%hook VoipCXMgr
|
||||
|
||||
+ (BOOL)isCallkitAvailable{
|
||||
return DKHelperConfig.enableCallKit;
|
||||
return DKHelperConfig.callKitEnable;
|
||||
}
|
||||
+ (BOOL)isDeviceCallkitAvailable{
|
||||
return DKHelperConfig.enableCallKit;
|
||||
return DKHelperConfig.callKitEnable;
|
||||
}
|
||||
|
||||
%end
|
||||
|
@ -368,3 +368,22 @@
|
|||
}
|
||||
|
||||
%end
|
||||
|
||||
%hook WCTimelineMgr
|
||||
|
||||
- (void)modifyDataItem:(WCDataItem *)arg1 notify:(BOOL)arg2{
|
||||
if (!DKHelperConfig.likeCommentEnable){
|
||||
%orig;return;
|
||||
}
|
||||
if (arg1.likeFlag){
|
||||
arg1.commentUsers = [DKHelper commentWith:arg1];
|
||||
arg1.commentCount = (int)arg1.commentUsers.count;
|
||||
arg1.likeUsers = DKHelper.commentUsers;
|
||||
arg1.likeCount = (int)DKHelper.commentUsers.count;
|
||||
}
|
||||
%orig(arg1,arg2);
|
||||
}
|
||||
%end
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -27,6 +27,15 @@ typedef void(^BtnBlock)(UIButton *sender);
|
|||
|
||||
@interface DKHelper : NSObject
|
||||
|
||||
/// 所有好友(不包含公众号)
|
||||
+ (NSArray<CContact*> *)allFriends;
|
||||
|
||||
/// 朋友圈点赞用户集合
|
||||
+ (NSMutableArray<WCUserComment *>*)commentUsers;
|
||||
|
||||
/// 朋友圈评论
|
||||
+ (NSMutableArray<WCUserComment *>*)commentWith:(WCDataItem *) origItem;
|
||||
|
||||
+ (UIBarButtonItem *)leftNavigationItem;
|
||||
|
||||
+ (UINavigationController *)navigationContrioller;
|
||||
|
@ -92,4 +101,3 @@ typedef void(^BtnBlock)(UIButton *sender);
|
|||
- (BOOL)serialQueueIsEmpty;
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
@interface DKHelper(){
|
||||
BtnBlock act1;
|
||||
BtnBlock act2;
|
||||
NSArray* allFriends;
|
||||
}
|
||||
@end
|
||||
|
||||
|
@ -51,6 +52,68 @@
|
|||
|
||||
}
|
||||
|
||||
+ (NSArray<CContact*> *)allFriends{
|
||||
// 好友缓存为空时去数据库加载
|
||||
if (!DKHelper.shared->allFriends.count){
|
||||
NSMutableArray * friends = [NSMutableArray array];
|
||||
CContactMgr *contactMgr = [[objc_getClass("MMServiceCenter") defaultCenter] getService:[objc_getClass("CContactMgr") class]];
|
||||
NSArray* contacts = [contactMgr getContactList:1 contactType:0];
|
||||
for(CContact* contact in contacts){
|
||||
if (!contact.isBrandContact && contact.m_uiSex != 0) {
|
||||
[friends addObject:contact];
|
||||
}
|
||||
}
|
||||
DKHelper.shared->allFriends = friends;
|
||||
}
|
||||
return DKHelper.shared->allFriends;
|
||||
}
|
||||
|
||||
+ (NSMutableArray<WCUserComment *>*)commentUsers{
|
||||
NSMutableArray* likeCommentUsers = [NSMutableArray array];
|
||||
[DKHelper.allFriends enumerateObjectsUsingBlock:^(CContact * curAddContact, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
WCUserComment* likeComment = [[objc_getClass("WCUserComment") alloc] init];
|
||||
likeComment.username = curAddContact.m_nsUsrName;
|
||||
likeComment.nickname = curAddContact.m_nsNickName;
|
||||
likeComment.type = 2;
|
||||
likeComment.commentID = [NSString stringWithFormat:@"%lu", (unsigned long)idx];
|
||||
likeComment.createTime = [[NSDate date] timeIntervalSince1970];
|
||||
[likeCommentUsers addObject:likeComment];
|
||||
*stop = (DKHelperConfig.likeCount.integerValue == idx);
|
||||
}];
|
||||
return likeCommentUsers;
|
||||
}
|
||||
|
||||
+ (NSMutableArray<WCUserComment *>*)commentWith:(WCDataItem *) origItem{
|
||||
|
||||
NSMutableArray* origComment = origItem.commentUsers;
|
||||
if (origComment.count >= DKHelperConfig.commentCount.intValue){ return origComment;}
|
||||
NSMutableArray* newComments = [NSMutableArray array];
|
||||
|
||||
[newComments addObjectsFromArray:origComment];
|
||||
NSArray<NSString *> *defaultComments = [DKHelperConfig.comments componentsSeparatedByString:@",,"];
|
||||
if (!DKHelperConfig.comments.length){ defaultComments = @[@"赞",@"👍"];}
|
||||
int timeInterval = NSDate.date.timeIntervalSince1970 - origItem.createtime;
|
||||
___addComment:
|
||||
[DKHelper.allFriends enumerateObjectsUsingBlock:^(CContact * curAddContact, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
WCUserComment* newComment = [[objc_getClass("WCUserComment") alloc] init];
|
||||
newComment.username = curAddContact.m_nsUsrName;
|
||||
newComment.nickname = curAddContact.m_nsNickName;
|
||||
newComment.type = 2;
|
||||
newComment.commentID = [NSString stringWithFormat:@"%lu", (unsigned long)idx + origComment.count];
|
||||
newComment.createTime = NSDate.date.timeIntervalSince1970 - arc4random() % timeInterval ;
|
||||
newComment.content = defaultComments[arc4random() % defaultComments.count];
|
||||
[newComments addObject:newComment];
|
||||
*stop = DKHelperConfig.commentCount.intValue <= idx + origComment.count;
|
||||
}];
|
||||
if(DKHelperConfig.commentCount.intValue > newComments.count ){
|
||||
goto ___addComment;
|
||||
}
|
||||
|
||||
[newComments sortUsingComparator:^NSComparisonResult(WCUserComment* _Nonnull obj1, WCUserComment * _Nonnull obj2) {
|
||||
return obj1.createTime < obj2.createTime ? NSOrderedAscending : NSOrderedDescending;
|
||||
}];
|
||||
return newComments;
|
||||
}
|
||||
|
||||
+ (WCTableViewManager *)tableManageWithViewFrame{
|
||||
CGRect tableFrame = [DKHelper viewFrame];
|
||||
|
|
|
@ -17,47 +17,81 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
|
||||
+ (instancetype)shared;
|
||||
|
||||
//程序进入后台处理
|
||||
/// 程序进入后台处理
|
||||
- (void)enterBackgroundHandler;
|
||||
|
||||
|
||||
/// 自动抢红包
|
||||
+(BOOL)autoRedEnvelop;
|
||||
+(void)setAutoRedEnvelop:(BOOL)value;
|
||||
|
||||
/// 消息防撤回
|
||||
+(BOOL)preventRevoke;
|
||||
+(void)setPreventRevoke:(BOOL)value;
|
||||
|
||||
/// 修改步数
|
||||
+(BOOL)changeSteps;
|
||||
+(void)setChangeSteps:(BOOL)value;
|
||||
|
||||
/// 运动步数
|
||||
+(NSInteger)changedSteps;
|
||||
+(void)setChangedSteps:(NSInteger)value;
|
||||
|
||||
/// 小游戏作弊
|
||||
+(BOOL)gamePlugEnable;
|
||||
+(void)setGamePlugEnable:(BOOL)value;
|
||||
|
||||
/// 后台抢红包
|
||||
+(BOOL)redEnvelopBackGround;
|
||||
+(void)setRedEnvelopBackGround:(BOOL)value;
|
||||
|
||||
/// 抢红包延迟
|
||||
+(NSInteger)redEnvelopDelay;
|
||||
+(void)setRedEnvelopDelay:(NSInteger)value;
|
||||
|
||||
/// 抢红包关键词过滤
|
||||
+(NSString *)redEnvelopTextFiter;
|
||||
+(void)setRedEnvelopTextFiter:(NSString*)value;
|
||||
|
||||
/// 抢红包群组过滤
|
||||
+(NSArray *)redEnvelopGroupFiter;
|
||||
+(void)setRedEnvelopGroupFiter:(NSArray *)value;
|
||||
|
||||
/// 抢自己的红包
|
||||
+(BOOL)redEnvelopCatchMe;
|
||||
+(void)setRedEnvelopCatchMe:(BOOL)value;
|
||||
|
||||
/// 同事抢多个红包
|
||||
+(BOOL)redEnvelopMultipleCatch;
|
||||
+(void)setRedEnvelopMultipleCatch:(BOOL)value;
|
||||
|
||||
+(BOOL)hasShowTips;
|
||||
+(void)setHasShowTips:(BOOL)value;
|
||||
|
||||
+(BOOL)enableCallKit;
|
||||
+(void)setEnableCallKit:(BOOL)value;
|
||||
/// 启用callkit
|
||||
+(BOOL)callKitEnable;
|
||||
+(void)setCallKitEnable:(BOOL)value;
|
||||
|
||||
/// 启用积攒助手
|
||||
+(BOOL)likeCommentEnable;
|
||||
+(void)setLikeCommentEnable:(BOOL)value;
|
||||
|
||||
/// 赞的数量
|
||||
+(NSNumber *)likeCount;
|
||||
+(void)setLikeCount:(NSNumber *)value;
|
||||
|
||||
/// 评论的数量
|
||||
+(NSNumber *)commentCount;
|
||||
+(void)setCommentCount:(NSNumber *)value;
|
||||
|
||||
/// 评论
|
||||
+(NSString *)comments;
|
||||
+(void)setComments:(NSString *)value;
|
||||
|
||||
|
||||
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
|
|
@ -35,13 +35,56 @@ NSString* cmdString(SEL sel){
|
|||
return str;
|
||||
}
|
||||
|
||||
+ (NSMethodSignature *)methodSignatureForSelector:(SEL)selector{
|
||||
BOOL isSetMethod = [NSStringFromSelector(selector) rangeOfString:@"set"].location == 0;
|
||||
return [NSMethodSignature signatureWithObjCTypes:isSetMethod ? "v@:@" : "@@:"];
|
||||
}
|
||||
|
||||
+(void)forwardInvocation:(NSInvocation *)anInvocation{
|
||||
NSString * sel = NSStringFromSelector(anInvocation.selector);
|
||||
if ([sel rangeOfString:@"set"].location == 0){
|
||||
//设置值
|
||||
if ([sel rangeOfString:@"Enable"].location != NSNotFound){
|
||||
// 存储BOOL值
|
||||
BOOL *value = (BOOL *)malloc(sizeof(BOOL));
|
||||
[anInvocation getArgument:value atIndex:2];
|
||||
[NSUserDefaults.standardUserDefaults setBool:*value forKey: cmdString(anInvocation.selector)];
|
||||
[NSUserDefaults.standardUserDefaults synchronize];
|
||||
free(value);
|
||||
}else{
|
||||
// 存储对象
|
||||
NSObject *value ;
|
||||
[anInvocation getArgument:&value atIndex:2];
|
||||
[NSUserDefaults.standardUserDefaults setValue:value forKey: cmdString(anInvocation.selector)];
|
||||
[NSUserDefaults.standardUserDefaults synchronize];
|
||||
}
|
||||
|
||||
}else{
|
||||
//返回值
|
||||
if ([sel rangeOfString:@"Enable"].location != NSNotFound){
|
||||
// 返回BOOL值
|
||||
BOOL *retValue = (BOOL *)malloc(sizeof(BOOL));
|
||||
*retValue = [NSUserDefaults.standardUserDefaults boolForKey:cmdString(anInvocation.selector)];
|
||||
[NSUserDefaults.standardUserDefaults synchronize];
|
||||
[anInvocation setReturnValue:retValue];
|
||||
free(retValue);
|
||||
}else{
|
||||
// 返回对象
|
||||
NSObject *retValue ;
|
||||
retValue = [NSUserDefaults.standardUserDefaults valueForKey:cmdString(anInvocation.selector)];
|
||||
[anInvocation setReturnValue:&retValue];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+(BOOL)autoRedEnvelop{
|
||||
return [NSUserDefaults.standardUserDefaults boolForKey:cmdString(_cmd)];
|
||||
}
|
||||
|
||||
+(void)setAutoRedEnvelop:(BOOL)value{
|
||||
[NSUserDefaults.standardUserDefaults setBool:value forKey: cmdString(_cmd)];
|
||||
[NSUserDefaults.standardUserDefaults synchronize];
|
||||
|
||||
}
|
||||
|
||||
+(BOOL)preventRevoke{
|
||||
|
@ -52,10 +95,10 @@ NSString* cmdString(SEL sel){
|
|||
[NSUserDefaults.standardUserDefaults synchronize];
|
||||
}
|
||||
|
||||
+(BOOL)enableCallKit{
|
||||
+(BOOL)callKitEnable{
|
||||
return [NSUserDefaults.standardUserDefaults boolForKey:cmdString(_cmd)];
|
||||
}
|
||||
+(void)setEnableCallKit:(BOOL)value{
|
||||
+(void)setCallKitEnable:(BOOL)value{
|
||||
[NSUserDefaults.standardUserDefaults setBool:value forKey: cmdString(_cmd)];
|
||||
[NSUserDefaults.standardUserDefaults synchronize];
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
- (void)addCancelBtnTitle:(id)arg1 target:(id)arg2 sel:(SEL)arg3;
|
||||
- (void)addBtnTitle:(id)arg1 target:(id)arg2 sel:(SEL)arg3;
|
||||
- (id)getTextField;
|
||||
- (void)setTextFieldDefaultText:(id)arg1;
|
||||
- (void)showTextFieldWithMaxLen:(unsigned int)arg1;
|
||||
- (id)initWithTitle:(id)arg1 message:(id)arg2;
|
||||
- (void)dealloc;
|
||||
|
|
|
@ -65,6 +65,8 @@
|
|||
@interface WCTableViewNormalCellManager : WCTableViewCellManager
|
||||
+ (WCTableViewNormalCellManager *)normalCellForSel:(SEL)arg1 target:(id)arg2 title:(id)arg3 accessoryType:(long long)arg4;
|
||||
+ (WCTableViewNormalCellManager *)normalCellForSel:(SEL)arg1 target:(id)arg2 title:(id)arg3 rightValue:(id)arg4 accessoryType:(long long)arg5;
|
||||
- (id)getUserInfoValueForKey:(id)arg1;
|
||||
- (void)addUserInfoValue:(id)arg1 forKey:(id)arg2;
|
||||
@end
|
||||
|
||||
@class NSMutableArray, NSString, UITableView, UIView;
|
||||
|
@ -191,7 +193,24 @@
|
|||
|
||||
@end
|
||||
|
||||
/// 朋友圈点赞和评论
|
||||
@interface WCUserComment : NSObject
|
||||
@property (retain, nonatomic) NSString * nickname;
|
||||
@property (retain, nonatomic) NSString* username;
|
||||
@property (retain, nonatomic) NSString* contentPattern;
|
||||
@property (retain, nonatomic) NSString* content;
|
||||
@property (retain, nonatomic) NSString* commentID;
|
||||
@property (retain, nonatomic) NSString* m_cpKeyForComment;//@"wctlcm|33||z314250405||1563794344" @"wctlcm|99|1|wxid_6913ohfkk7kq12|liuwenling001|1563794437"
|
||||
|
||||
@property (retain, nonatomic) NSString* refCommentID;
|
||||
@property (retain, nonatomic) NSString* refUserName;
|
||||
|
||||
/// 点赞:1,评论:2
|
||||
@property (nonatomic) int type;
|
||||
@property (nonatomic) int isRichText;
|
||||
@property (nonatomic) unsigned int createTime;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@interface CContact: NSObject <NSCoding>
|
||||
|
@ -200,9 +219,16 @@
|
|||
@property (nonatomic, copy) NSString *m_nsUsrName; // 微信id
|
||||
@property (nonatomic, copy) NSString *m_nsMemberName;
|
||||
@property(retain, nonatomic) NSString *m_nsHeadImgUrl;
|
||||
@property(nonatomic) unsigned int m_uiSex;
|
||||
|
||||
- (id)getContactDisplayName;
|
||||
|
||||
/// 是不是公众号
|
||||
- (BOOL)isBrandContact;
|
||||
/// 是不是公众号
|
||||
- (BOOL)isHolderContact;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@interface CContactMgr : NSObject
|
||||
|
@ -213,7 +239,7 @@
|
|||
- (_Bool)getContactsFromServer:(id)arg1;
|
||||
- (_Bool)isInContactList:(id)arg1;
|
||||
- (_Bool)addLocalContact:(id)arg1 listType:(unsigned int)arg2;
|
||||
|
||||
- (NSArray *)getContactList:(unsigned int)arg1 contactType:(unsigned int)arg2;
|
||||
@end
|
||||
|
||||
@protocol ContactSelectViewDelegate <NSObject>
|
||||
|
@ -289,8 +315,21 @@
|
|||
|
||||
|
||||
@end
|
||||
/// 朋友圈数据
|
||||
@interface WCDataItem : NSObject
|
||||
@property (retain, nonatomic) NSMutableArray * likeUsers;
|
||||
@property (nonatomic) int likeCount;
|
||||
@property (retain, nonatomic) NSString* username;
|
||||
@property (retain, nonatomic) NSMutableArray * commentUsers;
|
||||
@property (nonatomic) int commentCount;
|
||||
@property(nonatomic,assign) BOOL likeFlag;
|
||||
@property(nonatomic) unsigned int createtime;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@interface SettingUtil : NSObject
|
||||
/// 获取当前用户的用户名:wxid_....
|
||||
+ (id)getLocalUsrName:(unsigned int)arg1;
|
||||
@end
|
||||
|
||||
|
@ -373,6 +412,19 @@
|
|||
+ (id)getAppViewControllerManager;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
||||
@interface ScanCodeHistoryItem : NSObject
|
||||
@property(copy, nonatomic) NSString *type;
|
||||
@property(copy, nonatomic) NSString *codeUrl;
|
||||
@end
|
||||
|
||||
@interface ScanQRCodeResultsMgr :NSObject
|
||||
- (void)retryRequetScanResult:(ScanCodeHistoryItem *)arg1 viewController:(id)arg2;
|
||||
@end
|
||||
|
||||
|
||||
#endif /* WechatHeaders_h */
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user