WeChatPlugin-MacOS icon indicating copy to clipboard operation
WeChatPlugin-MacOS copied to clipboard

还是关于图片的,我看了大家的询问都是关于图片的

Open AiPacino opened this issue 7 years ago • 5 comments

您好,可爱的开发者,这个软件很喜欢.非常感谢 现在有一个需求,就是收到图片之后,转发到我们的七牛云存储,但是咱们好像没有这个功能,可以提供一下思路吗?

AiPacino avatar Aug 06 '18 08:08 AiPacino

+1

wells1013 avatar Sep 22 '18 15:09 wells1013

  1. hook downloadImageFinishedWithMessage
tk_hookMethod(objc_getClass("MMMessageCacheMgr"), @selector(downloadImageFinishedWithMessage:type:isSuccess:), [self class], @selector(hook_downloadImageFinishedWithMessage:type:isSuccess:));
  1. 接受到消息的时候自动去下载大图
@interface MMCDNDownloadMgr : NSObject
- (BOOL)downloadImageWithMessage:(id)arg1;
- (id)imagePathWithMessage:(id)arg1;
- (id)fileCDNDownloadParaWithMessage:(id)arg1 destinationPath:(id)arg2;
- (void)OnCdnDownloadFinished:(id)arg1;
@end

- (CExtendInfoOfImg *)getCExtendInfoOfImgWithDic:(NSDictionary *)dic msg:(MessageData *)msg{
    CExtendInfoOfImg *extendInfoOfImg = [[objc_getClass("CExtendInfoOfImg") alloc] init];
    extendInfoOfImg.m_nsAesKey = [dic valueForKeyPath:@"msg.img.aeskey"];
    extendInfoOfImg.m_nsMsgThumbAesKey = [dic valueForKeyPath:@"msg.img.cdnthumbaeskey"];
    extendInfoOfImg.m_nsImgHDUrl = [dic valueForKeyPath:@"msg.img.cdnbigimgurl"];
    extendInfoOfImg.m_nsImgMidUrl = [dic valueForKeyPath:@"msg.img.cdnmidimgurl"];
    extendInfoOfImg.m_nsMsgThumbUrl = [dic valueForKeyPath:@"msg.img.cdnthumburl"];
    extendInfoOfImg.m_nsMsgMd5 = [dic valueForKeyPath:@"msg.img.md5"];
    extendInfoOfImg.m_uiMsgThumbHeight = [[dic valueForKeyPath:@"msg.img.cdnthumbheight"] intValue];
    extendInfoOfImg.m_uiMsgThumbSize = [[dic valueForKeyPath:@"msg.img.cdnthumblength"] intValue];
    extendInfoOfImg.m_uiMsgThumbWidth = [[dic valueForKeyPath:@"msg.img.cdnthumbwidth"] intValue];
    extendInfoOfImg.m_uiNormalImgSize = [[dic valueForKeyPath:@"msg.img.length"] intValue];
    extendInfoOfImg.m_uiHDImgSize = [[dic valueForKeyPath:@"msg.img.hdlength"] intValue];
    extendInfoOfImg.m_refMessageData = msg;
    return extendInfoOfImg;
}

- (void)loadImageWithMsg:(MessageData *)msg{
    if(msg.messageType != 3)return;
    MMCDNDownloadMgr *cdnDownloadService = [[objc_getClass("MMServiceCenter") defaultCenter] getService:objc_getClass("MMCDNDownloadMgr")];
    NSError *error;
    NSString *xmlString = nil;
    NSString *newContent = msg.msgContent;
    NSArray *array = [newContent componentsSeparatedByString:@":\n"];
    xmlString = [array lastObject];
    NSDictionary *dic = [XMLReader dictionaryForXMLString:xmlString error:&error];
    CExtendInfoOfImg *extendInfoOfImg = [self getCExtendInfoOfImgWithDic:dic msg:msg];
    msg.extendInfoWithMsgType = extendInfoOfImg;
    [cdnDownloadService downloadImageWithMessage:msg];
}

xiaokaike avatar Jan 31 '19 10:01 xiaokaike

CExtendInfoOfImg 你的XMLReader是怎样实现的, 这段代码在我的2.3.22微信上好像不取用, 你能贴一下完整的Demo吗?

MustangYM avatar Feb 20 '19 11:02 MustangYM

@MustangYM https://github.com/amarcadet/XMLReader

xiaokaike avatar Feb 21 '19 09:02 xiaokaike

非常感谢大佬, 这个功能实现了. 跪谢跪谢.

| | 晏茂 | | [email protected] | 签名由网易邮箱大师定制

在2019年02月21日 17:26,Don[email protected] 写道:

@MustangYMhttps://github.com/amarcadet/XMLReader

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

MustangYM avatar Feb 21 '19 09:02 MustangYM