what's new

* 新增集赞助手
* 新增CallKit
* 支持7.0.14
* 更新越狱包7.0.14
* 更新已注入助手的7.0.14未签名包
* 增加越狱方式安装包
* 新增越狱源安装
This commit is contained in:
朱德坤 2020-07-07 15:33:18 +08:00
parent d8ccfebd50
commit e56c21ab7d
12 changed files with 413 additions and 101 deletions

View File

@ -1,4 +1,13 @@
# 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

View File

@ -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
@ -15,11 +16,18 @@
4.安全高效源码公开
5.设置方便,手机无需越狱
## 功能
1.自动抢红包
2.消息防撤回
3.微信步数修改
4.小游戏作弊(剪刀石头布和掷骰子)
5.自动抢红包高级配置
* [x] 自动抢红包
* [x] 后台抢红包
* [x] 群聊过滤
* [x] 关键词过滤
* [x] 消息防撤回
* [x] 消息防撤回
* [x] 微信步数修改
* [x] 小游戏作弊(剪刀石头布和掷骰子)
* [x] CallKit锁屏接视频语音
* [x] 集赞助手
安装后在微信设置中点击“微信小助手”
更多请查看下图:
@ -33,6 +41,8 @@
* [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.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/`下载
### 请我喝杯☕️

View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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];

View File

@ -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

View File

@ -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];
}

View File

@ -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;

View File

@ -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 */