-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWeiboModel.m
98 lines (75 loc) · 3.13 KB
/
WeiboModel.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
//
// WeiboModel.m
// XSWeibo
//
// Created by gj on 15/9/9.
// Copyright (c) 2015年 huiwen. All rights reserved.
//
#import "WeiboModel.h"
#import "RegexKitLite.h"
@implementation WeiboModel
- (NSDictionary*)attributeMapDictionary{
// @"属性名": @"数据字典的key"
NSDictionary *mapAtt = @{
@"createDate":@"created_at",
@"weiboId":@"id",
@"text":@"text",
@"source":@"source",
@"favorited":@"favorited",
@"thumbnailImage":@"thumbnail_pic",
@"bmiddlelImage":@"bmiddle_pic",
@"originalImage":@"original_pic",
@"geo":@"geo",
@"repostsCount":@"reposts_count",
@"commentsCount":@"comments_count",
@"weiboIdStr":@"idstr"
};
return mapAtt;
}
-(void)setAttributes:(NSDictionary *)dataDic{
[super setAttributes:dataDic];
//微博来源
if(_source != nil){
NSString *regex = @">.+<";
NSArray *array = [_source componentsMatchedByRegex:regex];
if(array.count != 0){
NSString *temp = array[0];
temp = [temp substringWithRange:NSMakeRange(1,temp.length -2)];
_source = [NSString stringWithFormat:@"来源:%@",temp];
}
}
//用户信息
NSDictionary *userDic =[dataDic objectForKey:@"user"];
if(userDic != nil){
_userModel = [[UserModel alloc]initWithDataDic:userDic];
}
//被转发的微博
NSDictionary *reWeiboDic = [dataDic objectForKey:@"retweeted_status"];
if(reWeiboDic !=nil){
_reWeiboModel = [[WeiboModel alloc]initWithDataDic:reWeiboDic];
//被转发的用户名
NSString *name = _reWeiboModel.userModel.name;
_reWeiboModel.text = [NSString stringWithFormat:@"@%@:%@",name,_reWeiboModel.text];
}
//找到微博中表情的字符串
NSString *regex = @"\\[\\w+\\]";
NSArray *faceItems = [_text componentsMatchedByRegex:regex];
//在plist文件中找到相应的png
//emoticons.plist
NSString *configPath = [[NSBundle mainBundle]pathForResource:@"emoticons" ofType:@"plist"];
NSArray *faceConfigArray = [NSArray arrayWithContentsOfFile:configPath];
for(NSString *faceName in faceItems){
NSString *t = [NSString stringWithFormat:@"self.chs='%@'",faceName];
NSPredicate *predicate = [NSPredicate predicateWithFormat:t];
NSArray *items = [faceConfigArray filteredArrayUsingPredicate:predicate];
if(items.count >0){
NSDictionary *faceDic = items[0];
//
NSString *imageName = [faceDic objectForKey:@"png"];
NSString *replaceString = [NSString stringWithFormat:@"<image url = '%@'>",imageName];
//
self.text = [self.text stringByReplacingOccurrencesOfString:faceName withString:replaceString];
}
}
}
@end