// // YOUPAILCCustomAttachmentDecoder.m // LiveChat // // Created by 张灿 on 2018/9/22. // Copyright © 2018年 caicai. All rights reserved. // #import "YOUPAILCCustomAttachmentDecoder.h" #import "LCCustomAttachmentDefine.h" #import "NSDictionary+NTESJson.h" #import "YOUPAILCGiftAttachment.h" #import "YOUPAILCMessageTxtAttachment.h" #import "YOUPAILCOneImageAttachment.h" #import "YOUPAILCMultiImageAttachment.h" #import "YOUPAILCCallAttachment.h" #import "YOUPAILPFollowAttachment.h" #import "YOUPAILZGuardAttachment.h" #import "YOUPAILZLiveInfoUpdateAttachment.h" #import "YOUPAILZLiveCloseAttachment.h" #import "YOUPAILZLiveRankAttachment.h" #import "YOUPAILZLiveBarrageAttachment.h" #import "YOUPAILZLivePKAttachment.h" #import "YOUPAILZLiveLianMaiAttachment.h" #import "YOUPAILZLivePKDataAttachment.h" #import "YOUPAILZLiveFollowAttachment.h" #import "YOUPAILZLiveManageAttachment.h" #import "YOUPAILZLiveVipBarrageAttachment.h" #import "YOUPAILZLiveCarAttachment.h" #import "YOUPAILZChatRoomReloadSeatAttachment.h" #import "YOUPAILZChatRoomInviactionUpSeatAttachment.h" #import "YOUPAILZChatRoomApplySeatAttachment.h" #import "YOUPAILZChatRoomModeUpdateAttrchment.h" #import "YOUPAILZChatRoomEmptyChatAttachment.h" #import "YOUPAILZChatRoomCloseOpenChatAttachment.h" #import "YOUPAILZChatRoomInfoEditNoticeAttachment.h" #import "YOUPAILZChatRoomInfoEditTitleAttachment.h" #import "YOUPAILZChatRoomInfoEditPasswordAttachment.h" #import "YOUPAILZChatRoomEmojiAttachment.h" #import "YOUPAILZChatRoomEndAttachment.h" #import "YOUPAILZChatRoomGiftAttachment.h" #import "YOUPAIZhaPianTextAttachment.h" #import "YOUPAIZhaPianTextAttachment2.h" #import "YOUPAIZhaPianTextContentView2.h" #import "YOUPAIZhaPianTextContentView.h" #import "YOUPAILZChatRoomTransferPlayAttachment.h" #import "YOUPAILZChatRoomBlindDateProgressChangeAttachment.h" #import "YOUPAILZChatRoomBlindDateSelectedAttrchment.h" #import "YOUPAILZChatRoomBlindDateAnimationAttachment.h" #import "YOUPAILZChatRoomBgImgAttachment.h" #import "YOUPAILZChatRoomUpdatePowerAttachment.h" #import "YOUPAIFateTextAttachment.h" @implementation YOUPAILCCustomAttachmentDecoder - (id)decodeAttachment:(NSString *)content { id attachment = nil; NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding]; if (data) { NSLog(@"IM 透传消息 自定义事件 \n %@",content); NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; if ([dict isKindOfClass:[NSDictionary class]]) { NSInteger type = [dict jsonInteger:CMType]; NSString *event = [dict jsonString:CMEvent]; NSDictionary *data = [dict jsonDict:CMData]; if ([event isEqual:CMEventWithPK]) { attachment = [[YOUPAILZLivePKAttachment alloc] init]; ((YOUPAILZLivePKAttachment *)attachment).type = [data jsonString:CMType]; ((YOUPAILZLivePKAttachment *)attachment).from_roomid = [data jsonString:CMFromRoomid]; ((YOUPAILZLivePKAttachment *)attachment).from_uid = [data jsonString:CMFrom]; ((YOUPAILZLivePKAttachment *)attachment).to_roomid = [data jsonString:CMToRoomid]; ((YOUPAILZLivePKAttachment *)attachment).to_uid = [data jsonString:CMTo]; ((YOUPAILZLivePKAttachment *)attachment).id = [data jsonString:CMId]; ((YOUPAILZLivePKAttachment *)attachment).operate_uid = [data jsonString:CMOperateUid]; }else if([event isEqual:CMEventWithLianMai]) { attachment = [[YOUPAILZLiveLianMaiAttachment alloc] init]; ((YOUPAILZLiveLianMaiAttachment *)attachment).type = [data jsonString:CMType]; ((YOUPAILZLiveLianMaiAttachment *)attachment).from_roomid = [data jsonString:CMFromRoomid]; ((YOUPAILZLiveLianMaiAttachment *)attachment).from_uid = [data jsonString:CMFrom]; ((YOUPAILZLiveLianMaiAttachment *)attachment).to_roomid = [data jsonString:CMToRoomid]; ((YOUPAILZLiveLianMaiAttachment *)attachment).to_uid = [data jsonString:CMTo]; ((YOUPAILZLiveLianMaiAttachment *)attachment).id = [data jsonString:CMId]; ((YOUPAILZLiveLianMaiAttachment *)attachment).operate_uid = [data jsonString:CMOperateUid]; } else if([event isEqual:CMEventWithPKData]) { attachment = [[YOUPAILZLivePKDataAttachment alloc] init]; ((YOUPAILZLivePKDataAttachment *)attachment).type = [data jsonString:CMType]; ((YOUPAILZLivePKDataAttachment *)attachment).time = [data jsonString:CMTimer]; ((YOUPAILZLivePKDataAttachment *)attachment).start_time = [data jsonString:CMStartTime]; ((YOUPAILZLivePKDataAttachment *)attachment).pk_end_time = [data jsonString:CMPkEndTime]; ((YOUPAILZLivePKDataAttachment *)attachment).punish_end_time = [data jsonString:CMPunishEndTime]; ((YOUPAILZLivePKDataAttachment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILZLivePKDataAttachment *)attachment).from_uid = [data jsonString:CMFrom]; ((YOUPAILZLivePKDataAttachment *)attachment).from_num = [data jsonString:CMFromNum]; ((YOUPAILZLivePKDataAttachment *)attachment).to_uid = [data jsonString:CMTo]; ((YOUPAILZLivePKDataAttachment *)attachment).to_num = [data jsonString:CMToNum]; ((YOUPAILZLivePKDataAttachment *)attachment).id = [data jsonString:CMId]; } if (attachment == nil) { switch (type) { case CustomGift: { attachment = [[YOUPAILCGiftAttachment alloc] init]; ((YOUPAILCGiftAttachment *)attachment).gift_id = [data jsonInteger:CMGiftId]; ((YOUPAILCGiftAttachment *)attachment).gift_name = [data jsonString:CMGiftName]; ((YOUPAILCGiftAttachment *)attachment).gift_url = [data jsonString:CMGiftUrl]; ((YOUPAILCGiftAttachment *)attachment).gift_count = [data jsonInteger:CMGiftCount]; ((YOUPAILCGiftAttachment *)attachment).from_uid = [data jsonInteger:CMFrom]; ((YOUPAILCGiftAttachment *)attachment).to_uid = [data jsonInteger:CMTo]; ((YOUPAILCGiftAttachment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILCGiftAttachment *)attachment).link_url = [data jsonString:CMLink_url]; ((YOUPAILCGiftAttachment *)attachment).link_type = [data jsonInteger:CMLink_type]; ((YOUPAILCGiftAttachment *)attachment).md5_string = [data jsonString:CMMd5String]; ((YOUPAILCGiftAttachment *)attachment).gift_svga = [data jsonString:CMGiftSvga]; ((YOUPAILCGiftAttachment *)attachment).gift_type = [data jsonInteger:CMGiftType]; ((YOUPAILCGiftAttachment *)attachment).from_nickname = [data jsonString:CMFromNickname]; ((YOUPAILCGiftAttachment *)attachment).send_gift_hide = [data jsonInteger:CMSendGiftHide]; ((YOUPAILCGiftAttachment *)attachment).from_avatar = [data jsonString:CMFromAvatar]; } break; case CustomCall: { attachment = [[YOUPAILCCallAttachment alloc] init]; ((YOUPAILCCallAttachment *)attachment).call_time = [data jsonInteger:CMCallTime]; ((YOUPAILCCallAttachment *)attachment).calltype = [data jsonInteger:CMCallType]; ((YOUPAILCCallAttachment *)attachment).status = [data jsonInteger:CMStatus]; ((YOUPAILCCallAttachment *)attachment).from_uid = [data jsonInteger:CMFrom]; ((YOUPAILCCallAttachment *)attachment).to_uid = [data jsonInteger:CMTo]; } break; case CustomOneImage: { attachment = [[YOUPAILCOneImageAttachment alloc] init]; ((YOUPAILCOneImageAttachment *)attachment).act_type = [data jsonInteger:CMAct_Type]; ((YOUPAILCOneImageAttachment *)attachment).act_string = [data jsonString:CMAct_String]; ((YOUPAILCOneImageAttachment *)attachment).image = [data jsonString:CMImage]; ((YOUPAILCOneImageAttachment *)attachment).title = [data jsonString:CMTitle]; ((YOUPAILCOneImageAttachment *)attachment).txt = [data jsonString:CMTxt]; ((YOUPAILCOneImageAttachment *)attachment).link_url = [data jsonString:CMLink_url]; ((YOUPAILCOneImageAttachment *)attachment).link_type = [data jsonInteger:CMLink_type]; } break; case CustomMessageTxt: { attachment = [[YOUPAILCMessageTxtAttachment alloc] init]; ((YOUPAILCMessageTxtAttachment *)attachment).title = [data jsonString:CMTitle]; ((YOUPAILCMessageTxtAttachment *)attachment).date = [data jsonString:CMDate]; ((YOUPAILCMessageTxtAttachment *)attachment).txt1 = [data jsonString:CMTxt1]; ((YOUPAILCMessageTxtAttachment *)attachment).fields = [data objectForKey:CMfields]; ((YOUPAILCMessageTxtAttachment *)attachment).txt2 = [data jsonString:CMTxt2]; ((YOUPAILCMessageTxtAttachment *)attachment).link_url = [data jsonString:CMLink_url]; ((YOUPAILCMessageTxtAttachment *)attachment).link_type = [data jsonInteger:CMLink_type]; } break; case CustomMultiImage: { attachment = [[YOUPAILCMultiImageAttachment alloc] init]; NSLog(@"dict == %@",dict); ((YOUPAILCMultiImageAttachment *)attachment).imageArray = [[dict objectForKey:CMData]objectForKey:CMList]; } break; // 被关注 case CustomFollow: { attachment = [[YOUPAILPFollowAttachment alloc] init]; ((YOUPAILPFollowAttachment *)attachment).userid = [data jsonInteger:CMUserid]; ((YOUPAILPFollowAttachment *)attachment).age = [data jsonInteger:CMAge]; ((YOUPAILPFollowAttachment *)attachment).nickname = [data jsonString:CMNickname]; ((YOUPAILPFollowAttachment *)attachment).avatar = [data jsonString:CMAvatar]; ((YOUPAILPFollowAttachment *)attachment).city = [data jsonString:CMCity]; ((YOUPAILPFollowAttachment *)attachment).time = [data jsonString:CMTimer]; ((YOUPAILPFollowAttachment *)attachment).sex = [data jsonInteger:CMSex]; ((YOUPAILPFollowAttachment *)attachment).type = 16; ((YOUPAILPFollowAttachment *)attachment).sign = [data jsonString:CMSign]; ((YOUPAILPFollowAttachment *)attachment).grade = [data jsonDict:CMGrade]; } break; //add by leo 上线通知 v1.0.7 case CustomOnLine: { attachment = [[YOUPAILPFollowAttachment alloc] init]; ((YOUPAILPFollowAttachment *)attachment).userid = [data jsonInteger:CMUserid]; ((YOUPAILPFollowAttachment *)attachment).age = [data jsonInteger:CMAge]; ((YOUPAILPFollowAttachment *)attachment).nickname = [data jsonString:CMNickname]; ((YOUPAILPFollowAttachment *)attachment).avatar = [data jsonString:CMAvatar]; ((YOUPAILPFollowAttachment *)attachment).city = [data jsonString:CMCity]; ((YOUPAILPFollowAttachment *)attachment).time = [data jsonString:CMTimer]; ((YOUPAILPFollowAttachment *)attachment).sex = [data jsonInteger:CMSex]; ((YOUPAILPFollowAttachment *)attachment).type = 18; ((YOUPAILPFollowAttachment *)attachment).sign = [data jsonString:CMSign]; ((YOUPAILPFollowAttachment *)attachment).grade = [data jsonDict:CMGrade]; } break; //add by leo 更新动态 v1.0.8 case CustomDynamic: { attachment = [[YOUPAILPFollowAttachment alloc] init]; ((YOUPAILPFollowAttachment *)attachment).userid = [data jsonInteger:CMUserid]; ((YOUPAILPFollowAttachment *)attachment).age = [data jsonInteger:CMAge]; ((YOUPAILPFollowAttachment *)attachment).nickname = [data jsonString:CMNickname]; ((YOUPAILPFollowAttachment *)attachment).avatar = [data jsonString:CMAvatar]; ((YOUPAILPFollowAttachment *)attachment).city = [data jsonString:CMCity]; ((YOUPAILPFollowAttachment *)attachment).time = [data jsonString:CMTimer]; ((YOUPAILPFollowAttachment *)attachment).sex = [data jsonInteger:CMSex]; ((YOUPAILPFollowAttachment *)attachment).type = 17; ((YOUPAILPFollowAttachment *)attachment).sign = [data jsonString:CMSign]; ((YOUPAILPFollowAttachment *)attachment).grade = [data jsonDict:CMGrade]; } break; // 发布视频 case CustomOnSendVideo: { attachment = [[YOUPAILPFollowAttachment alloc] init]; ((YOUPAILPFollowAttachment *)attachment).userid = [data jsonInteger:CMUserid]; ((YOUPAILPFollowAttachment *)attachment).age = [data jsonInteger:CMAge]; ((YOUPAILPFollowAttachment *)attachment).nickname = [data jsonString:CMNickname]; ((YOUPAILPFollowAttachment *)attachment).avatar = [data jsonString:CMAvatar]; ((YOUPAILPFollowAttachment *)attachment).city = [data jsonString:CMCity]; ((YOUPAILPFollowAttachment *)attachment).time = [data jsonString:CMTimer]; ((YOUPAILPFollowAttachment *)attachment).sex = [data jsonInteger:CMSex]; ((YOUPAILPFollowAttachment *)attachment).type = 19; ((YOUPAILPFollowAttachment *)attachment).sign = [data jsonString:CMSign]; ((YOUPAILPFollowAttachment *)attachment).grade = [data jsonDict:CMGrade]; } break; case CustomOnGuard: { attachment = [[YOUPAILZGuardAttachment alloc] init]; ((YOUPAILZGuardAttachment *)attachment).guard_name = [data jsonString:CMGuardName]; ((YOUPAILZGuardAttachment *)attachment).guard_url = [data jsonString:CMGuardUrl]; ((YOUPAILZGuardAttachment *)attachment).guard_count = [data jsonInteger:CMGuardCount]; ((YOUPAILZGuardAttachment *)attachment).from_uid = [data jsonInteger:CMFrom]; ((YOUPAILZGuardAttachment *)attachment).to_uid = [data jsonInteger:CMTo]; ((YOUPAILZGuardAttachment *)attachment).link_url = [data jsonString:CMLink_url]; ((YOUPAILZGuardAttachment *)attachment).link_type = [data jsonInteger:CMLink_type]; ((YOUPAILZGuardAttachment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILZGuardAttachment *)attachment).md5_string = [data jsonString:CMMd5String]; ((YOUPAILZGuardAttachment *)attachment).gift_svga = [data jsonString:CMGiftSvga]; ((YOUPAILZGuardAttachment *)attachment).gift_type = [data jsonInteger:CMGiftType]; ((YOUPAILZGuardAttachment *)attachment).from_nickname = [data jsonString:CMFromNickname]; ((YOUPAILZGuardAttachment *)attachment).from_avatar = [data jsonString:CMFromAvatar]; ((YOUPAILZGuardAttachment *)attachment).to_nickname = [data jsonString:CMToNickname]; ((YOUPAILZGuardAttachment *)attachment).to_avatar = [data jsonString:CMToAvatar]; } break; case CustomOnLiveInfoUpdate: { attachment = [[YOUPAILZLiveInfoUpdateAttachment alloc] init]; ((YOUPAILZLiveInfoUpdateAttachment *)attachment).anchor_charm = [data jsonString:CMAnchorCharm]; ((YOUPAILZLiveInfoUpdateAttachment *)attachment).fans = [data jsonString:CMFans]; ((YOUPAILZLiveInfoUpdateAttachment *)attachment).anchor_rank_info = [data jsonDict:CMAnchorRankInfo]; ((YOUPAILZLiveInfoUpdateAttachment *)attachment).rank_top_three = [data jsonDict:CMRankTopThree]; } break; case CustomOnLiveClose: { attachment = [[YOUPAILZLiveCloseAttachment alloc] init]; ((YOUPAILZLiveCloseAttachment *)attachment).roomid = [data jsonString:CMRoomId]; } case CustomOnLiveClose1: { attachment = [[YOUPAILZLiveCloseAttachment alloc] init]; ((YOUPAILZLiveCloseAttachment *)attachment).roomid = [data jsonString:CMRoomId]; } break; case CustomOnLiveFollow: { attachment = [[YOUPAILZLiveFollowAttachment alloc] init]; ((YOUPAILZLiveFollowAttachment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILZLiveFollowAttachment *)attachment).msg = [data jsonString:CMMsg]; } break; case CustomOnLiveRank: { attachment = [[YOUPAILZLiveRankAttachment alloc] init]; ((YOUPAILZLiveRankAttachment *)attachment).rank = [data jsonArray:CMRank]; } break; case CustomOnLiveBarrage: { attachment = [[YOUPAILZLiveBarrageAttachment alloc] init]; ((YOUPAILZLiveBarrageAttachment *)attachment).rankInfo = [data jsonDict:CMRankInfo]; ((YOUPAILZLiveBarrageAttachment *)attachment).gradeInfo = [data jsonDict:CMGradeInfo]; ((YOUPAILZLiveBarrageAttachment *)attachment).userInfo = [data jsonDict:CMUserInfo]; } break; case CustomOnLiveManage: { attachment = [[YOUPAILZLiveManageAttachment alloc] init]; ((YOUPAILZLiveManageAttachment *)attachment).forbidden_uid = [data jsonString:CMForbiddenUid]; ((YOUPAILZLiveManageAttachment *)attachment).name = [data jsonString:CMName]; ((YOUPAILZLiveManageAttachment *)attachment).des = [data jsonString:CMDes]; ((YOUPAILZLiveManageAttachment *)attachment).user_des = [data jsonString:CMUserDes]; } break; case CustomOnLiveVipBarrage: { attachment = [[YOUPAILZLiveVipBarrageAttachment alloc] init]; ((YOUPAILZLiveVipBarrageAttachment *)attachment).b_box = [data jsonString:CMBBox]; ((YOUPAILZLiveVipBarrageAttachment *)attachment).avatar_frame = [data jsonString:CMAvatarFrame]; ((YOUPAILZLiveVipBarrageAttachment *)attachment).name = [data jsonString:CMName]; ((YOUPAILZLiveVipBarrageAttachment *)attachment).avatar = [data jsonString:CMAvatar]; ((YOUPAILZLiveVipBarrageAttachment *)attachment).noble_name = [data jsonString:CMNobleName]; } break; case CustomOnLiveCar: { attachment = [[YOUPAILZLiveCarAttachment alloc] init]; ((YOUPAILZLiveCarAttachment *)attachment).car = [data jsonString:CMCar]; ((YOUPAILZLiveCarAttachment *)attachment).car_preview_svga = [data jsonString:CMCarPreviewSvga]; ((YOUPAILZLiveCarAttachment *)attachment).car_big_preview_img_svga = [data jsonString:CMCarBigPreviewImgSvga]; } break; case CustomOnReloadChatRoomSeat: { attachment = [[YOUPAILZChatRoomReloadSeatAttachment alloc] init]; ((YOUPAILZChatRoomReloadSeatAttachment *)attachment).host = [data jsonDict:CMHost]; ((YOUPAILZChatRoomReloadSeatAttachment *)attachment).normal = [data jsonArray:CMNormal]; } break; case CustomOnChatRoomInviactionUpSeat: { attachment = [[YOUPAILZChatRoomInviactionUpSeatAttachment alloc] init]; ((YOUPAILZChatRoomInviactionUpSeatAttachment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILZChatRoomInviactionUpSeatAttachment *)attachment).from_uid = [data jsonString:CMFrom]; ((YOUPAILZChatRoomInviactionUpSeatAttachment *)attachment).to_uid = [data jsonString:CMTo]; ((YOUPAILZChatRoomInviactionUpSeatAttachment *)attachment).seat = [data jsonString:CMSeat]; } break; case CustomOnChatRoomApplySeat: { attachment = [[YOUPAILZChatRoomApplySeatAttachment alloc] init]; ((YOUPAILZChatRoomApplySeatAttachment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILZChatRoomApplySeatAttachment *)attachment).op_uid = [data jsonString:CMOpUid]; ((YOUPAILZChatRoomApplySeatAttachment *)attachment).num = [data jsonString:CMNum]; ((YOUPAILZChatRoomApplySeatAttachment *)attachment).status = [data jsonString:CMStatus]; } break; case CustomOnChatRoomModeUpdate: { attachment = [[YOUPAILZChatRoomModeUpdateAttrchment alloc] init]; ((YOUPAILZChatRoomModeUpdateAttrchment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILZChatRoomModeUpdateAttrchment *)attachment).change_type = [data jsonString:CMChangeType]; ((YOUPAILZChatRoomModeUpdateAttrchment *)attachment).changeData = [data jsonDict:CMChangeData]; ((YOUPAILZChatRoomModeUpdateAttrchment *)attachment).from_uid = [data jsonString:CMFrom]; } break; case CustomOnChatRoomEmptyChat: { attachment = [[YOUPAILZChatRoomEmptyChatAttachment alloc] init]; ((YOUPAILZChatRoomEmptyChatAttachment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILZChatRoomEmptyChatAttachment *)attachment).clear_msg = [data jsonString:CMClearMsg]; ((YOUPAILZChatRoomEmptyChatAttachment *)attachment).from_uid = [data jsonString:CMFrom]; } break; case CustomOnChatRoomCloseOpenChat: { attachment = [[YOUPAILZChatRoomCloseOpenChatAttachment alloc] init]; ((YOUPAILZChatRoomCloseOpenChatAttachment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILZChatRoomCloseOpenChatAttachment *)attachment).change_type = [data jsonString:CMChangeType]; ((YOUPAILZChatRoomCloseOpenChatAttachment *)attachment).changeData = [data jsonDict:CMChangeData]; ((YOUPAILZChatRoomCloseOpenChatAttachment *)attachment).from_uid = [data jsonString:CMFrom]; } break; case CustomOnChatRoomInfoEditNotice: { attachment = [[YOUPAILZChatRoomInfoEditNoticeAttachment alloc] init]; ((YOUPAILZChatRoomInfoEditNoticeAttachment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILZChatRoomInfoEditNoticeAttachment *)attachment).change_type = [data jsonString:CMChangeType]; ((YOUPAILZChatRoomInfoEditNoticeAttachment *)attachment).changeData = [data jsonDict:CMChangeData]; ((YOUPAILZChatRoomInfoEditNoticeAttachment *)attachment).from_uid = [data jsonString:CMFrom]; } break; case CustomOnChatRoomInfoEditTitle: { attachment = [[YOUPAILZChatRoomInfoEditTitleAttachment alloc] init]; ((YOUPAILZChatRoomInfoEditTitleAttachment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILZChatRoomInfoEditTitleAttachment *)attachment).change_type = [data jsonString:CMChangeType]; ((YOUPAILZChatRoomInfoEditTitleAttachment *)attachment).changeData = [data jsonDict:CMChangeData]; ((YOUPAILZChatRoomInfoEditTitleAttachment *)attachment).from_uid = [data jsonString:CMFrom]; } break; case CustomOnChatRoomInfoEditPassword: { attachment = [[YOUPAILZChatRoomInfoEditPasswordAttachment alloc] init]; ((YOUPAILZChatRoomInfoEditPasswordAttachment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILZChatRoomInfoEditPasswordAttachment *)attachment).change_type = [data jsonString:CMChangeType]; ((YOUPAILZChatRoomInfoEditPasswordAttachment *)attachment).changeData = [data jsonDict:CMChangeData]; ((YOUPAILZChatRoomInfoEditPasswordAttachment *)attachment).from_uid = [data jsonString:CMFrom]; } break; case CustomOnChatRoomEmoji: { attachment = [[YOUPAILZChatRoomEmojiAttachment alloc] init]; ((YOUPAILZChatRoomEmojiAttachment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILZChatRoomEmojiAttachment *)attachment).img = [data jsonString:CMImg]; ((YOUPAILZChatRoomEmojiAttachment *)attachment).from_uid = [data jsonString:CMFrom]; } break; case CustomOnChatRoomGift: { attachment = [[YOUPAILZChatRoomGiftAttachment alloc] init]; ((YOUPAILZChatRoomGiftAttachment *)attachment).gift_id = [data jsonInteger:CMGiftId]; ((YOUPAILZChatRoomGiftAttachment *)attachment).gift_name = [data jsonString:CMGiftName]; ((YOUPAILZChatRoomGiftAttachment *)attachment).gift_url = [data jsonString:CMGiftUrl]; ((YOUPAILZChatRoomGiftAttachment *)attachment).gift_count = [data jsonInteger:CMGiftCount]; ((YOUPAILZChatRoomGiftAttachment *)attachment).from_uid = [data jsonInteger:CMFrom]; ((YOUPAILZChatRoomGiftAttachment *)attachment).to_uid = [data jsonInteger:CMTo]; ((YOUPAILZChatRoomGiftAttachment *)attachment).roomid = [data jsonString:CMRoomId]; ((YOUPAILZChatRoomGiftAttachment *)attachment).link_url = [data jsonString:CMLink_url]; ((YOUPAILZChatRoomGiftAttachment *)attachment).link_type = [data jsonInteger:CMLink_type]; ((YOUPAILZChatRoomGiftAttachment *)attachment).md5_string = [data jsonString:CMMd5String]; ((YOUPAILZChatRoomGiftAttachment *)attachment).gift_svga = [data jsonString:CMGiftSvga]; ((YOUPAILZChatRoomGiftAttachment *)attachment).gift_type = [data jsonInteger:CMGiftType]; ((YOUPAILZChatRoomGiftAttachment *)attachment).from_nickname = [data jsonString:CMFromNickname]; ((YOUPAILZChatRoomGiftAttachment *)attachment).send_gift_hide = [data jsonInteger:CMSendGiftHide]; ((YOUPAILZChatRoomGiftAttachment *)attachment).from_avatar = [data jsonString:CMFromAvatar]; ((YOUPAILZChatRoomGiftAttachment *)attachment).receiveInfo = [data jsonArray:CMReceiveInfo]; } break; case CustomOnChatRoomEnd: { attachment = [[YOUPAILZChatRoomEndAttachment alloc] init]; } break; case CustomOnChatFate: { attachment = [[YOUPAIFateTextAttachment alloc] init]; } break; case CustomOnChatRoomFP: { attachment = [[YOUPAIZhaPianTextAttachment alloc] init]; } break; case CustomOnChatRoomHint: { attachment = [[YOUPAIZhaPianTextAttachment2 alloc] init]; case CustomOnChatRoomTransferPlay: { attachment = [[YOUPAILZChatRoomTransferPlayAttachment alloc] init]; ((YOUPAILZChatRoomTransferPlayAttachment *)attachment).type = [data jsonString:CMType]; ((YOUPAILZChatRoomTransferPlayAttachment *)attachment).blind_status = [data jsonArray:CMBlindStatus]; } break; case CustomOnChatRoomBlindDateProgressChange: { attachment = [[YOUPAILZChatRoomBlindDateProgressChangeAttachment alloc] init]; ((YOUPAILZChatRoomBlindDateProgressChangeAttachment *)attachment).blind_data_change = [data jsonArray:CMBlindDataChange]; } break; case CustomOnChatRoomBlindDateSelected: { attachment = [[YOUPAILZChatRoomBlindDateSelectedAttrchment alloc] init]; } break; case CustomOnChatRoomBlindDateAnimation: { attachment = [[YOUPAILZChatRoomBlindDateAnimationAttachment alloc] init]; ((YOUPAILZChatRoomBlindDateAnimationAttachment *)attachment).select_data = [data jsonArray:CMSelectData]; } break; case CustomOnChatRoomSetterBackgoundImage: { attachment = [[YOUPAILZChatRoomBgImgAttachment alloc] init]; ((YOUPAILZChatRoomBgImgAttachment *)attachment).bg = [data jsonString:CMBg]; } break; case CustomOnChatRoomUpdatePower: { attachment = [[YOUPAILZChatRoomUpdatePowerAttachment alloc] init]; ((YOUPAILZChatRoomUpdatePowerAttachment *)attachment).uid = [data jsonString:CMUID]; ((YOUPAILZChatRoomUpdatePowerAttachment *)attachment).identity = [data jsonString:CMIdentity]; } break; default: break; } } attachment = [self checkAttachment:attachment] ? attachment : nil; } } } return attachment; } - (BOOL)checkAttachment:(id)attachment{ BOOL check = NO; if ([attachment isKindOfClass:[YOUPAILCMessageTxtAttachment class]]) { check = YES; }else if ([attachment isKindOfClass:[YOUPAILCGiftAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILCOneImageAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILCMultiImageAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILCCallAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILPFollowAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZGuardAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZLiveInfoUpdateAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZLiveCloseAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZLivePKAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZLivePKDataAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZLiveLianMaiAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZLiveFollowAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZLiveRankAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZLiveBarrageAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZLiveManageAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZLiveVipBarrageAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZLiveCarAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZChatRoomReloadSeatAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZChatRoomInviactionUpSeatAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZChatRoomApplySeatAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZChatRoomModeUpdateAttrchment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZChatRoomEmptyChatAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZChatRoomCloseOpenChatAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZChatRoomInfoEditNoticeAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZChatRoomInfoEditTitleAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZChatRoomInfoEditPasswordAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZChatRoomEmojiAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZChatRoomGiftAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZChatRoomEndAttachment class]]){ check = YES; }else if ([attachment isKindOfClass:[YOUPAILZChatRoomTransferPlayAttachment class]]){ check = YES; } else if ([attachment isKindOfClass:[YOUPAIZhaPianTextAttachment class]]){ check = YES; } else if ([attachment isKindOfClass:[YOUPAIFateTextAttachment class]]){ check = YES; } else if ([attachment isKindOfClass:[YOUPAIZhaPianTextAttachment2 class]]){ check = YES; } else if ([attachment isKindOfClass:[YOUPAILZChatRoomBlindDateProgressChangeAttachment class]]){ check = YES; } else if ([attachment isKindOfClass:[YOUPAILZChatRoomBlindDateSelectedAttrchment class]]){ check = YES; } else if ([attachment isKindOfClass:[YOUPAILZChatRoomBlindDateAnimationAttachment class]]){ check = YES; } else if ([attachment isKindOfClass:[YOUPAILZChatRoomBgImgAttachment class]]){ check = YES; } else if ([attachment isKindOfClass:[YOUPAILZChatRoomUpdatePowerAttachment class]]){ check = YES; } return check; } @end