123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594 |
- //
- // 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<NIMCustomAttachment>)decodeAttachment:(NSString *)content
- {
- id<NIMCustomAttachment> 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<NIMCustomAttachment>)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
|